packages feed

hxt 8.2.0 → 8.3.0

raw patch · 209 files changed

+29872/−35159 lines, 209 files

Files

Makefile view
@@ -35,13 +35,13 @@  # ------------------------------------------------------------ -CABAL_OPTIONS	= +CABAL_OPTIONS	= --global  cabal		: 		$(MAKE) cabal_configure cabal_build cabal_doc cabal_install  cabal_configure :-		runhaskell $(SETUP) configure --global $(CABAL_OPTIONS)+		runhaskell $(SETUP) configure $(CABAL_OPTIONS)  cabal_doc	: 		$(HSCOLOUR) -print-css > $(HSCOLOUR)@@ -164,7 +164,8 @@ 		; cd $(DIST) || exit 1 \ 		; runhaskell $(SETUP) configure $(CABAL_OPTIONS) || exit 1 \ 		; runhaskell $(SETUP) build || exit 1 \-		; $(INSTALL) sudo runhaskell $(SETUP) install --global $(INSTEND) \+		; $(MAKE) cabal_doc || exit 1 \+		; $(INSTALL) sudo runhaskell $(SETUP) install $(CABAL_OPTIONS) $(INSTEND) \ 		)  distinstall	:
Version.mk view
@@ -2,6 +2,6 @@ # Version numbering for HXT  SOFTWARE	= hxt-VERSION		= 8.2.0-LASTVERSION	= 8.1.2+VERSION		= 8.3.0+LASTVERSION	= 8.2.0 DIST_NAME	= $(SOFTWARE)-$(VERSION)
doc/hdoc/Control-Arrow-ArrowIO.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ArrowIf.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ArrowList.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ArrowNF.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ArrowState.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ArrowTree.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-IOListArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-IOStateListArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ListArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-ListArrows.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Control-Arrow-StateListArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Data-AssocList.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Data-Atom.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Data-Char-UTF8.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Data-NavTree.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Data-Tree-Class.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
− doc/hdoc/Data-Tree-NTree-Filter.html
@@ -1,3779 +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.Filter</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.2.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Data-Tree-NTree-Filter.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.Filter</FONT-></TD-><TD ALIGN="right"-><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="infohead"->Portability</TD-><TD CLASS="infoval"->portable</TD-></TR-><TR-><TD CLASS="infohead"->Stability</TD-><TD CLASS="infoval"->experimental</TD-></TR-><TR-><TD CLASS="infohead"->Maintainer</TD-><TD CLASS="infoval"->Uwe Schmidt (uwe\@fh-wedel.de)</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="section4"-><B->Contents</B-></TD-></TR-><TR-><TD-><DL-><DT-><A HREF="#1"->Filter-</A-></DT-><DT-><A HREF="#2"->Monadic Filter-</A-></DT-></DL-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->Version    : $Id: Filter.hs,v 1.6 2006<EM->11</EM->12 14:52:59 hxml Exp $-</P-><P->Filter for n-ary tree structure with filter combinators-copied and modified from HxXml (<A HREF="http://www.cs.york.ac.uk/fp/HaXml/"->http://www.cs.york.ac.uk/fp/HaXml/</A->)-</P-><P->Similar but more flexible functions for tree processing are defined in the-arrow classes <A HREF="Control-Arrow-ArrowList.html"->Control.Arrow.ArrowList</A->, <A HREF="Control-Arrow-ArrowIf.html"->Control.Arrow.ArrowIf</A->, <A HREF="Control-Arrow-ArrowTree.html"->Control.Arrow.ArrowTree</A-> and <A HREF="Control-Arrow-ArrowState.html"->Control.Arrow.ArrowState</A->.-For new applications, especially for XML processing, it's recommended to use the arrow interface-<A HREF="Text-XML-HXT-Arrow.html"->Text.XML.HXT.Arrow</A-> instead of this filter approach as part of the api <A HREF="Text-XML-HXT-Parser.html"->Text.XML.HXT.Parser</A->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->module <A HREF="Data-Tree-NTree-TypeDefs.html"->Data.Tree.NTree.TypeDefs</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ATFilter"->TFilter</A-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ATSFilter"->TSFilter</A-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Asatisfies"->satisfies</A-> ::  (a -&gt; [b]) -&gt; a -&gt; <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%3Anone"->none</A-> ::  a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Athis"->this</A-> ::  a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisOf"->isOf</A-> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AisOfNode"->isOfNode</A-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkNTree"->mkNTree</A-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AreplaceNode"->replaceNode</A-> ::  node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AreplaceChildren"->replaceChildren</A-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmodifyNode"->modifyNode</A-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmodifyNode0"->modifyNode0</A-> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmodifyChildren"->modifyChildren</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"->TSFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AsubstChildren"->substChildren</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessChildren"->processChildren</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Ao"->o</A-> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A.%3E"->(.&gt;)</A-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AseqF"->seqF</A-> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A..%3E"->(..&gt;)</A-> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2B%2B%2B"->(+++)</A-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Acat"->cat</A-> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AorElse"->orElse</A-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aiff"->iff</A-> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Achoice"->choice</A-> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"->IfThen</A-> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->data</SPAN->  <A HREF="#t%3AIfThen"->IfThen</A-> a b = a <A HREF="#v%3A%3A-%3E"->:-&gt;</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Awhen"->when</A-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenNot"->whenNot</A-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aguards"->guards</A-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Aneg"->neg</A-> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Acontaining"->containing</A-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnotContaining"->notContaining</A-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2F%3E"->(/&gt;)</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%3C%2F"->(&lt;/)</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adeep"->deep</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Adeepest"->deepest</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3Amulti"->multi</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessBottomUp"->processBottomUp</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessBottomUpIfNot"->processBottomUpIfNot</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessTopDown"->processTopDown</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessTopDownUntil"->processTopDownUntil</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AinsertChildrenAt"->insertChildrenAt</A-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AinsertChildrenAfter"->insertChildrenAfter</A-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AthisM"->thisM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; a -&gt; m [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnoneM"->noneM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A.%3E%3E"->(.&gt;&gt;)</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AseqM"->seqM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%2B%2B%2B%3E%3E"->(+++&gt;&gt;)</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcatM"->catM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AifM"->ifM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AchoiceM"->choiceM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"->IfThen</A-> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenM"->whenM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AwhenNotM"->whenNotM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AguardsM"->guardsM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AcontainingM"->containingM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessChildrenM"->processChildrenM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessTopDownM"->processTopDownM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AprocessBottomUpM"->processBottomUpM</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AliftMf"->liftMf</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%24"->($$)</A-> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3A%24%24%3C"->($$&lt;)</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AperformAction"->performAction</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Documentation</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Data-Tree-NTree-TypeDefs.html"->Data.Tree.NTree.TypeDefs</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ATFilter"-></A-><B->TFilter</B-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#TFilter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->tree filter type: a function mapping a tree onto a list of trees-</P-><P->filter can be used in various ways, as predicates, selectors, transformers, ...-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ATSFilter"-></A-><B->TSFilter</B-> node = <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#TSFilter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->a filter for sequences-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Asatisfies"-></A-><B->satisfies</B-> ::  (a -&gt; [b]) -&gt; a -&gt; <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-NTree-Filter.html#satisfies"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->satisfies converts a result of a predicate filter into a boolean-</P-><P->is a shortcut for not . null-</P-><P->typical use in guards or ifs: <TT->if (satisfies f) t then ... else ... </TT->-</P-><UL-><LI-> 1.parameter f :  the predicate filter-</LI-><LI-> 2.parameter t :  the tree to be tested-</LI-><LI-> returns : <TT->b = not (null (f t))</TT->-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="1"->Filter-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Anone"-></A-><B->none</B-> ::  a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#none"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the null filter, returns the empty list-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Athis"-></A-><B->this</B-> ::  a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#this"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->the unit filter, returns the single element list containing the argument-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisOf"-></A-><B->isOf</B-> ::  (a -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#isOf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->conversion from predicate function to filter-</P-><UL-><LI-> 1.parameter p :  the predicate for testing the tree-</LI-><LI-> returns : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"->this</A-></TT-> or <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"->none</A-></TT-> depending on the predicate-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AisOfNode"-></A-><B->isOfNode</B-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#isOfNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->select filter, selects trees with node values with a specific property-</P-><UL-><LI-> 1.parameter p :  the predicate for testing the node value-</LI-><LI-> returns : <TT->[]</TT-> or <TT->[t]</TT-> depending on <TT->p t</TT->-</LI-></UL-><P->a special case of <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"->isOf</A-></TT-> filter-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkNTree"-></A-><B->mkNTree</B-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#mkNTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->filter for substituting an arbitray tree by a constant-</P-><UL-><LI-> 1.parameter t :  the result tree, the input tree is ignored-</LI-><LI-> returns : the filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreplaceNode"-></A-><B->replaceNode</B-> ::  node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#replaceNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->filter for replacing the node-</P-><UL-><LI-> 1.parameter n :  the new node-</LI-><LI-> returns : the editing filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AreplaceChildren"-></A-><B->replaceChildren</B-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#replaceChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->filter for replacing the children-</P-><UL-><LI-> 1.parameter cs :  cs the list of children-</LI-><LI-> returns : the filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmodifyNode"-></A-><B->modifyNode</B-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"->Maybe</A-> node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmodifyNode0"-></A-><B->modifyNode0</B-> ::  (node -&gt; node) -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#modifyNode0"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->filter for editing the node-</P-><UL-><LI-> 1.parameter nf :  the XNode editing funtion-</LI-><LI-> returns : the filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmodifyChildren"-></A-><B->modifyChildren</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"->TSFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#modifyChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->filter for editing the children-</P-><P->all children are processed with a filter mapping lists to lists,- this enables not only elementwise editing by lifting a normal- filter to a list filter with <TT->(f $$)</TT-> (see '($$)') but also manipulation- of the order of the elements, e.g. <A HREF="reverse.html"->reverse</A-> is an appropriate childen- editing function.-</P-><UL-><LI-> 1.parameter csf :  the children editing function-</LI-><LI-> returns : the filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"->processChildren</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AsubstChildren"-></A-><B->substChildren</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#substChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->filter for substituting the children of a tree by- a new list of childen computed by applying a filter to the input tree.- <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"->modifyChildren</A-></TT-> can be expressed by <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"->substChildren</A-></TT->:- <TT->modifyChildren f t</TT-> is equal to <TT->substChildren (f . getChildren)</TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessChildren"-></A-><B->processChildren</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processChildren"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Filter for editing the children of a tree element wise-</P-><UL-><LI-> 1.parameter cf :  the filter applied to the children-</LI-><LI-> returns : the editing filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"->modifyChildren</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Ao"-></A-><B->o</B-> ::  (a -&gt; [b]) -&gt; (c -&gt; [a]) -&gt; c -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#o"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->sequential composition of filters, usually written in infix notation f2 <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"->o</A-></TT-> f1.-</P-><P->for predicate filter the logical AND-</P-><UL-><LI-> 1.parameter f2 :  the 2. filter-</LI-><LI-> 2.parameter f1 :  the 1. filter-</LI-><LI-> returns : the fiter applying first f1 to n and then f2 to the result (like function composition)-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A.%3E"-></A-><B->(.&gt;)</B-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [c]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#.%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pronounced &quot;followed by&quot;, defined as: <TT->f .&gt; g = g `o` f</TT->.-</P-><P->allows filter composition in a more readable way from left to right-</P-><UL-><LI-> 1.parameter f1 :  the 1. filter-</LI-><LI-> 2.parameter f2 :  the 2. filter-</LI-><LI-> returns : the composition of f1 and f2-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"->o</A-></TT->, '(..&gt;)'-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AseqF"-></A-><B->seqF</B-> ::  [a -&gt; [a]] -&gt; a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#seqF"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND-</P-><P->see also : '(.&gt;)'-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A..%3E"-></A-><B->(..&gt;)</B-> ::  (a -&gt; [b]) -&gt; (a -&gt; b -&gt; [d]) -&gt; a -&gt; [d]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#..%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->special sequential composition.-</P-><P->filter f is applied to an argument t.- then filter g is applied to all elements of the result list,- but the argument t is also passed as extra parameter to g.-</P-><P->This allows for step by step transformations of a tree- with access to the original tree in every- transformation step.-</P-><P->see also : '(.&gt;)', <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Ao"->o</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2B%2B%2B"-></A-><B->(+++)</B-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->binary parallel composition, the logical OR for predicate filter-</P-><UL-><LI-> 1.parameter f1 :  the 1. filter-</LI-><LI-> 2.parameter f2 :  the 2. filter-</LI-><LI-> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acat"-></A-><B->cat</B-> ::  [a -&gt; [b]] -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#cat"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->apply a list of filters, a &quot;union&quot; for lists, for predicate filters the generalized OR-</P-><UL-><LI-> 1.parameter fs :  the list of filters-</LI-><LI-> returns : the composing filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AorElse"-></A-><B->orElse</B-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#orElse"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->directional choice, usually written in infix notation as f <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"->orElse</A-></TT-> g-</P-><UL-><LI-> 1.parameter f :  the 1. filter-</LI-><LI-> 2.parameter g :  the 2. filter-</LI-><LI-> 3.parameter t :  the tree-</LI-><LI-> returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aiff"-></A-><B->iff</B-> ::  (a -&gt; [c]) -&gt; (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#iff"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->if then else lifted to filters-</P-><UL-><LI-> 1.parameter p :  the predicate filter-</LI-><LI-> 2.parameter t :  the &quot;then&quot; filter-</LI-><LI-> 3.parameter e :  the &quot;else&quot; filter-</LI-><LI-> returns : the resulting conditional filter-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Achoice"-></A-><B->choice</B-> ::  [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"->IfThen</A-> (a -&gt; [c]) (a -&gt; [b])] -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#choice"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->multiway branch. The list of cases <TT->f :-&gt; g</TT-> is processed sequentially,- in the first case for that f holds g is applied, if no case matches, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"->none</A-></TT-> is- applied.- This filter can be used like a case expression: <TT->choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]</TT->-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"->iff</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"->choiceM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="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/Data-Tree-NTree-Filter.html#IfThen"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="ndoc"->auxiliary datatype for cases within choice filter-</TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"->a <A NAME="v%3A%3A-%3E"-></A-><B->:-&gt;</B-> b</TD-><TD CLASS="rdoc"-></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%3Awhen"-></A-><B->when</B-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#when"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->when the predicate p holds, f is applied, else the identity filter this-</P-><UL-><LI-> 1.parameter f :  the conditinally applied filter-</LI-><LI-> 2.parameter p :  the predicate-</LI-><LI-> returns : the conditional filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"->iff</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"->whenNot</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"->guards</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"->whenM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenNot"-></A-><B->whenNot</B-> ::  (a -&gt; [a]) -&gt; (a -&gt; [a]) -&gt; a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#whenNot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the complementary filter of when-</P-><P->shortcut for f <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"->when</A-></TT-> neg g-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"->iff</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"->when</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"->whenNotM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"->neg</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aguards"-></A-><B->guards</B-> ::  (a -&gt; [b]) -&gt; (a -&gt; [b]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#guards"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->when the predicate p holds, f is applied, else the null filter none-</P-><UL-><LI-> 1.parameter p :  the predicate filter-</LI-><LI-> 2.parameter f :  the conditionally applied filter-</LI-><LI-> returns : the conditional filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"->iff</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"->when</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"->guardsM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Aneg"-></A-><B->neg</B-> ::  (a -&gt; [c]) -&gt; a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#neg"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->negation lifted to filters-</P-><UL-><LI-> 1.parameter f :  the predicate filter-</LI-><LI-> returns : the filter, that succeeds, when f failed-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Acontaining"-></A-><B->containing</B-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#containing"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pruning: keep only those results from f for which g holds, usually written in infix notation as f <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"->containing</A-></TT-> g-</P-><UL-><LI-> 1.parameter f :  the processing filter-</LI-><LI-> 2.parameter g :  the predicate filter-</LI-><LI-> 3.parameter t :  the tree-</LI-><LI-> returns : all trees r from f t, for which g r holds (is not the empty list)-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"->notContaining</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnotContaining"-></A-><B->notContaining</B-> ::  (a -&gt; [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#notContaining"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pruning: keep only those results from f for which g does not hold-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"->containing</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2F%3E"-></A-><B->(/&gt;)</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%2F%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->pronounced &quot;slash&quot;, meaning g inside f-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%3C%2F"-></A-><B->(&lt;/)</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%3C%2F"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->pronounced &quot;outside&quot; meaning f containing g-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adeep"-></A-><B->deep</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#deep"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->top down search.-</P-><P->search terminates, when filter f succeeds- can e.g. be used for finding all outermost tag node of a specific kind-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Adeepest"-></A-><B->deepest</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#deepest"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->bottom up search.-</P-><P->first the children are processed,- if this does not succeed, the node itself is processed- can e.g. be used for finding all innermost tag nodes of a specific kind-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3Amulti"-></A-><B->multi</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#multi"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->process all nodes of the whole tree.-</P-><P->can e.g. be used for finding all nodes of a specific kind-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessBottomUp"-></A-><B->processBottomUp</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUp"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->bottom up transformation-</P-><UL-><LI-> 1.parameter f :  the <EM->simple</EM-> transforming filter-</LI-><LI-> returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"->processTopDown</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"->processBottomUpIfNot</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessBottomUpIfNot"-></A-><B->processBottomUpIfNot</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpIfNot"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->guarded bottom up transformation, stops at subtrees for which a predicate p holds-</P-><UL-><LI-> 1.parameter f :  the transforming filter-</LI-><LI-> 2.parameter p :  the predicate filter for the guard-</LI-><LI-> returns : the filter for processing all (sub-)trees-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"->processBottomUp</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessTopDown"-></A-><B->processTopDown</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDown"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->top down transformation-</P-><UL-><LI-> 1.parameter f :  the <EM->simple</EM-> transforming filter-</LI-><LI-> returns : the filter that applies f first to the tree and then recursively to all subtrees of the result-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"->processBottomUp</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessTopDownUntil"-></A-><B->processTopDownUntil</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownUntil"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->top down transformation until a node to be transformed is found-</P-><UL-><LI-> 1.parameter f :  the <EM->simple</EM-> transforming filter-</LI-><LI-> returns : the filter that applies f first to the tree and, if the filter does not succeed,-		  recursively to all children of the input tree.-</LI-></UL-><P->Example:-</P-><PRE->processTopDownUntil none</PRE-><P->is the identity filter (maybe a bit more inefficient).-</P-><P->Example:-</P-><PRE->processTopDownUntil (add1Attr &quot;border&quot; &quot;2&quot; `containing` isTag &quot;table&quot;)</PRE-><P->is a filter for adding an attribute border=&quot;2&quot; in all top level table tags.-		  The content of table tags will remain unchanged.-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"->processTopDown</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"->processBottomUp</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertChildrenAt"-></A-><B->insertChildrenAt</B-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt"->Int</A-> -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAt"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->insertion of trees into the list of children at a given position-</P-><P->useful for inserting something into the list of children at a given position- the list of children is split with the <TT->splitAt</TT-> function- the nodes are inserted between these two sublists.-</P-><P->examples: <TT->insertChildrenAt 0 ins t</TT-> inserts all elements computed with <TT->ins t</TT-> in front- of the childen of <TT->t</TT->, <TT->insertChildrenAt 1 ins t</TT-> behind the first child-</P-><P->see also: <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"->insertChildrenAfter</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AinsertChildrenAfter"-></A-><B->insertChildrenAfter</B-> ::  <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node -&gt; <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#insertChildrenAfter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->insertion of trees into the list of children after specific elements-</P-><P->useful for inserting something into the list of children of a node- the list of children is split with the <TT->span</TT-> function and the filter p as predicate- the nodes are inserted between these two sublists-</P-><P->examples: <TT->insertChildrenAfter none ins t</TT-> inserts all elements computed with <TT->ins t</TT-> in front- of the childen of <TT->t</TT->, <TT->insertChildrenAfter this ins t</TT-> appends the elements to the children-</P-><P->see also: <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"->insertChildrenAt</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"-><A NAME="2"->Monadic Filter-</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AthisM"-></A-><B->thisM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; a -&gt; m [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#thisM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the monadic version of the identity filter this.-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"->this</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnoneM"-></A-><B->noneM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#noneM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the monadic version of the null filter none.-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"->none</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A.%3E%3E"-></A-><B->(.&gt;&gt;)</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; m [c]) -&gt; a -&gt; m [c]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#.%3E%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->sequential composition of monadic filters, monadic version of &quot;.&gt;&quot;.-</P-><UL-><LI-> 1.parameter f1 :  the 1. monadic filter-</LI-><LI-> 2.parameter f2 :  the 2. monadic filter-</LI-><LI-> returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)-</LI-></UL-><P->see also : '(.&gt;)'-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AseqM"-></A-><B->seqM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [a -&gt; m [a]] -&gt; a -&gt; m [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#seqM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->generalized sequential composition of monadic filters-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%2B%2B%2B%3E%3E"-></A-><B->(+++&gt;&gt;)</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (a -&gt; m [b]) -&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%2B%2B%2B%3E%3E"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->binary parallel composition, the logical OR for predicate filter-</P-><UL-><LI-> 1.parameter f1 :  the 1. filter-</LI-><LI-> 2.parameter f2 :  the 2. filter-</LI-><LI-> returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results- see also: <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"->cat</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"->+++</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"->catM</A-></TT->-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcatM"-></A-><B->catM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [a -&gt; m [b]] -&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#catM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->apply a list of monadic filters-</P-><UL-><LI-> 1.parameter fs :  the list of filters-</LI-><LI-> returns : the composing filter- see also: <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"->cat</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"->+++</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"->+++&gt;&gt;</A-></TT->-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AifM"-></A-><B->ifM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#ifM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->monadic if-then-else.-</P-><UL-><LI-> 1.parameter p :  the predicate-</LI-><LI-> 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree-</LI-><LI-> 3.parameter elseP :  the else part-</LI-><LI-> returns : the monadic filter for the conditional-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AchoiceM"-></A-><B->choiceM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; [<A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"->IfThen</A-> (a -&gt; [c]) (a -&gt; m [b])] -&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#choiceM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->monadic version of multiway branch. The list of cases <TT->f :-&gt; g</TT-> is processed sequentially,- in the first case for that f holds g is applied, if no case matches, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"->noneM</A-></TT-> is- applied.- This filter can be used like a case expression: <TT->choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]</TT->-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"->choice</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"->ifM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenM"-></A-><B->whenM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#whenM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->when the predicate p holds, the monadic filter f is applied, else the identity filter.-</P-><UL-><LI-> 1.parameter f :  the conditinally applied monadic filter-</LI-><LI-> 2.parameter p :  the simple predicate-</LI-><LI-> returns : the conditional filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"->ifM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"->when</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"->guardsM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"->whenNotM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AwhenNotM"-></A-><B->whenNotM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [a]) -&gt; (a -&gt; [b]) -&gt; a -&gt; m [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#whenNotM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->the complementary filter of whenM.-</P-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"->ifM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"->whenM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"->whenNot</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AguardsM"-></A-><B->guardsM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; (a -&gt; m [c]) -&gt; a -&gt; m [c]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#guardsM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->when the predicate p holds, the monadic filter f is applied, else the null filter.-</P-><UL-><LI-> 1.parameter p :  the simple predicate filter-</LI-><LI-> 2.parameter f :  the conditionally applied monadic filter-</LI-><LI-> returns : the conditional filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"->ifM</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"->guards</A-></TT->, <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"->whenM</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcontainingM"-></A-><B->containingM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; (b -&gt; [c]) -&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#containingM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->pruning: monadic version of containing, usually written in infix notation as f <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"->containingM</A-></TT-> g-</P-><UL-><LI-> 1.parameter f :  the monadic processing filter-</LI-><LI-> 2.parameter g :  the predicate filter-</LI-><LI-> 3.parameter t :  the tree-</LI-><LI-> returns : all trees r from f t, for which g r holds (is not the empty list)-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"->notContaining</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessChildrenM"-></A-><B->processChildrenM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processChildrenM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->Filter for editing the children of a tree with a monadic filter-</P-><UL-><LI-> 1.parameter cf :  the monadic filter applied to the children-</LI-><LI-> returns : the monadic editing filter-</LI-></UL-><P->see also : <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"->processChildren</A-></TT->-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessTopDownM"-></A-><B->processTopDownM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processTopDownM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->monadic variant of <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"->processTopDown</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AprocessBottomUpM"-></A-><B->processBottomUpM</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; m [<A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#processBottomUpM"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->monadic variant of <TT-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"->processBottomUp</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AliftMf"-></A-><B->liftMf</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; [b]) -&gt; a -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#liftMf"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->lift a filter to a monadic filter-</P-><UL-><LI-> 1.parameter f :  the <EM->simple</EM-> filter-</LI-><LI-> returns : the lifted monadic version-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%24"-></A-><B->($$)</B-> ::  (a -&gt; [b]) -&gt; [a] -&gt; [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%24%24"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->infix operator for applying a filter to a list of trees-</P-><UL-><LI-> 1.parameter f :  the filter-</LI-><LI-> 2.parameter ts :  the list of trees-</LI-><LI-> returns : the concatenated list of results-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3A%24%24%3C"-></A-><B->($$&lt;)</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m [b]) -&gt; [a] -&gt; m [b]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#%24%24%3C"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->infix operator for applying a monadic filter to a list of trees,- typically used in do-notation for processing of intermediate results.-</P-><UL-><LI-> 1.parameter f :  the monadic filter-</LI-><LI-> 2.parameter ts :  the list of trees-</LI-><LI-> returns : the concatenated list of results-</LI-></UL-><P->see also : '($$)'-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AperformAction"-></A-><B->performAction</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Control-Monad.html#t%3AMonad"->Monad</A-> m =&gt; (a -&gt; m b) -&gt; a -&gt; m [a]</TD-><TD CLASS="declbut"-><A HREF="src/Data-Tree-NTree-Filter.html#performAction"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"-><P->run an arbitray command on a tree t and return the tree,- used for inserting arbitray commands in a filter pipeline-</P-><UL-><LI-> 1.parameter cmd :  the command-</LI-><LI-> 2.parameter t :  the argument tree-</LI-><LI-> returns : the unchanged tree as a single element list-</LI-></UL-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
doc/hdoc/Data-Tree-NTree-TypeDefs.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-DTDProcessing.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-DocumentInput.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-DocumentOutput.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -44,10 +44,32 @@ ><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@@ -58,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->state arrows for document output-</P-><P->version: $Id: DocumentOutput.hs,v 1.7 2006<EM->11</EM->02 09:34:08 hxml Exp $-</P-></TD+>State arrows for document output+</TD ></TR ><TR ><TD CLASS="s15"
doc/hdoc/Text-XML-HXT-Arrow-Edit.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -308,6 +308,24 @@ ></TR ><TR ><TD CLASS="decl"+><A HREF="#v%3ApreventEmptyElements"+>preventEmptyElements</A+> :: <A HREF="Control-Arrow-ArrowList.html#t%3AArrowList"+>ArrowList</A+> a =&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl" ><A HREF="#v%3AremoveComment" >removeComment</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml"@@ -1147,6 +1165,36 @@ ></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 =&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+> -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"+>XmlTree</A+></TD+><TD CLASS="declbut"+><A HREF="src/Text-XML-HXT-Arrow-Edit.html#preventEmptyElements"+>Source</A+></TD+></TR+></TABLE ></TD ></TR ><TR
doc/hdoc/Text-XML-HXT-Arrow-GeneralEntitySubstitution.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-Namespace.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -80,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id: Namespace.hs,v 1.13 2006<EM->11</EM->12 14:52:59 hxml Exp $-</P-><P >namespace specific arrows-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"@@ -111,7 +104,7 @@ >attachNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -223,13 +216,13 @@ >processWithNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A->) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -247,13 +240,13 @@ >processWithNsEnvWithoutAttrl</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A->) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -351,7 +344,7 @@ >attachNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -611,13 +604,13 @@ >processWithNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A->) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -658,13 +651,13 @@ >processWithNsEnvWithoutAttrl</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; (<A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> a =&gt; (<A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A->) -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A@@ -867,16 +860,20 @@ ><P >Result is the list of errors concerning namespaces.  Predicates <TT-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQName"+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQName" >isWellformedQName</A ></TT >, <TT-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedQualifiedName" >isWellformedQualifiedName</A ></TT->, isDeclaredNamespaces+>, <TT+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisDeclaredNamespace"+>isDeclaredNamespace</A+></TT+>  and <TT-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"+><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AisWellformedNSDecl" >isWellformedNSDecl</A ></TT > are applied to the appropriate elements and attributes.
doc/hdoc/Text-XML-HXT-Arrow-ParserInterface.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-Pickle-DTD.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-Pickle-Schema.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-Pickle-Xml.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -81,34 +81,31 @@ ><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+   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 )+   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.+   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+   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 &quot;examples/arrows/pickle&quot; directory)+   of the picklers for a none trivial data structure.+   (see &quot;examples/arrows/pickle&quot; directory) </P ></TD ></TR@@ -267,8 +264,8 @@ ><TD CLASS="decl" ><A HREF="#v%3AgetAtt" >getAtt</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 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt" >St</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"@@ -779,6 +776,22 @@ ></TR ><TR ><TD CLASS="decl"+><A HREF="#v%3AxpElemQN"+>xpElemQN</A+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"+>PU</A+> a -&gt; <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"@@ -815,6 +828,22 @@ ></TR ><TR ><TD CLASS="decl"+><A HREF="#v%3AxpAttrQN"+>xpAttrQN</A+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"+>PU</A+> a -&gt; <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"@@ -1213,8 +1242,8 @@ ></A ><B >getAtt</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 > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3ASt" >St</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"@@ -2514,19 +2543,19 @@ ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname"-><A NAME="v%3AxpElem"+><A NAME="v%3AxpElemQN" ></A ><B->xpElem</B-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A+>xpElemQN</B+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU" >PU</A > a -&gt; <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"+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpElemQN" >Source</A ></TD ></TR@@ -2539,14 +2568,14 @@ >Pickler for wrapping/unwrapping data into an XML element </P ><P->Extra parameter is the element name. THE pickler for constructing+>Extra parameter is the element name given as a QName. THE pickler for constructing  nested structures </P ><P >Example: </P ><PRE-> xpElem &quot;number&quot; $ xpickle+> xpElemQN (mkName &quot;number&quot;) $ xpickle </PRE ><P >will map an (42::Int) onto@@ -2565,6 +2594,44 @@ ><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+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"+>PU</A+> a -&gt; <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@@ -2632,19 +2699,19 @@ ><TABLE CLASS="declbar" ><TR ><TD CLASS="declname"-><A NAME="v%3AxpAttr"+><A NAME="v%3AxpAttrQN" ></A ><B->xpAttr</B-> ::  <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A+>xpAttrQN</B+> ::  <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A > -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU" >PU</A > a -&gt; <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"+><A HREF="src/Text-XML-HXT-Arrow-Pickle-Xml.html#xpAttrQN" >Source</A ></TD ></TR@@ -2663,6 +2730,44 @@ ></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+> -&gt; <A HREF="Text-XML-HXT-Arrow-Pickle-Xml.html#t%3APU"+>PU</A+> a -&gt; <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
doc/hdoc/Text-XML-HXT-Arrow-Pickle.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -1968,15 +1968,11 @@ ><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.html#v%3AxpElem"->xpElem</A-></TT-> pickler+>convenient Pickler for xpAttrQN </P+><PRE+> xpAttr n = xpAttrQN (mkName n)+</PRE ></TD ></TR ><TR@@ -2208,23 +2204,10 @@ ><TR ><TD CLASS="doc" ><P->Pickler for wrapping/unwrapping data into an XML element-</P-><P->Extra parameter is the element name. THE pickler for constructing- nested structures-</P-><P->Example:-</P-><PRE-> xpElem &quot;number&quot; $ xpickle-</PRE-><P->will map an (42::Int) onto+>convenient Pickler for xpElemQN </P ><PRE-> &lt;number&gt;42&lt;/number&gt;+> xpElem n = xpElemQN (mkName n) </PRE ></TD ></TR
doc/hdoc/Text-XML-HXT-Arrow-ProcessDocument.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow-ReadDocument.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -359,6 +359,17 @@ </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.@@ -432,12 +443,13 @@ >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+parsing is done with tagsoup parser, but input is read strictly </P ><PRE > readDocument [ (a_encoding, isoLatin1)               , (a_mime_type,    &quot;/etc/mime.types&quot;)-              , (a_tagsoup,    &quot;1&quot;)+              , (a_tagsoup,      &quot;1&quot;)+              , (a_strict_input, &quot;1&quot;)               ] &quot;test.svg&quot; </PRE ><P
doc/hdoc/Text-XML-HXT-Arrow-WriteDocument.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -80,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id: WriteDocument.hs,v 1.8 2006<EM->11</EM->09 20:27:42 hxml Exp $-</P-><P >Compound arrow for writing XML documents-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"@@ -256,6 +249,16 @@ > <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 &lt;name .../&gt; 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 &lt;script href=&quot;...&quot;/&gt;, 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
doc/hdoc/Text-XML-HXT-Arrow-XPath.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -145,8 +145,8 @@ >getXPathTreesInDocWithNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -183,8 +183,8 @@ >getXPathTreesWithNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -305,8 +305,8 @@ >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -420,8 +420,8 @@ >getXPathTreesInDocWithNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -511,8 +511,8 @@ >getXPathTreesWithNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -782,8 +782,8 @@ >XmlTree</A > <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree" >XmlTree</A-> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
doc/hdoc/Text-XML-HXT-Arrow-XPathSimple.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -155,8 +155,8 @@ >getXPathTreesInDocWithNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -193,8 +193,8 @@ >getXPathTreesWithNsEnv</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -213,8 +213,8 @@ >tryGetXPath</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -233,8 +233,8 @@ >getXPathTreesWithNsEnvSimple</A > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -251,7 +251,7 @@ ><TD CLASS="decl" ><A HREF="#v%3AgetXP" >getXP</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A@@ -1110,8 +1110,8 @@ >getXPathTreesInDocWithNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -1182,8 +1182,8 @@ >getXPathTreesWithNsEnv</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -1219,8 +1219,8 @@ >tryGetXPath</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -1251,8 +1251,8 @@ >getXPathTreesWithNsEnvSimple</B > :: <A HREF="Text-XML-HXT-Arrow-XmlArrow.html#t%3AArrowXml" >ArrowXml</A-> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> a =&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; a <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -1292,7 +1292,7 @@ ></A ><B >getXP</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"+> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3ANsEnv" >NsEnv</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A
doc/hdoc/Text-XML-HXT-Arrow-XmlArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -81,11 +81,6 @@ ><TR ><TD CLASS="doc" ><P->Version    : $Id: XmlArrow.hs,v 1.34 2006<EM->11</EM->02 16:43:39 hxml Exp $-</P-><P >Basic arrows for processing XML documents </P ><P@@ -2728,7 +2723,7 @@ ></TR ><TR ><TD CLASS="doc"->convenient arrow for element construction with strings instead of qualified names as tagnames, see also <TT+>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
doc/hdoc/Text-XML-HXT-Arrow-XmlIOStateArrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -1076,21 +1076,31 @@ ></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+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+>) -&gt; <A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#t%3AIOStateArrow"+>IOStateArrow</A+> s b b</TD+></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl" ><A HREF="#v%3AtraceString" >traceString</A > ::  <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AInt" >Int</A-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A >) -&gt; <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+> s b b</TD ></TR ><TR ><TD CLASS="s8"@@ -3431,7 +3441,7 @@ ></TR ><TR ><TD CLASS="doc"->issue a string message as trace +>issue a string message as trace </TD ></TR ><TR@@ -3443,23 +3453,56 @@ ><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+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+>) -&gt; <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-> -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+> -&gt; (b -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A >) -&gt; <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+> s b b</TD ><TD CLASS="declbut" ><A HREF="src/Text-XML-HXT-Arrow-XmlIOStateArrow.html#traceString" >Source</A@@ -3470,7 +3513,11 @@ ></TR ><TR ><TD CLASS="doc"->issue the string input of an arrow+>an old alias for <TT+><A HREF="Text-XML-HXT-Arrow-XmlIOStateArrow.html#v%3AtraceValue"+>traceValue</A+></TT+> </TD ></TR ><TR
doc/hdoc/Text-XML-HXT-Arrow-XmlRegex.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Arrow.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-FormatXmlTree.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-Interface.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -114,16 +114,6 @@ ><TD CLASS="decl" >module <A HREF="Text-XML-HXT-DOM-TypeDefs.html" >Text.XML.HXT.DOM.TypeDefs</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"->Text.XML.HXT.DOM.NamespacePredicates</A ></TD ></TR ><TR
doc/hdoc/Text-XML-HXT-DOM-IsoLatinTables.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-MimeTypeDefaults.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-MimeTypes.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
− doc/hdoc/Text-XML-HXT-DOM-NamespacePredicates.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->Text.XML.HXT.DOM.NamespacePredicates</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.2.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.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.NamespacePredicates</FONT-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->basic Namespace and QName predicates and functions-</P-><P->$Id: NamespacePredicates.hs,v 1.3 2006<EM->11</EM->12 14:53:00 hxml Exp $-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="#v%3AsetNamespace"->setNamespace</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%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%3AisNCName"->isNCName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <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-> -&gt; <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-> -&gt; <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-> -&gt; <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%3AsetNamespace"-></A-><B->setNamespace</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-NamespacePredicates.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-NamespacePredicates.html#v%3AisWellformedQName"->isWellformedQName</A-></TT-> and <TT-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedQualifiedName"->isWellformedQualifiedName</A-></TT-> for error checking.-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="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-NamespacePredicates.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%3AisNCName"-></A-><B->isNCName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-NamespacePredicates.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-> -&gt; <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-NamespacePredicates.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-> -&gt; <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-NamespacePredicates.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-> -&gt; <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-NamespacePredicates.html#isWellformedNSDecl"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->test for a wellformed namespace declaration- all namespace prefixes starting with &quot;xml&quot; are reserved for XML related definitions.- predicate is used in filter valdateNamespaces.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="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-> -&gt; <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-NamespacePredicates.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="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 view
@@ -19,1142 +19,2220 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.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->  = <A HREF="#v%3AQN"->QN</A-> {<TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="recfield"-><A HREF="#v%3AnamePrefix"->namePrefix</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%3AlocalPart"->localPart</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%3AnamespaceUri"->namespaceUri</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="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-> -&gt; <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-> -&gt; <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-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%3AmkQName"->mkQName</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <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%3AnullQName"->nullQName</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%3AequalQName"->equalQName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%3AequivQName"->equivQName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%3AnormalizeNsUri"->normalizeNsUri</A-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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%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 &quot;prefix:localPart&quot; and label the name with the apropriate namespace uri-</P-></TD-></TR-><TR-><TD CLASS="section4"->Constructors</TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="5" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AQN"-></A-><B->QN</B-></TD-><TD CLASS="rdoc"-></TD-></TR-><TR-><TD CLASS="body" COLSPAN="2"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="arg"-><A NAME="v%3AnamePrefix"-></A-><B->namePrefix</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->the name prefix part of a qualified name &quot;namePrefix:localPart&quot;-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AlocalPart"-></A-><B->localPart</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->the local part of a qualified name &quot;namePrefix:localPart&quot;-</TD-></TR-><TR-><TD CLASS="arg"-><A NAME="v%3AnamespaceUri"-></A-><B->namespaceUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-></TD-><TD CLASS="rdoc"->the associated namespace uri-</TD-></TR-></TABLE-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="section4"-><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:QName')" ALT="show/hide"-> Instances</TD-></TR-><TR-><TD CLASS="body"-><DIV ID="i:QName" STYLE="display:block;"-><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0"-><TR-><TD CLASS="decl"-><A HREF="/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"-><A NAME="v%3AqualifiedName"-></A-><B->qualifiedName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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 &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="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-> -&gt; <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 &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part- (specialisation of <TT-><A HREF="Text-XML-HXT-DOM-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-> -&gt; <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 &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,- where the subject, predicate and object often are concatenated from namespace uri and local part- (specialisation of <TT-><A HREF="Text-XML-HXT-DOM-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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%3AmkQName"-></A-><B->mkQName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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->.-</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-> -&gt; <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, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamePrefix"->namePrefix</A-></TT-> and <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnamespaceUri"->namespaceUri</A-></TT-> are set to the empty string.-</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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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%3AmkName"->mkName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"->mkNsName</A-></TT->, <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkSNsName"->mkSNsName</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%3AmkNsName"-></A-><B->mkNsName</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <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"-><P->constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter-</P-><P->see also <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AmkNsName"->mkNsName</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%3AnullQName"-></A-><B->nullQName</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#nullQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Empty QName-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AequalQName"-></A-><B->equalQName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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#equalQName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Equality of QNames: Two QNames are equal, if the local parts are equal- and the namespace URIs are equal.- The comparison works with and without namespace propagation.- If namespaces have been propagated, the name is split into prefix and local part- and the namespace uri is set. In this case the prefix is not significant for equality test.- If namespaces have not been propagated, the local part contains the full name, prefix- and namespace URI are empty. The full name (prefix and local part) is used for comparison.-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="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-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"->Bool</A->) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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 <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"->equalQName</A-></TT-> is appropriate, e.g no case significance in names, ...- a name normalization function can be applied to the strings before comparing. Called by <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"->equalQName</A-></TT-> 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%3AnormalizeNsUri"-></A-><B->normalizeNsUri</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A-> -&gt; <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 &quot;/&quot; is ignored-</TD+>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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"+>XName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"+>XName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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 &quot;prefix:localPart&quot; 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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"+>XName</A+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AXName"+>XName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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 &quot;prefix:localPart&quot;, if prefix is not null, else the local part is the result+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="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+> -&gt; <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 &quot;universal&quot; name, that is the namespace uri surrounded with &quot;{&quot; and &quot;}&quot; followed by the local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-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+> -&gt; <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 &quot;universal&quot; uri, that is the namespace uri followed by the local part. This is usefull for RDF applications,+ where the subject, predicate and object often are concatenated from namespace uri and local part+ (specialisation of <TT+><A HREF="Text-XML-HXT-DOM-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+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+>String</A+>) -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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 &quot;/&quot; 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+> -&gt; <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"+>QName</A+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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 &quot;xml&quot; are reserved for XML related definitions.+ predicate is used in filter valdateNamespaces.+</TD+></TR+><TR+><TD CLASS="s15"+></TD+></TR+><TR+><TD CLASS="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+> -&gt; <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+> -&gt; <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+> -&gt; <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+> -&gt; <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"
doc/hdoc/Text-XML-HXT-DOM-ShowXml.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-TypeDefs.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -356,24 +356,6 @@ ></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="/usr/local/share/doc/ghc/libraries/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"@@ -1125,46 +1107,6 @@ >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"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ANsEnv"-></A-><B->NsEnv</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#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"
doc/hdoc/Text-XML-HXT-DOM-UTF8Decoding.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-Unicode.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -117,13 +117,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id$-</P-><P >Unicode and UTF-8 Conversion Functions-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"
doc/hdoc/Text-XML-HXT-DOM-Util.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-XmlKeywords.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-XmlNode.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DOM-XmlOptions.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
− doc/hdoc/Text-XML-HXT-DOM-XmlTreeTypes.html
@@ -1,710 +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.XmlTreeTypes</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.2.0: A collection of tools for processing XML with Haskell.</TD-><TD CLASS="topbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.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.XmlTreeTypes</FONT-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Description</TD-></TR-><TR-><TD CLASS="doc"-><P->exports the core data types- and some additional types and functions- for compatibility with none arrow modules-</P-><P->Version : $Id: XmlTreeTypes.hs,v 1.6 2006<EM->05</EM->09 15:30:43 hxml Exp $-</P-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="section1"->Synopsis</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="body"-><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0"-><TR-><TD CLASS="decl"->module <A HREF="Data-Tree-NTree-Filter.html"->Data.Tree.NTree.Filter</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"->Text.XML.HXT.DOM.TypeDefs</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmkNode"->mkNode</A-> ::  node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AformatNTree"->formatNTree</A-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <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%3AfoldNTree"->foldNTree</A-> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AmapNTree"->mapNTree</A-> ::  (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> b</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AnTreeToList"->nTreeToList</A-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; [a]</TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AdepthNTree"->depthNTree</A-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <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%3AcardNTree"->cardNTree</A-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <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%3AXmlFilter"->XmlFilter</A-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AXmlSFilter"->XmlSFilter</A-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"->TSFilter</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3ATagName"->TagName</A-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><SPAN CLASS="keyword"->type</SPAN-> <A HREF="#t%3AAttrName"->AttrName</A-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-></TR-><TR-><TD CLASS="s8"-></TD-></TR-><TR-><TD CLASS="decl"-><A HREF="#v%3AtName"->tName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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%3AaName"->aName</A-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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-NTree-Filter.html"->Data.Tree.NTree.Filter</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="decl"->module <A HREF="Text-XML-HXT-DOM-TypeDefs.html"->Text.XML.HXT.DOM.TypeDefs</A-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmkNode"-></A-><B->mkNode</B-> ::  node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTrees"->NTrees</A-> node -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mkNode"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AformatNTree"-></A-><B->formatNTree</B-> ::  (node -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"->String</A->) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> node -&gt; <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-XmlTreeTypes.html#formatNTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AfoldNTree"-></A-><B->foldNTree</B-> ::  (a -&gt; [b] -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#foldNTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AmapNTree"-></A-><B->mapNTree</B-> ::  (a -&gt; b) -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> b</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#mapNTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AnTreeToList"-></A-><B->nTreeToList</B-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; [a]</TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#nTreeToList"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AdepthNTree"-></A-><B->depthNTree</B-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <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-XmlTreeTypes.html#depthNTree"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AcardNTree"-></A-><B->cardNTree</B-> ::  <A HREF="Data-Tree-NTree-TypeDefs.html#t%3ANTree"->NTree</A-> a -&gt; <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-XmlTreeTypes.html#cardNTree"->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%3AXmlFilter"-></A-><B->XmlFilter</B-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->TFilter</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlFilter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->A functions that takes a node and returns a list of nodes-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3AXmlSFilter"-></A-><B->XmlSFilter</B-> = <A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"->TSFilter</A-> <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->XNode</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#XmlSFilter"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->A function that takes a list of nodes and returns a list of nodes-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><SPAN CLASS="keyword"->type</SPAN-> <A NAME="t%3ATagName"-></A-><B->TagName</B-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#TagName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Tag 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%3AAttrName"-></A-><B->AttrName</B-> = <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-></TD-><TD CLASS="declbut"-><A HREF="src/Text-XML-HXT-DOM-XmlTreeTypes.html#AttrName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->Attribute name-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AtName"-></A-><B->tName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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-XmlTreeTypes.html#tName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->shortcut for <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"->qualifiedName</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="topdecl"-><TABLE CLASS="declbar"-><TR-><TD CLASS="declname"-><A NAME="v%3AaName"-></A-><B->aName</B-> :: <A HREF="Text-XML-HXT-DOM-QualifiedName.html#t%3AQName"->QName</A-> -&gt; <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-XmlTreeTypes.html#aName"->Source</A-></TD-></TR-></TABLE-></TD-></TR-><TR-><TD CLASS="doc"->shortcut for <TT-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AqualifiedName"->qualifiedName</A-></TT->-</TD-></TR-><TR-><TD CLASS="s15"-></TD-></TR-><TR-><TD CLASS="botbar"->Produced by <A HREF="http://www.haskell.org/haddock/"->Haddock</A-> version 2.3.0</TD-></TR-></TABLE-></BODY-></HTML->
doc/hdoc/Text-XML-HXT-DTDValidation-AttributeValueValidation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-DTDValidation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-DocTransformation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-DocValidation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-IdValidation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-RE.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-TypeDefs.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-Validation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-DTDValidation-XmlRE.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-IO-GetFILE.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -44,15 +44,46 @@ ><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@@ -77,7 +108,9 @@ ></A ><B >getStdinCont</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO"+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+> -&gt; <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@@ -107,7 +140,9 @@ ></A ><B >getCont</B-> :: <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"+> :: <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/System-IO.html#t%3AIO" >IO</A
doc/hdoc/Text-XML-HXT-IO-GetHTTPLibCurl.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-HtmlParsec.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-ProtocolHandlerUtil.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-TagSoup.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XhtmlEntities.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlCharParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlDTDParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlDTDTokenParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlEntities.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlParsec.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Parser-XmlTokenParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-BasicArrows.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-CreatePattern.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibMysql.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibUtils.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-DataTypeLibraries.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-DataTypes.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-PatternFunctions.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-PatternToString.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Schema.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-SchemaGrammar.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Simplification.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-Blocks.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Unicode-CharProps.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Utils.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Validation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-Validator.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-Regex.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -415,6 +415,50 @@ >String</A ></TD ></TR+><TR+><TD CLASS="s8"+></TD+></TR+><TR+><TD CLASS="decl"+><A HREF="#v%3A%3C%26%26%3E"+>(&lt;&amp;&amp;&gt;)</A+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <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"+>(&lt;||&gt;)</A+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+></TD+></TR ></TABLE ></TD ></TR@@ -1023,6 +1067,74 @@ ></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+>(&lt;&amp;&amp;&gt;)</B+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <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+>(&lt;||&gt;)</B+> :: (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; (<A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"+>Bool</A+>) -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/ghc-prim/GHC-Types.html#t%3AChar"+>Char</A+> -&gt; <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
doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -405,7 +405,8 @@ </P ><PRE > splitRE &quot;a*b&quot; &quot;abc&quot; = Just (&quot;ab&quot;,&quot;c&quot;)- splitRE &quot;a*&quot;  &quot;bc&quot;  = Just (&quot;&quot;, &quot;bc)+ splitRE &quot;a*&quot;  &quot;bc&quot;  = Just (&quot;&quot;, &quot;bc&quot;)+ splitRE &quot;a+&quot;  &quot;bc&quot;  = Nothing  splitRE &quot;[&quot;   &quot;abc&quot; = Nothing </PRE ></TD
doc/hdoc/Text-XML-HXT-RelaxNG-XmlSchema-RegexParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-RelaxNG.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-Version.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-NavTree.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathArithmetic.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathDataTypes.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathEval.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -130,8 +130,8 @@ ><TD CLASS="decl" ><A HREF="#v%3AgetXPathWithNsEnv" >getXPathWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -164,8 +164,8 @@ ><TD CLASS="decl" ><A HREF="#v%3AgetXPathSubTreesWithNsEnv" >getXPathSubTreesWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -198,8 +198,8 @@ ><TD CLASS="decl" ><A HREF="#v%3AgetXPathNodeSetWithNsEnv" >getXPathNodeSetWithNsEnv</A-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -293,8 +293,8 @@ ></A ><B >getXPathWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -386,8 +386,8 @@ ></A ><B >getXPathSubTreesWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"@@ -458,8 +458,8 @@ ></A ><B >getXPathNodeSetWithNsEnv</B-> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3ANsEnv"->NsEnv</A+> :: <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AAttributes"+>Attributes</A > -&gt; <A HREF="/usr/local/share/doc/ghc/libraries/base/Data-Char.html#t%3AString" >String</A > -&gt; <A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXmlTree"
doc/hdoc/Text-XML-HXT-XPath-XPathFct.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathKeywords.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathParser.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -80,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id: XPathParser.hs,v 1.6 2006<EM->10</EM->12 11:51:29 hxml Exp $-</P-><P >the XPath Parser-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"
doc/hdoc/Text-XML-HXT-XPath-XPathToNodeSet.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath-XPathToString.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XPath.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XSLT-Application.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XSLT-Common.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -80,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id: Common.hs,v 1.5 2007<EM->05</EM->02 06:41:05 hxml Exp $-</P-><P >Common imports and functions for HXSLT-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"
doc/hdoc/Text-XML-HXT-XSLT-Compilation.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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@@ -80,15 +80,8 @@ ></TR ><TR ><TD CLASS="doc"-><P->Version    : $Id: Compilation.hs,v 1.7 2007<EM->05</EM->02 06:41:05 hxml Exp $-</P-><P >The compilation functions for XSLT stylesheets-</P-></TD+</TD ></TR ><TR ><TD CLASS="s15"
doc/hdoc/Text-XML-HXT-XSLT-CompiledStylesheet.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XSLT-Names.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/Text-XML-HXT-XSLT-XsltArrows.html view
@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>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
doc/hdoc/doc-index.html view
@@ -4,16338 +4,15814 @@ ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE->hxt-8.2.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.2.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" COLSPAN="2"->$$</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->$$&lt;</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%24%24%3C"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->$&lt;</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"->$&lt;$</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"->$&lt;&lt;</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"->$&lt;&lt;&lt;</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"->$&lt;&lt;&lt;&lt;</TD-><TD CLASS="indexlinks"-><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"->Control.Arrow.ArrowList</A->, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->&amp;&amp;&amp;</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"->&amp;&amp;&amp;&amp;</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" COLSPAN="2"->+++</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</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 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->+++&gt;&gt;</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2B%2B%2B%3E%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->..&gt;</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A..%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->.&gt;</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->.&gt;&gt;</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A.%3E%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->/&gt;</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%2F%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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" COLSPAN="2"->:-&gt;</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Data Constructor)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3A-%3E"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Data Constructor)</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"->&lt;+&gt;</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"->&lt;+&gt;&gt;</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" COLSPAN="2"->&lt;/</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3A%3C%2F"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->&lt;&lt;&lt;</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"->&lt;&lt;^</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"->&gt;.</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"->&gt;&gt;.</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"->&gt;&gt;&gt;</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"->&gt;&gt;&gt;&gt;</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"->&gt;&gt;^</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->aName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AaName"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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"->AttrName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AAttrName"->Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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_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_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.XmlTreeTypes, 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"->cardNTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AcardNTree"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->cat</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Acat"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->catM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AcatM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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" COLSPAN="2"->choice</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Achoice"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->choiceM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AchoiceM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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" COLSPAN="2"->containing</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Acontaining"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->containingM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AcontainingM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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" COLSPAN="2"->deep</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeep"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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" COLSPAN="2"->deepest</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Adeepest"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->depthNTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AdepthNTree"->Text.XML.HXT.DOM.XmlTreeTypes</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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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"->equalQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AequalQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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"->foldNTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AfoldNTree"->Text.XML.HXT.DOM.XmlTreeTypes</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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->formatNTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AformatNTree"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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" COLSPAN="2"->guards</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Aguards"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->guardsM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AguardsM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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"->iff</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Aiff"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->ifM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AifM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->IfThen</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Type/Class)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#t%3AIfThen"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Type/Class)</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" COLSPAN="2"->insertChildrenAfter</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAfter"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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" COLSPAN="2"->insertChildrenAt</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AinsertChildrenAt"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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-NamespacePredicates.html#v%3AisDeclaredNamespace"->Text.XML.HXT.DOM.NamespacePredicates</A->, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->isNCName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisNCName"->Text.XML.HXT.DOM.NamespacePredicates</A->, Text.XML.HXT.DOM.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"->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"->isOf</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOf"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->isOfNode</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AisOfNode"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->isWellformedNSDecl</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AisWellformedNSDecl"->Text.XML.HXT.DOM.NamespacePredicates</A->, Text.XML.HXT.DOM.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-NamespacePredicates.html#v%3AisWellformedQName"->Text.XML.HXT.DOM.NamespacePredicates</A->, 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-NamespacePredicates.html#v%3AisWellformedQualifiedName"->Text.XML.HXT.DOM.NamespacePredicates</A->, 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"->liftMf</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AliftMf"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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"->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.XmlTreeTypes, 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.XmlTreeTypes, 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"->mapNTree</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmapNTree"->Text.XML.HXT.DOM.XmlTreeTypes</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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.XmlTreeTypes, 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"->mkNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AmkNode"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->mkNTree</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AmkNTree"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->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.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->modifyChildren</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyChildren"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->modifyNode</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->modifyNode0</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AmodifyNode0"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->multi</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Amulti"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->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.XmlTreeTypes, 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"->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" COLSPAN="2"->neg</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Aneg"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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" COLSPAN="2"->none</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Anone"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->noneM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AnoneM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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" COLSPAN="2"->notContaining</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AnotContaining"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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-TypeDefs.html#t%3ANsEnv"->Text.XML.HXT.DOM.TypeDefs</A->, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.XmlNode, Text.XML.HXT.XPath.NavTree, Text.XML.HXT.XPath.XPathDataTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->nTreeToList</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AnTreeToList"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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"->nullQName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AnullQName"->Text.XML.HXT.DOM.QualifiedName</A->, Text.XML.HXT.DOM.TypeDefs, Text.XML.HXT.DOM.XmlTreeTypes, 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-Tree-NTree-Filter.html#v%3Ao"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->orElse</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AorElse"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->performAction</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AperformAction"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->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" COLSPAN="2"->processBottomUp</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUp"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->processBottomUpIfNot</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpIfNot"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->processBottomUpM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessBottomUpM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->processChildren</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildren"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->processChildrenM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessChildrenM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->processTopDown</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDown"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->processTopDownM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->processTopDownUntil</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AprocessTopDownUntil"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->QN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-QualifiedName.html#v%3AQN"->Text.XML.HXT.DOM.QualifiedName</A-></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.XmlTreeTypes, 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.XmlTreeTypes, 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" COLSPAN="2"->replaceChildren</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceChildren"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->replaceNode</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AreplaceNode"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->satisfies</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Asatisfies"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->seqF</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqF"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->seqM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AseqM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->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"->setNamespace</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AsetNamespace"->Text.XML.HXT.DOM.NamespacePredicates</A->, Text.XML.HXT.DOM.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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->substChildren</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AsubstChildren"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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"->TagName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3ATagName"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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"->TFilter</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#t%3ATFilter"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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" COLSPAN="2"->this</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Athis"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->thisM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AthisM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry"->tName</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#v%3AtName"->Text.XML.HXT.DOM.XmlTreeTypes</A-></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"->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"->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.Tree.NTree.Filter, Data.NavTree, Text.XML.HXT.DOM.XmlTreeTypes, 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"->TSFilter</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#t%3ATSFilter"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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" COLSPAN="2"->when</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3Awhen"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->whenM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexentry" COLSPAN="2"->whenNot</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->1 (Function)</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNot"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</TD-></TR-><TR CLASS="indexrow"-><TD CLASS="indexannot"->2 (Function)</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"->whenNotM</TD-><TD CLASS="indexlinks"-><A HREF="Data-Tree-NTree-Filter.html#v%3AwhenNotM"->Data.Tree.NTree.Filter</A->, Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, 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"->XmlFilter</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlFilter"->Text.XML.HXT.DOM.XmlTreeTypes</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"->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.XmlTreeTypes, 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"->xmlnsQN</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html#v%3AxmlnsQN"->Text.XML.HXT.DOM.NamespacePredicates</A->, Text.XML.HXT.DOM.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"->XmlSFilter</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html#t%3AXmlSFilter"->Text.XML.HXT.DOM.XmlTreeTypes</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.XmlTreeTypes, 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.XmlTreeTypes, 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"->XNode</TD-><TD CLASS="indexlinks"-><A HREF="Text-XML-HXT-DOM-TypeDefs.html#t%3AXNode"->Text.XML.HXT.DOM.TypeDefs</A->, Text.XML.HXT.DOM.XmlTreeTypes, Text.XML.HXT.DOM.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.XmlTreeTypes, 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"->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"->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.XmlTreeTypes, 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.XmlTreeTypes, 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.XmlTreeTypes, Text.XML.HXT.DOM.Interface, Text.XML.HXT.DTDValidation.TypeDefs, Text.XML.HXT.Arrow</TD+>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"+>$&lt;</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"+>$&lt;$</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"+>$&lt;&lt;</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"+>$&lt;&lt;&lt;</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"+>$&lt;&lt;&lt;&lt;</TD+><TD CLASS="indexlinks"+><A HREF="Control-Arrow-ArrowList.html#v%3A%24%3C%3C%3C%3C"+>Control.Arrow.ArrowList</A+>, Text.XML.HXT.DTDValidation.TypeDefs, Control.Arrow.ListArrows, Text.XML.HXT.Arrow</TD+></TR+><TR CLASS="indexrow"+><TD CLASS="indexentry"+>&amp;&amp;&amp;</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"+>&amp;&amp;&amp;&amp;</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"+>/&gt;</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"+>:-&gt;</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"+>&lt;&amp;&amp;&gt;</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"+>&lt;+&gt;</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"+>&lt;+&gt;&gt;</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"+>&lt;/</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"+>&lt;&lt;&lt;</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"+>&lt;&lt;^</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"+>&lt;||&gt;</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"+>&gt;.</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"+>&gt;&gt;.</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"+>&gt;&gt;&gt;</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"+>&gt;&gt;&gt;&gt;</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"+>&gt;&gt;^</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"
doc/hdoc/hxt.haddock view

binary file changed (720406 → 676391 bytes)

doc/hdoc/index.html view
@@ -4,7 +4,7 @@ ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE->hxt-8.2.0: A collection of tools for processing XML with Haskell.</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@@ -19,7 +19,7 @@ ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A@@ -34,7 +34,7 @@ ></TR ><TR ><TD CLASS="section1"->hxt-8.2.0: A collection of tools for processing XML with Haskell.</TD+>hxt-8.3.0: A collection of tools for processing XML with Haskell.</TD ></TR ><TR ><TD CLASS="doc"@@ -291,16 +291,6 @@ ><TABLE CLASS="vanilla2" CELLSPACING="0" CELLPADDING="0" ID="n:5" STYLE="display:block;" ><TR ><TD STYLE="padding-left: 1.25em;width: 44em"-><A HREF="Data-Tree-NTree-Filter.html"->Data.Tree.NTree.Filter</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 44em" ><A HREF="Data-Tree-NTree-TypeDefs.html" >Data.Tree.NTree.TypeDefs</A ></TD@@ -632,16 +622,6 @@ ></TR ><TR ><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-NamespacePredicates.html"->Text.XML.HXT.DOM.NamespacePredicates</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em" ><A HREF="Text-XML-HXT-DOM-QualifiedName.html" >Text.XML.HXT.DOM.QualifiedName</A ></TD@@ -724,16 +704,6 @@ ><TD STYLE="padding-left: 1.25em;width: 42em" ><A HREF="Text-XML-HXT-DOM-XmlOptions.html" >Text.XML.HXT.DOM.XmlOptions</A-></TD-><TD-></TD-><TD-></TD-></TR-><TR-><TD STYLE="padding-left: 1.25em;width: 42em"-><A HREF="Text-XML-HXT-DOM-XmlTreeTypes.html"->Text.XML.HXT.DOM.XmlTreeTypes</A ></TD ><TD ></TD
doc/hdoc/src/Control-Arrow-ArrowNF.html view
@@ -42,5 +42,7 @@ <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'>=&gt;</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'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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/Data-Tree-NTree-Filter.html
@@ -1,923 +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.Filter-<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: Filter.hs,v 1.6 2006/11/12 14:52:59 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>Filter for n-ary tree structure with filter combinators-<a name="line-14"></a>copied and modified from HxXml (&lt;<a href="http://www.cs.york.ac.uk/fp/HaXml/">http://www.cs.york.ac.uk/fp/HaXml/</a>&gt;)-<a name="line-15"></a>-<a name="line-16"></a>Similar but more flexible functions for tree processing are defined in the-<a name="line-17"></a>arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".-<a name="line-18"></a>For new applications, especially for XML processing, it's recommended to use the arrow interface-<a name="line-19"></a>"Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"-<a name="line-20"></a>-<a name="line-21"></a>-}</span>-<a name="line-22"></a>-<a name="line-23"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-24"></a>-<a name="line-25"></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'>Filter</span>-<a name="line-26"></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-27"></a>    <span class='layout'>,</span> <span class='conid'>TFilter</span>-<a name="line-28"></a>    <span class='layout'>,</span> <span class='conid'>TSFilter</span>-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>satisfies</span>-<a name="line-30"></a>-<a name="line-31"></a>    <span class='comment'>-- * Filter</span>-<a name="line-32"></a>    <span class='layout'>,</span> <span class='varid'>none</span>		<span class='comment'>-- simple filter</span>-<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-34"></a>-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isOf</span>-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>isOfNode</span>		<span class='comment'>-- predicate filter</span>-<a name="line-37"></a>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>mkNTree</span>		<span class='comment'>-- contructor filter</span>-<a name="line-39"></a>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>replaceNode</span>	<span class='comment'>-- simple editing</span>-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>replaceChildren</span>-<a name="line-42"></a>-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode</span>-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>modifyNode0</span>-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>modifyChildren</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>substChildren</span>-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>processChildren</span>	<span class='comment'>-- filter combinators</span>-<a name="line-48"></a>-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>o</span>-<a name="line-50"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span>-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>seqF</span>-<a name="line-52"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>..&gt;</span><span class='layout'>)</span>-<a name="line-53"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>+++</span><span class='layout'>)</span>-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>cat</span>-<a name="line-55"></a>-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>orElse</span>		<span class='comment'>-- choices</span>-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>iff</span>		<span class='comment'>-- if then else filter</span>-<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>choice</span>-<a name="line-59"></a>    <span class='layout'>,</span> <span class='conid'>IfThen</span><span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>when</span>-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>whenNot</span>-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>guards</span>-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>neg</span>		<span class='comment'>-- negation</span>-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>containing</span>	<span class='comment'>-- previous: with, but with is keyword in haskell extensions</span>-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>notContaining</span>	<span class='comment'>-- previous: without</span>-<a name="line-66"></a>-<a name="line-67"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>/&gt;</span><span class='layout'>)</span>		<span class='comment'>-- selectors</span>-<a name="line-68"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>deep</span>		<span class='comment'>-- recursive search</span>-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>deepest</span>-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>multi</span>-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUp</span>	<span class='comment'>-- recursive editing</span>-<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpIfNot</span>-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>processTopDown</span>-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownUntil</span>-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAt</span>-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>insertChildrenAfter</span>-<a name="line-78"></a>-<a name="line-79"></a>      <span class='comment'>-- * Monadic Filter</span>-<a name="line-80"></a>    <span class='layout'>,</span> <span class='varid'>thisM</span>		<span class='comment'>-- monadic filter</span>-<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>noneM</span>-<a name="line-82"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span>		<span class='comment'>-- monadic composition</span>-<a name="line-83"></a>    <span class='layout'>,</span> <span class='varid'>seqM</span>		<span class='comment'>-- generalisation of .&gt;&gt;</span>-<a name="line-84"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>+++&gt;&gt;</span><span class='layout'>)</span>		<span class='comment'>-- monadic parallel combination, monadic +++</span>-<a name="line-85"></a>    <span class='layout'>,</span> <span class='varid'>catM</span>		<span class='comment'>-- monadic form of cat</span>-<a name="line-86"></a>    <span class='layout'>,</span> <span class='varid'>ifM</span>		<span class='comment'>-- monadic if then else</span>-<a name="line-87"></a>    <span class='layout'>,</span> <span class='varid'>choiceM</span>		<span class='comment'>-- monadic choice</span>-<a name="line-88"></a>    <span class='layout'>,</span> <span class='varid'>whenM</span>		<span class='comment'>-- special monadic ifs</span>-<a name="line-89"></a>    <span class='layout'>,</span> <span class='varid'>whenNotM</span>-<a name="line-90"></a>    <span class='layout'>,</span> <span class='varid'>guardsM</span>-<a name="line-91"></a>    <span class='layout'>,</span> <span class='varid'>containingM</span>-<a name="line-92"></a>    <span class='layout'>,</span> <span class='varid'>processChildrenM</span>	<span class='comment'>-- monadic versions of recursive editing</span>-<a name="line-93"></a>    <span class='layout'>,</span> <span class='varid'>processTopDownM</span>-<a name="line-94"></a>    <span class='layout'>,</span> <span class='varid'>processBottomUpM</span>-<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>liftMf</span>		<span class='comment'>-- lift a normal filter to a monadic filter</span>-<a name="line-96"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>$$</span><span class='layout'>)</span>		<span class='comment'>-- apply a filter to a list</span>-<a name="line-97"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>$$&lt;</span><span class='layout'>)</span>		<span class='comment'>-- apply a monad filter to a list</span>-<a name="line-98"></a>    <span class='layout'>,</span> <span class='varid'>performAction</span>	<span class='comment'>-- run a command within a filter</span>-<a name="line-99"></a>    <span class='layout'>)</span>-<a name="line-100"></a>-<a name="line-101"></a><span class='keyword'>where</span>-<a name="line-102"></a>-<a name="line-103"></a>-<a name="line-104"></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-105"></a>-<a name="line-106"></a><span class='keyword'>infixl</span> <span class='num'>6</span> <span class='varop'>`containing`</span><span class='layout'>,</span> <span class='varop'>`notContaining`</span><span class='layout'>,</span> <span class='varop'>`containingM`</span>-<a name="line-107"></a><span class='keyword'>infixr</span> <span class='num'>5</span> <span class='varop'>`o`</span><span class='layout'>,</span> <span class='varop'>+++</span><span class='layout'>,</span> <span class='varop'>+++&gt;&gt;</span>-<a name="line-108"></a><span class='keyword'>infixl</span> <span class='num'>5</span> <span class='varop'>/&gt;</span><span class='layout'>,</span> <span class='varop'>&lt;/</span><span class='layout'>,</span> <span class='varop'>`orElse`</span><span class='layout'>,</span> <span class='varop'>.&gt;</span><span class='layout'>,</span> <span class='varop'>..&gt;</span><span class='layout'>,</span> <span class='varop'>.&gt;&gt;</span>-<a name="line-109"></a><span class='keyword'>infixr</span> <span class='num'>4</span> <span class='varop'>`when`</span><span class='layout'>,</span> <span class='varop'>`whenNot`</span><span class='layout'>,</span> <span class='varop'>`guards`</span><span class='layout'>,</span> <span class='varop'>`whenM`</span><span class='layout'>,</span> <span class='varop'>`whenNotM`</span><span class='layout'>,</span> <span class='varop'>`guardsM`</span>-<a name="line-110"></a><span class='keyword'>infixr</span> <span class='num'>3</span> <span class='conop'>:-&gt;</span>-<a name="line-111"></a><span class='keyword'>infixr</span> <span class='num'>0</span> <span class='varop'>$$</span><span class='layout'>,</span> <span class='varop'>$$&lt;</span>-<a name="line-112"></a>-<a name="line-113"></a><span class='comment'>-- |</span>-<a name="line-114"></a><span class='comment'>-- tree filter type: a function mapping a tree onto a list of trees</span>-<a name="line-115"></a><span class='comment'>--</span>-<a name="line-116"></a><span class='comment'>-- filter can be used in various ways, as predicates, selectors, transformers, ...</span>-<a name="line-117"></a>-<a name="line-118"></a><a name="TFilter"></a><span class='keyword'>type</span> <span class='conid'>TFilter</span>  <span class='varid'>node</span>	<span class='keyglyph'>=</span> <span class='conid'>NTree</span>  <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='comment'>-- |</span>-<a name="line-121"></a><span class='comment'>-- a filter for sequences</span>-<a name="line-122"></a>-<a name="line-123"></a><a name="TSFilter"></a><span class='keyword'>type</span> <span class='conid'>TSFilter</span> <span class='varid'>node</span>	<span class='keyglyph'>=</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span>-<a name="line-124"></a>-<a name="line-125"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-126"></a>-<a name="line-127"></a><span class='comment'>-- |</span>-<a name="line-128"></a><span class='comment'>-- satisfies converts a result of a predicate filter into a boolean</span>-<a name="line-129"></a><span class='comment'>--</span>-<a name="line-130"></a><span class='comment'>-- is a shortcut for not . null</span>-<a name="line-131"></a><span class='comment'>--</span>-<a name="line-132"></a><span class='comment'>-- typical use in guards or ifs: @if (satisfies f) t then ... else ... @</span>-<a name="line-133"></a><span class='comment'>--</span>-<a name="line-134"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>-<a name="line-135"></a><span class='comment'>--</span>-<a name="line-136"></a><span class='comment'>--    - 2.parameter t :  the tree to be tested</span>-<a name="line-137"></a><span class='comment'>--</span>-<a name="line-138"></a><span class='comment'>--    - returns : @b = not (null (f t))@</span>-<a name="line-139"></a>-<a name="line-140"></a><a name="satisfies"></a><span class='definition'>satisfies</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-141"></a><span class='definition'>satisfies</span> <span class='varid'>f</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'>f</span>-<a name="line-142"></a>-<a name="line-143"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-144"></a><span class='comment'>--</span>-<a name="line-145"></a><span class='comment'>-- simple filter</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- |</span>-<a name="line-148"></a><span class='comment'>-- the null filter, returns the empty list</span>-<a name="line-149"></a>-<a name="line-150"></a><a name="none"></a><span class='definition'>none</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-151"></a><span class='definition'>none</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='comment'>-- |</span>-<a name="line-154"></a><span class='comment'>-- the unit filter, returns the single element list containing the argument</span>-<a name="line-155"></a>-<a name="line-156"></a><a name="this"></a><span class='definition'>this</span>		<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-157"></a><span class='definition'>this</span> <span class='varid'>n</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='varid'>n</span><span class='keyglyph'>]</span>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-160"></a><span class='comment'>--</span>-<a name="line-161"></a><span class='comment'>-- selecting filter</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- |</span>-<a name="line-164"></a><span class='comment'>-- conversion from predicate function to filter</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the tree</span>-<a name="line-167"></a><span class='comment'>--</span>-<a name="line-168"></a><span class='comment'>--    - returns : 'this' or 'none' depending on the predicate</span>-<a name="line-169"></a>-<a name="line-170"></a><a name="isOf"></a><span class='definition'>isOf</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-171"></a><span class='definition'>isOf</span> <span class='varid'>p</span> <span class='varid'>t</span>-<a name="line-172"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>p</span> <span class='varid'>t</span> <span class='keyword'>then</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span> <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-173"></a>-<a name="line-174"></a><span class='comment'>-- |</span>-<a name="line-175"></a><span class='comment'>-- select filter, selects trees with node values with a specific property</span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>--    * 1.parameter p :  the predicate for testing the node value</span>-<a name="line-178"></a><span class='comment'>--</span>-<a name="line-179"></a><span class='comment'>--    - returns : @[]@ or @[t]@ depending on @p t@</span>-<a name="line-180"></a><span class='comment'>--</span>-<a name="line-181"></a><span class='comment'>-- a special case of 'isOf' filter</span>-<a name="line-182"></a>-<a name="line-183"></a><a name="isOfNode"></a><span class='definition'>isOfNode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-184"></a><span class='definition'>isOfNode</span> <span class='varid'>p</span>	<span class='keyglyph'>=</span> <span class='varid'>isOf</span> <span class='layout'>(</span><span class='varid'>p</span> <span class='varop'>.</span> <span class='varid'>getNode</span><span class='layout'>)</span>-<a name="line-185"></a>-<a name="line-186"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-187"></a><span class='comment'>--</span>-<a name="line-188"></a><span class='comment'>-- simple editing filters</span>-<a name="line-189"></a>-<a name="line-190"></a><span class='comment'>-- |</span>-<a name="line-191"></a><span class='comment'>-- filter for substituting an arbitray tree by a constant</span>-<a name="line-192"></a><span class='comment'>--</span>-<a name="line-193"></a><span class='comment'>--    * 1.parameter t :  the result tree, the input tree is ignored</span>-<a name="line-194"></a><span class='comment'>--</span>-<a name="line-195"></a><span class='comment'>--    - returns : the filter</span>-<a name="line-196"></a>-<a name="line-197"></a><a name="mkNTree"></a><span class='definition'>mkNTree</span>		<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-198"></a><span class='definition'>mkNTree</span> <span class='varid'>t</span>	<span class='keyglyph'>=</span> <span class='varid'>const</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>-<a name="line-199"></a>-<a name="line-200"></a><span class='comment'>-- |</span>-<a name="line-201"></a><span class='comment'>-- filter for replacing the node</span>-<a name="line-202"></a><span class='comment'>--</span>-<a name="line-203"></a><span class='comment'>--    * 1.parameter n :  the new node</span>-<a name="line-204"></a><span class='comment'>--</span>-<a name="line-205"></a><span class='comment'>--    - returns : the editing filter</span>-<a name="line-206"></a>-<a name="line-207"></a><a name="replaceNode"></a><span class='definition'>replaceNode</span>	<span class='keyglyph'>::</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-208"></a><span class='definition'>replaceNode</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='keyword'>_</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-209"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='keyglyph'>]</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 replacing the children</span>-<a name="line-213"></a><span class='comment'>--</span>-<a name="line-214"></a><span class='comment'>--    * 1.parameter cs :  cs the list of children</span>-<a name="line-215"></a><span class='comment'>--</span>-<a name="line-216"></a><span class='comment'>--    - returns : the filter</span>-<a name="line-217"></a>-<a name="line-218"></a><a name="replaceChildren"></a><span class='definition'>replaceChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-219"></a><span class='definition'>replaceChildren</span> <span class='varid'>cs</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='keyword'>_</span><span class='layout'>)</span>-<a name="line-220"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='keyglyph'>]</span>-<a name="line-221"></a>-<a name="line-222"></a><a name="modifyNode"></a><span class='definition'>modifyNode</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-223"></a><span class='definition'>modifyNode</span> <span class='varid'>tf</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='varid'>maybe</span> <span class='conid'>[]</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n'</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n'</span> <span class='varid'>cs</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>tf</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- |</span>-<a name="line-227"></a><span class='comment'>-- filter for editing the node</span>-<a name="line-228"></a><span class='comment'>--</span>-<a name="line-229"></a><span class='comment'>--    * 1.parameter nf :  the XNode editing funtion</span>-<a name="line-230"></a><span class='comment'>--</span>-<a name="line-231"></a><span class='comment'>--    - returns : the filter</span>-<a name="line-232"></a>-<a name="line-233"></a><a name="modifyNode0"></a><span class='definition'>modifyNode0</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>node</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-234"></a><span class='definition'>modifyNode0</span> <span class='varid'>tf</span>	<span class='keyglyph'>=</span> <span class='varid'>modifyNode</span> <span class='layout'>(</span><span class='conid'>Just</span> <span class='varop'>.</span> <span class='varid'>tf</span><span class='layout'>)</span>-<a name="line-235"></a>-<a name="line-236"></a><span class='comment'>-- |</span>-<a name="line-237"></a><span class='comment'>-- filter for editing the children</span>-<a name="line-238"></a><span class='comment'>--</span>-<a name="line-239"></a><span class='comment'>-- all children are processed with a filter mapping lists to lists,</span>-<a name="line-240"></a><span class='comment'>-- this enables not only elementwise editing by lifting a normal</span>-<a name="line-241"></a><span class='comment'>-- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation</span>-<a name="line-242"></a><span class='comment'>-- of the order of the elements, e.g. "reverse" is an appropriate childen</span>-<a name="line-243"></a><span class='comment'>-- editing function.</span>-<a name="line-244"></a><span class='comment'>--</span>-<a name="line-245"></a><span class='comment'>--    * 1.parameter csf :  the children editing function</span>-<a name="line-246"></a><span class='comment'>--</span>-<a name="line-247"></a><span class='comment'>--    - returns : the filter</span>-<a name="line-248"></a><span class='comment'>--</span>-<a name="line-249"></a><span class='comment'>-- see also : 'processChildren'</span>-<a name="line-250"></a>-<a name="line-251"></a><a name="modifyChildren"></a><span class='definition'>modifyChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TSFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-252"></a><span class='definition'>modifyChildren</span> <span class='varid'>f</span> <span class='comment'>-- (NTree n cs)</span>-<a name="line-253"></a>    <span class='comment'>-- = [NTree n (f cs)]</span>-<a name="line-254"></a>    <span class='keyglyph'>=</span> <span class='varid'>substChildren</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>getChildren</span><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'>-- filter for substituting the children of a tree by</span>-<a name="line-258"></a><span class='comment'>-- a new list of childen computed by applying a filter to the input tree.</span>-<a name="line-259"></a><span class='comment'>-- 'modifyChildren' can be expressed by 'substChildren':</span>-<a name="line-260"></a><span class='comment'>-- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@</span>-<a name="line-261"></a>-<a name="line-262"></a><a name="substChildren"></a><span class='definition'>substChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-263"></a><span class='definition'>substChildren</span> <span class='varid'>f</span> <span class='varid'>t</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='sel'>_cs</span><span class='layout'>)</span>-<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>f</span> <span class='varid'>t</span><span class='layout'>)</span><span class='keyglyph'>]</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'>-- combinators (copied from HaXml)</span>-<a name="line-269"></a><span class='comment'>--</span>-<a name="line-270"></a>-<a name="line-271"></a><span class='comment'>-- |</span>-<a name="line-272"></a><span class='comment'>-- sequential composition of filters, usually written in infix notation f2 `o` f1.</span>-<a name="line-273"></a><span class='comment'>--</span>-<a name="line-274"></a><span class='comment'>-- for predicate filter the logical AND</span>-<a name="line-275"></a><span class='comment'>--</span>-<a name="line-276"></a><span class='comment'>--    * 1.parameter f2 :  the 2. filter</span>-<a name="line-277"></a><span class='comment'>--</span>-<a name="line-278"></a><span class='comment'>--    - 2.parameter f1 :  the 1. filter</span>-<a name="line-279"></a><span class='comment'>--</span>-<a name="line-280"></a><span class='comment'>--    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)</span>-<a name="line-281"></a>-<a name="line-282"></a><a name="o"></a><span class='definition'>o</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-283"></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='varid'>concatMap</span> <span class='varid'>f</span> <span class='varop'>.</span> <span class='varid'>g</span>-<a name="line-284"></a>-<a name="line-285"></a><span class='comment'>-- |</span>-<a name="line-286"></a><span class='comment'>-- pronounced \"followed by\", defined as: @f .&gt; g = g \`o\` f@.</span>-<a name="line-287"></a><span class='comment'>--</span>-<a name="line-288"></a><span class='comment'>-- allows filter composition in a more readable way from left to right</span>-<a name="line-289"></a><span class='comment'>--</span>-<a name="line-290"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>-<a name="line-291"></a><span class='comment'>--</span>-<a name="line-292"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>-<a name="line-293"></a><span class='comment'>--</span>-<a name="line-294"></a><span class='comment'>--    - returns : the composition of f1 and f2</span>-<a name="line-295"></a><span class='comment'>--</span>-<a name="line-296"></a><span class='comment'>-- see also : 'o', '(..&gt;)'</span>-<a name="line-297"></a>-<a name="line-298"></a><a name=".>"></a><span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-299"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>.&gt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>f</span>-<a name="line-300"></a>-<a name="line-301"></a><span class='comment'>-- |</span>-<a name="line-302"></a><span class='comment'>-- apply a list of filters sequentially with '(.&gt;)', for predicate filters the generalized AND</span>-<a name="line-303"></a><span class='comment'>--</span>-<a name="line-304"></a><span class='comment'>-- see also : '(.&gt;)'</span>-<a name="line-305"></a>-<a name="line-306"></a><a name="seqF"></a><span class='definition'>seqF</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-307"></a><span class='definition'>seqF</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='layout'>(</span><span class='varop'>.&gt;</span><span class='layout'>)</span> <span class='varid'>this</span>-<a name="line-308"></a>-<a name="line-309"></a><span class='comment'>-- |</span>-<a name="line-310"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>-<a name="line-311"></a><span class='comment'>--</span>-<a name="line-312"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>-<a name="line-313"></a><span class='comment'>--</span>-<a name="line-314"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>-<a name="line-315"></a><span class='comment'>--</span>-<a name="line-316"></a><span class='comment'>--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results</span>-<a name="line-317"></a>-<a name="line-318"></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='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-319"></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'>t</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>g</span> <span class='varid'>t</span>-<a name="line-320"></a>-<a name="line-321"></a><span class='comment'>-- |</span>-<a name="line-322"></a><span class='comment'>-- special sequential composition.</span>-<a name="line-323"></a><span class='comment'>--</span>-<a name="line-324"></a><span class='comment'>-- filter f is applied to an argument t.</span>-<a name="line-325"></a><span class='comment'>-- then filter g is applied to all elements of the result list,</span>-<a name="line-326"></a><span class='comment'>-- but the argument t is also passed as extra parameter to g.</span>-<a name="line-327"></a><span class='comment'>--</span>-<a name="line-328"></a><span class='comment'>-- This allows for step by step transformations of a tree</span>-<a name="line-329"></a><span class='comment'>-- with access to the original tree in every</span>-<a name="line-330"></a><span class='comment'>-- transformation step.</span>-<a name="line-331"></a><span class='comment'>--</span>-<a name="line-332"></a><span class='comment'>-- see also : '(.&gt;)', 'o'</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="..>"></a><span class='layout'>(</span><span class='varop'>..&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>d</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-335"></a><span class='definition'>f</span> <span class='varop'>..&gt;</span> <span class='varid'>g</span>		<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varid'>t</span> <span class='varop'>`o`</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-336"></a>-<a name="line-337"></a><span class='comment'>-- |</span>-<a name="line-338"></a><span class='comment'>-- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR</span>-<a name="line-339"></a><span class='comment'>--</span>-<a name="line-340"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>-<a name="line-341"></a><span class='comment'>--</span>-<a name="line-342"></a><span class='comment'>--    - returns : the composing filter</span>-<a name="line-343"></a>-<a name="line-344"></a><a name="cat"></a><span class='definition'>cat</span>		<span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-345"></a><span class='definition'>cat</span> <span class='varid'>fs</span>  <span class='varid'>t</span>-<a name="line-346"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='keyglyph'>[</span> <span class='varid'>f</span> <span class='varid'>t</span> <span class='keyglyph'>|</span> <span class='varid'>f</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>fs</span> <span class='keyglyph'>]</span>-<a name="line-347"></a>-<a name="line-348"></a><span class='comment'>-- |</span>-<a name="line-349"></a><span class='comment'>-- Filter for editing the children of a tree element wise</span>-<a name="line-350"></a><span class='comment'>--</span>-<a name="line-351"></a><span class='comment'>--    * 1.parameter cf :  the filter applied to the children</span>-<a name="line-352"></a><span class='comment'>--</span>-<a name="line-353"></a><span class='comment'>--    - returns : the editing filter</span>-<a name="line-354"></a><span class='comment'>--</span>-<a name="line-355"></a><span class='comment'>-- see also : 'modifyChildren'</span>-<a name="line-356"></a>-<a name="line-357"></a><a name="processChildren"></a><span class='definition'>processChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-358"></a><span class='definition'>processChildren</span> <span class='varid'>ft</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-359"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='layout'>(</span><span class='varid'>ft</span> <span class='varop'>$$</span> <span class='varid'>cs</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-360"></a>-<a name="line-361"></a><span class='comment'>-- |</span>-<a name="line-362"></a><span class='comment'>-- infix operator for applying a filter to a list of trees</span>-<a name="line-363"></a><span class='comment'>--</span>-<a name="line-364"></a><span class='comment'>--    * 1.parameter f :  the filter</span>-<a name="line-365"></a><span class='comment'>--</span>-<a name="line-366"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>-<a name="line-367"></a><span class='comment'>--</span>-<a name="line-368"></a><span class='comment'>--    - returns : the concatenated list of results</span>-<a name="line-369"></a>-<a name="line-370"></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='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-371"></a><span class='definition'>f</span> <span class='varop'>$$</span> <span class='varid'>l</span>-<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>f</span> <span class='varid'>l</span>-<a name="line-373"></a>-<a name="line-374"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-375"></a><span class='comment'>--</span>-<a name="line-376"></a><span class='comment'>-- choices</span>-<a name="line-377"></a><span class='comment'>--</span>-<a name="line-378"></a>-<a name="line-379"></a><span class='comment'>-- |</span>-<a name="line-380"></a><span class='comment'>-- directional choice, usually written in infix notation as f `orElse` g</span>-<a name="line-381"></a><span class='comment'>--</span>-<a name="line-382"></a><span class='comment'>--    * 1.parameter f :  the 1. filter</span>-<a name="line-383"></a><span class='comment'>--</span>-<a name="line-384"></a><span class='comment'>--    - 2.parameter g :  the 2. filter</span>-<a name="line-385"></a><span class='comment'>--</span>-<a name="line-386"></a><span class='comment'>--    - 3.parameter t :  the tree</span>-<a name="line-387"></a><span class='comment'>--</span>-<a name="line-388"></a><span class='comment'>--    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result</span>-<a name="line-389"></a>-<a name="line-390"></a><a name="orElse"></a><span class='definition'>orElse</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-391"></a><a name="orElse"></a><span class='definition'>f</span> <span class='varop'>`orElse`</span> <span class='varid'>g</span>-<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span><span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>-<a name="line-393"></a>	    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-394"></a>	    <span class='keyword'>in</span>-<a name="line-395"></a>	    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-396"></a>	    <span class='keyword'>then</span> <span class='varid'>g</span> <span class='varid'>t</span>-<a name="line-397"></a>	    <span class='keyword'>else</span> <span class='varid'>res</span>-<a name="line-398"></a>-<a name="line-399"></a><span class='comment'>-- |</span>-<a name="line-400"></a><span class='comment'>-- if then else lifted to filters</span>-<a name="line-401"></a><span class='comment'>--</span>-<a name="line-402"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>-<a name="line-403"></a><span class='comment'>--</span>-<a name="line-404"></a><span class='comment'>--    - 2.parameter t :  the \"then\" filter</span>-<a name="line-405"></a><span class='comment'>--</span>-<a name="line-406"></a><span class='comment'>--    - 3.parameter e :  the \"else\" filter</span>-<a name="line-407"></a><span class='comment'>--</span>-<a name="line-408"></a><span class='comment'>--    - returns : the resulting conditional filter</span>-<a name="line-409"></a>-<a name="line-410"></a><a name="iff"></a><span class='definition'>iff</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-411"></a><span class='definition'>iff</span> <span class='varid'>p</span> <span class='varid'>f</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='keyword'>then</span> <span class='varid'>f</span> <span class='varid'>c</span> <span class='keyword'>else</span> <span class='varid'>g</span> <span class='varid'>c</span>-<a name="line-412"></a>-<a name="line-413"></a><span class='comment'>-- |</span>-<a name="line-414"></a><span class='comment'>-- when the predicate p holds, f is applied, else the identity filter this</span>-<a name="line-415"></a><span class='comment'>--</span>-<a name="line-416"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied filter</span>-<a name="line-417"></a><span class='comment'>--</span>-<a name="line-418"></a><span class='comment'>--    - 2.parameter p :  the predicate</span>-<a name="line-419"></a><span class='comment'>--</span>-<a name="line-420"></a><span class='comment'>--    - returns : the conditional filter</span>-<a name="line-421"></a><span class='comment'>--</span>-<a name="line-422"></a><span class='comment'>-- see also : 'iff', 'whenNot', 'guards', 'whenM'</span>-<a name="line-423"></a>-<a name="line-424"></a><a name="when"></a><span class='definition'>when</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-425"></a><a name="when"></a><span class='definition'>f</span> <span class='varop'>`when`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>this</span>-<a name="line-426"></a>-<a name="line-427"></a><span class='comment'>-- |</span>-<a name="line-428"></a><span class='comment'>-- the complementary filter of when</span>-<a name="line-429"></a><span class='comment'>--</span>-<a name="line-430"></a><span class='comment'>-- shortcut for f `when` neg g</span>-<a name="line-431"></a><span class='comment'>--</span>-<a name="line-432"></a><span class='comment'>-- see also : 'iff', 'when', 'whenNotM', 'neg'</span>-<a name="line-433"></a>-<a name="line-434"></a><a name="whenNot"></a><span class='definition'>whenNot</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-435"></a><a name="whenNot"></a><span class='definition'>f</span> <span class='varop'>`whenNot`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>this</span> <span class='varid'>f</span>-<a name="line-436"></a>-<a name="line-437"></a><span class='comment'>-- |</span>-<a name="line-438"></a><span class='comment'>-- when the predicate p holds, f is applied, else the null filter none</span>-<a name="line-439"></a><span class='comment'>--</span>-<a name="line-440"></a><span class='comment'>--    * 1.parameter p :  the predicate filter</span>-<a name="line-441"></a><span class='comment'>--</span>-<a name="line-442"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied filter</span>-<a name="line-443"></a><span class='comment'>--</span>-<a name="line-444"></a><span class='comment'>--    - returns : the conditional filter</span>-<a name="line-445"></a><span class='comment'>--</span>-<a name="line-446"></a><span class='comment'>-- see also : 'iff', 'when', 'guardsM'</span>-<a name="line-447"></a>-<a name="line-448"></a><a name="guards"></a><span class='definition'>guards</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-449"></a><a name="guards"></a><span class='definition'>g</span> <span class='varop'>`guards`</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>none</span>-<a name="line-450"></a>-<a name="line-451"></a>-<a name="line-452"></a><span class='comment'>-- |</span>-<a name="line-453"></a><span class='comment'>-- negation lifted to filters</span>-<a name="line-454"></a><span class='comment'>--</span>-<a name="line-455"></a><span class='comment'>--    * 1.parameter f :  the predicate filter</span>-<a name="line-456"></a><span class='comment'>--</span>-<a name="line-457"></a><span class='comment'>--    - returns : the filter, that succeeds, when f failed</span>-<a name="line-458"></a>-<a name="line-459"></a><a name="neg"></a><span class='definition'>neg</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-460"></a><span class='definition'>neg</span> <span class='varid'>f</span>		<span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>f</span> <span class='varid'>none</span> <span class='varid'>this</span>-<a name="line-461"></a>-<a name="line-462"></a><span class='comment'>-- |</span>-<a name="line-463"></a><span class='comment'>-- auxiliary datatype for cases within choice filter</span>-<a name="line-464"></a>-<a name="line-465"></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'>:-&gt;</span> <span class='varid'>b</span>-<a name="line-466"></a>-<a name="line-467"></a><span class='comment'>-- |</span>-<a name="line-468"></a><span class='comment'>-- multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>-<a name="line-469"></a><span class='comment'>-- in the first case for that f holds g is applied, if no case matches, 'none' is</span>-<a name="line-470"></a><span class='comment'>-- applied.</span>-<a name="line-471"></a><span class='comment'>-- This filter can be used like a case expression: @choice [ p1 :-&gt; f1, p2 :-&gt; f2, ... , this :-&gt; defaultFilter]@</span>-<a name="line-472"></a><span class='comment'>--</span>-<a name="line-473"></a><span class='comment'>-- see also : 'iff', 'choiceM'</span>-<a name="line-474"></a>-<a name="line-475"></a><a name="choice"></a><span class='definition'>choice</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='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-476"></a><span class='definition'>choice</span> <span class='conid'>[]</span>-<a name="line-477"></a>    <span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-478"></a>-<a name="line-479"></a><span class='definition'>choice</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>g</span> <span class='conop'>:-&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-480"></a>    <span class='keyglyph'>=</span> <span class='varid'>iff</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>choice</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-481"></a>-<a name="line-482"></a><span class='comment'>-- |</span>-<a name="line-483"></a><span class='comment'>-- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g</span>-<a name="line-484"></a><span class='comment'>--</span>-<a name="line-485"></a><span class='comment'>--    * 1.parameter f :  the processing filter</span>-<a name="line-486"></a><span class='comment'>--</span>-<a name="line-487"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>-<a name="line-488"></a><span class='comment'>--</span>-<a name="line-489"></a><span class='comment'>--    - 3.parameter t :  the tree</span>-<a name="line-490"></a><span class='comment'>--</span>-<a name="line-491"></a><span class='comment'>--    - returns : all trees r from f t, for which g r holds (is not the empty list)</span>-<a name="line-492"></a><span class='comment'>--</span>-<a name="line-493"></a><span class='comment'>-- see also : 'notContaining'</span>-<a name="line-494"></a>-<a name="line-495"></a><a name="containing"></a><span class='definition'>containing</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-496"></a><a name="containing"></a><span class='definition'>f</span> <span class='varop'>`containing`</span> <span class='varid'>g</span>-<a name="line-497"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span>-<a name="line-498"></a>-<a name="line-499"></a><span class='comment'>-- |</span>-<a name="line-500"></a><span class='comment'>-- pruning: keep only those results from f for which g does not hold</span>-<a name="line-501"></a><span class='comment'>--</span>-<a name="line-502"></a><span class='comment'>-- see also : 'containing'</span>-<a name="line-503"></a>-<a name="line-504"></a><a name="notContaining"></a><span class='definition'>notContaining</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-505"></a><a name="notContaining"></a><span class='definition'>f</span> <span class='varop'>`notContaining`</span> <span class='varid'>g</span>-<a name="line-506"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varop'>.</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>f</span>-<a name="line-507"></a>-<a name="line-508"></a><span class='comment'>-- |</span>-<a name="line-509"></a><span class='comment'>-- pruning: monadic version of containing, usually written in infix notation as f `containingM` g</span>-<a name="line-510"></a><span class='comment'>--</span>-<a name="line-511"></a><span class='comment'>--    * 1.parameter f :  the monadic processing filter</span>-<a name="line-512"></a><span class='comment'>--</span>-<a name="line-513"></a><span class='comment'>--    - 2.parameter g :  the predicate filter</span>-<a name="line-514"></a><span class='comment'>--</span>-<a name="line-515"></a><span class='comment'>--    - 3.parameter t :  the tree</span>-<a name="line-516"></a><span class='comment'>--</span>-<a name="line-517"></a><span class='comment'>--    - returns : all trees r from f t, for which g r holds (is not the empty list)</span>-<a name="line-518"></a><span class='comment'>--</span>-<a name="line-519"></a><span class='comment'>-- see also : 'notContaining'</span>-<a name="line-520"></a>-<a name="line-521"></a><a name="containingM"></a><span class='definition'>containingM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-522"></a><a name="containingM"></a><span class='definition'>f</span> <span class='varop'>`containingM`</span> <span class='varid'>g</span>-<a name="line-523"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>-<a name="line-524"></a>             <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-525"></a>             <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>filter</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>g</span><span class='layout'>)</span> <span class='varid'>res</span>-<a name="line-526"></a>-<a name="line-527"></a><span class='comment'>-- |</span>-<a name="line-528"></a><span class='comment'>-- pronounced \"slash\", meaning g inside f</span>-<a name="line-529"></a>-<a name="line-530"></a><a name="/>"></a><span class='layout'>(</span><span class='varop'>/&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-531"></a><span class='definition'>f</span> <span class='varop'>/&gt;</span> <span class='varid'>g</span>-<a name="line-532"></a>    <span class='keyglyph'>=</span> <span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span> <span class='varop'>`o`</span> <span class='varid'>f</span>-<a name="line-533"></a>-<a name="line-534"></a><span class='comment'>-- |</span>-<a name="line-535"></a><span class='comment'>-- pronounced \"outside\" meaning f containing g</span>-<a name="line-536"></a>-<a name="line-537"></a><a name="</"></a><span class='layout'>(</span><span class='varop'>&lt;/</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-538"></a><span class='definition'>f</span> <span class='varop'>&lt;/</span> <span class='varid'>g</span>-<a name="line-539"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`containing`</span> <span class='layout'>(</span><span class='varid'>g</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-540"></a>-<a name="line-541"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-542"></a><span class='comment'>--</span>-<a name="line-543"></a><span class='comment'>-- recursive search filters</span>-<a name="line-544"></a>-<a name="line-545"></a><span class='comment'>-- |</span>-<a name="line-546"></a><span class='comment'>-- top down search.</span>-<a name="line-547"></a><span class='comment'>--</span>-<a name="line-548"></a><span class='comment'>-- search terminates, when filter f succeeds</span>-<a name="line-549"></a><span class='comment'>-- can e.g. be used for finding all outermost tag node of a specific kind</span>-<a name="line-550"></a>-<a name="line-551"></a><a name="deep"></a><span class='definition'>deep</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-552"></a><span class='definition'>deep</span> <span class='varid'>f</span>-<a name="line-553"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>`orElse`</span> <span class='layout'>(</span><span class='varid'>deep</span> <span class='varid'>f</span> <span class='varop'>`o`</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-554"></a>-<a name="line-555"></a><span class='comment'>-- |</span>-<a name="line-556"></a><span class='comment'>-- bottom up search.</span>-<a name="line-557"></a><span class='comment'>--</span>-<a name="line-558"></a><span class='comment'>-- first the children are processed,</span>-<a name="line-559"></a><span class='comment'>-- if this does not succeed, the node itself is processed</span>-<a name="line-560"></a><span class='comment'>-- can e.g. be used for finding all innermost tag nodes of a specific kind</span>-<a name="line-561"></a>-<a name="line-562"></a><a name="deepest"></a><span class='definition'>deepest</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-563"></a><span class='definition'>deepest</span> <span class='varid'>f</span>-<a name="line-564"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>deepest</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`orElse`</span> <span class='varid'>f</span>-<a name="line-565"></a>-<a name="line-566"></a><span class='comment'>-- |</span>-<a name="line-567"></a><span class='comment'>-- process all nodes of the whole tree.</span>-<a name="line-568"></a><span class='comment'>--</span>-<a name="line-569"></a><span class='comment'>-- can e.g. be used for finding all nodes of a specific kind</span>-<a name="line-570"></a>-<a name="line-571"></a><a name="multi"></a><span class='definition'>multi</span>		<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-572"></a><span class='definition'>multi</span> <span class='varid'>f</span>-<a name="line-573"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>+++</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>.&gt;</span> <span class='varid'>multi</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-574"></a>-<a name="line-575"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-576"></a><span class='comment'>--</span>-<a name="line-577"></a><span class='comment'>-- recursive transformation filters</span>-<a name="line-578"></a><span class='comment'>--</span>-<a name="line-579"></a>-<a name="line-580"></a><span class='comment'>-- |</span>-<a name="line-581"></a><span class='comment'>-- bottom up transformation</span>-<a name="line-582"></a><span class='comment'>--</span>-<a name="line-583"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>-<a name="line-584"></a><span class='comment'>--</span>-<a name="line-585"></a><span class='comment'>--    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner</span>-<a name="line-586"></a><span class='comment'>--</span>-<a name="line-587"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUpIfNot'</span>-<a name="line-588"></a>-<a name="line-589"></a><a name="processBottomUp"></a><span class='definition'>processBottomUp</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-590"></a><span class='definition'>processBottomUp</span> <span class='varid'>f</span>-<a name="line-591"></a>    <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='varop'>.&gt;</span> <span class='varid'>f</span>-<a name="line-592"></a>-<a name="line-593"></a><span class='comment'>-- |</span>-<a name="line-594"></a><span class='comment'>-- top down transformation</span>-<a name="line-595"></a><span class='comment'>--</span>-<a name="line-596"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>-<a name="line-597"></a><span class='comment'>--</span>-<a name="line-598"></a><span class='comment'>--    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result</span>-<a name="line-599"></a><span class='comment'>--</span>-<a name="line-600"></a><span class='comment'>-- see also : 'processBottomUp'</span>-<a name="line-601"></a>-<a name="line-602"></a><a name="processTopDown"></a><span class='definition'>processTopDown</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-603"></a><span class='definition'>processTopDown</span> <span class='varid'>f</span>-<a name="line-604"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>.&gt;</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDown</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-605"></a>-<a name="line-606"></a><span class='comment'>-- |</span>-<a name="line-607"></a><span class='comment'>-- guarded bottom up transformation, stops at subtrees for which a predicate p holds</span>-<a name="line-608"></a><span class='comment'>--</span>-<a name="line-609"></a><span class='comment'>--    * 1.parameter f :  the transforming filter</span>-<a name="line-610"></a><span class='comment'>--</span>-<a name="line-611"></a><span class='comment'>--    - 2.parameter p :  the predicate filter for the guard</span>-<a name="line-612"></a><span class='comment'>--</span>-<a name="line-613"></a><span class='comment'>--    - returns : the filter for processing all (sub-)trees</span>-<a name="line-614"></a><span class='comment'>--</span>-<a name="line-615"></a><span class='comment'>-- see also : 'processBottomUp'</span>-<a name="line-616"></a>-<a name="line-617"></a><a name="processBottomUpIfNot"></a><span class='definition'>processBottomUpIfNot</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-618"></a><span class='definition'>processBottomUpIfNot</span> <span class='varid'>f</span> <span class='varid'>p</span>-<a name="line-619"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processBottomUpIfNot</span> <span class='varid'>f</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varop'>.&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>p</span>-<a name="line-620"></a>-<a name="line-621"></a><span class='comment'>-- |</span>-<a name="line-622"></a><span class='comment'>-- top down transformation until a node to be transformed is found</span>-<a name="line-623"></a><span class='comment'>--</span>-<a name="line-624"></a><span class='comment'>--    * 1.parameter f :  the /simple/ transforming filter</span>-<a name="line-625"></a><span class='comment'>--</span>-<a name="line-626"></a><span class='comment'>--    - returns : the filter that applies f first to the tree and, if the filter does not succeed,</span>-<a name="line-627"></a><span class='comment'>--		  recursively to all children of the input tree.</span>-<a name="line-628"></a><span class='comment'>--</span>-<a name="line-629"></a><span class='comment'>-- Example:</span>-<a name="line-630"></a><span class='comment'>--</span>-<a name="line-631"></a><span class='comment'>-- @processTopDownUntil none@</span>-<a name="line-632"></a><span class='comment'>--</span>-<a name="line-633"></a><span class='comment'>-- is the identity filter (maybe a bit more inefficient).</span>-<a name="line-634"></a><span class='comment'>--</span>-<a name="line-635"></a><span class='comment'>-- Example:</span>-<a name="line-636"></a><span class='comment'>--</span>-<a name="line-637"></a><span class='comment'>-- @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@</span>-<a name="line-638"></a><span class='comment'>--</span>-<a name="line-639"></a><span class='comment'>-- is a filter for adding an attribute border=\"2\" in all top level table tags.</span>-<a name="line-640"></a><span class='comment'>--		  The content of table tags will remain unchanged.</span>-<a name="line-641"></a><span class='comment'>--</span>-<a name="line-642"></a><span class='comment'>-- see also : 'processTopDown', 'processBottomUp'</span>-<a name="line-643"></a>-<a name="line-644"></a><a name="processTopDownUntil"></a><span class='definition'>processTopDownUntil</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-645"></a><span class='definition'>processTopDownUntil</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-646"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>res</span>-<a name="line-647"></a>	<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='layout'>(</span><span class='varid'>processTopDownUntil</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-648"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-649"></a>	<span class='keyglyph'>=</span> <span class='varid'>res</span>-<a name="line-650"></a>    <span class='keyword'>where</span>-<a name="line-651"></a>    <span class='varid'>res</span> <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-652"></a>-<a name="line-653"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-654"></a><span class='comment'>--</span>-<a name="line-655"></a>-<a name="line-656"></a><span class='comment'>-- |</span>-<a name="line-657"></a><span class='comment'>-- insertion of trees into the list of children at a given position</span>-<a name="line-658"></a><span class='comment'>--</span>-<a name="line-659"></a><span class='comment'>-- useful for inserting something into the list of children at a given position</span>-<a name="line-660"></a><span class='comment'>-- the list of children is split with the @splitAt@ function</span>-<a name="line-661"></a><span class='comment'>-- the nodes are inserted between these two sublists.</span>-<a name="line-662"></a><span class='comment'>--</span>-<a name="line-663"></a><span class='comment'>-- examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front</span>-<a name="line-664"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child</span>-<a name="line-665"></a><span class='comment'>--</span>-<a name="line-666"></a><span class='comment'>-- see also: 'insertChildrenAfter'</span>-<a name="line-667"></a>-<a name="line-668"></a>-<a name="line-669"></a><a name="insertChildrenAt"></a><span class='definition'>insertChildrenAt</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-670"></a><span class='definition'>insertChildrenAt</span> <span class='varid'>i</span> <span class='varid'>ins</span> <span class='varid'>t</span>-<a name="line-671"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>cl1</span> <span class='varop'>++</span> <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-672"></a>    <span class='keyword'>where</span>-<a name="line-673"></a>    <span class='layout'>(</span><span class='varid'>cl1</span><span class='layout'>,</span> <span class='varid'>cl2</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'>getChildren</span> <span class='varid'>t</span>-<a name="line-674"></a>-<a name="line-675"></a><span class='comment'>-- |</span>-<a name="line-676"></a><span class='comment'>-- insertion of trees into the list of children after specific elements</span>-<a name="line-677"></a><span class='comment'>--</span>-<a name="line-678"></a><span class='comment'>-- useful for inserting something into the list of children of a node</span>-<a name="line-679"></a><span class='comment'>-- the list of children is split with the @span@ function and the filter p as predicate</span>-<a name="line-680"></a><span class='comment'>-- the nodes are inserted between these two sublists</span>-<a name="line-681"></a><span class='comment'>--</span>-<a name="line-682"></a><span class='comment'>-- examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front</span>-<a name="line-683"></a><span class='comment'>-- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children</span>-<a name="line-684"></a><span class='comment'>--</span>-<a name="line-685"></a><span class='comment'>-- see also: 'insertChildrenAt'</span>-<a name="line-686"></a>-<a name="line-687"></a><a name="insertChildrenAfter"></a><span class='definition'>insertChildrenAfter</span>	<span class='keyglyph'>::</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TFilter</span> <span class='varid'>node</span>-<a name="line-688"></a><span class='definition'>insertChildrenAfter</span> <span class='varid'>p</span> <span class='varid'>ins</span> <span class='varid'>t</span>-<a name="line-689"></a>    <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span><span class='varid'>cl1</span> <span class='varop'>++</span> <span class='varid'>ins</span> <span class='varid'>t</span> <span class='varop'>++</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-690"></a>    <span class='keyword'>where</span>-<a name="line-691"></a>    <span class='layout'>(</span><span class='varid'>cl1</span><span class='layout'>,</span> <span class='varid'>cl2</span><span class='layout'>)</span> <span class='keyglyph'>=</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'>p</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>getChildren</span> <span class='varid'>t</span>-<a name="line-692"></a>-<a name="line-693"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-694"></a><span class='comment'>--</span>-<a name="line-695"></a><span class='comment'>-- monadic filter</span>-<a name="line-696"></a>-<a name="line-697"></a><span class='comment'>-- |</span>-<a name="line-698"></a><span class='comment'>-- the monadic version of the identity filter this.</span>-<a name="line-699"></a><span class='comment'>--</span>-<a name="line-700"></a><span class='comment'>-- see also : 'this'</span>-<a name="line-701"></a>-<a name="line-702"></a><a name="thisM"></a><span class='definition'>thisM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-703"></a><span class='definition'>thisM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>this</span>-<a name="line-704"></a>-<a name="line-705"></a><span class='comment'>-- |</span>-<a name="line-706"></a><span class='comment'>-- the monadic version of the null filter none.</span>-<a name="line-707"></a><span class='comment'>--</span>-<a name="line-708"></a><span class='comment'>-- see also : 'none'</span>-<a name="line-709"></a>-<a name="line-710"></a><a name="noneM"></a><span class='definition'>noneM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-711"></a><span class='definition'>noneM</span>		<span class='keyglyph'>=</span> <span class='varid'>liftMf</span> <span class='varid'>none</span>-<a name="line-712"></a>-<a name="line-713"></a><span class='comment'>-- |</span>-<a name="line-714"></a><span class='comment'>-- sequential composition of monadic filters, monadic version of \".&gt;\".</span>-<a name="line-715"></a><span class='comment'>--</span>-<a name="line-716"></a><span class='comment'>--    * 1.parameter f1 :  the 1. monadic filter</span>-<a name="line-717"></a><span class='comment'>--</span>-<a name="line-718"></a><span class='comment'>--    - 2.parameter f2 :  the 2. monadic filter</span>-<a name="line-719"></a><span class='comment'>--</span>-<a name="line-720"></a><span class='comment'>--    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)</span>-<a name="line-721"></a><span class='comment'>--</span>-<a name="line-722"></a><span class='comment'>-- see also : '(.&gt;)'</span>-<a name="line-723"></a>-<a name="line-724"></a><a name=".>>"></a><span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-725"></a><a name="cmd1"></a><span class='definition'>cmd1</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>cmd2</span>-<a name="line-726"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>-<a name="line-727"></a>      <span class='keyword'>do</span>-<a name="line-728"></a>      <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>cmd1</span> <span class='varid'>t</span>-<a name="line-729"></a>      <span class='varid'>r2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mapM</span> <span class='varid'>cmd2</span> <span class='varid'>r1</span>-<a name="line-730"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>r2</span><span class='layout'>)</span>-<a name="line-731"></a>-<a name="line-732"></a><span class='comment'>-- |</span>-<a name="line-733"></a><span class='comment'>-- generalized sequential composition of monadic filters</span>-<a name="line-734"></a>-<a name="line-735"></a><a name="seqM"></a><span class='definition'>seqM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span><span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-736"></a><span class='definition'>seqM</span>-<a name="line-737"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>.&gt;&gt;</span><span class='layout'>)</span> <span class='varid'>thisM</span>-<a name="line-738"></a>-<a name="line-739"></a><span class='comment'>-- |</span>-<a name="line-740"></a><span class='comment'>-- binary parallel composition, the logical OR for predicate filter</span>-<a name="line-741"></a><span class='comment'>--</span>-<a name="line-742"></a><span class='comment'>--    * 1.parameter f1 :  the 1. filter</span>-<a name="line-743"></a><span class='comment'>--</span>-<a name="line-744"></a><span class='comment'>--    - 2.parameter f2 :  the 2. filter</span>-<a name="line-745"></a><span class='comment'>--</span>-<a name="line-746"></a><span class='comment'>--    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results</span>-<a name="line-747"></a><span class='comment'>-- see also: 'cat', '+++', 'catM'</span>-<a name="line-748"></a>-<a name="line-749"></a><a name="+++>>"></a><span class='layout'>(</span><span class='varop'>+++&gt;&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-750"></a><span class='definition'>f</span> <span class='varop'>+++&gt;&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>do</span>-<a name="line-751"></a>			 <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-752"></a>			 <span class='varid'>r2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>g</span> <span class='varid'>t</span>-<a name="line-753"></a>			 <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>r1</span> <span class='varop'>++</span> <span class='varid'>r2</span><span class='layout'>)</span>-<a name="line-754"></a>-<a name="line-755"></a><span class='comment'>-- |</span>-<a name="line-756"></a><span class='comment'>-- apply a list of monadic filters</span>-<a name="line-757"></a><span class='comment'>--</span>-<a name="line-758"></a><span class='comment'>--    * 1.parameter fs :  the list of filters</span>-<a name="line-759"></a><span class='comment'>--</span>-<a name="line-760"></a><span class='comment'>--    - returns : the composing filter</span>-<a name="line-761"></a><span class='comment'>-- see also: 'cat', '+++', '+++&gt;&gt;'</span>-<a name="line-762"></a>-<a name="line-763"></a><a name="catM"></a><span class='definition'>catM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-764"></a><span class='definition'>catM</span> <span class='varid'>fs</span>  <span class='varid'>t</span>-<a name="line-765"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-766"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>sequence</span> <span class='layout'>(</span><span class='varid'>map</span> <span class='layout'>(</span><span class='varop'>$</span> <span class='varid'>t</span><span class='layout'>)</span> <span class='varid'>fs</span><span class='layout'>)</span>-<a name="line-767"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>concat</span> <span class='varid'>res</span>-<a name="line-768"></a>-<a name="line-769"></a><span class='comment'>-- |</span>-<a name="line-770"></a><span class='comment'>-- monadic if-then-else.</span>-<a name="line-771"></a><span class='comment'>--</span>-<a name="line-772"></a><span class='comment'>--    * 1.parameter p :  the predicate</span>-<a name="line-773"></a><span class='comment'>--</span>-<a name="line-774"></a><span class='comment'>--    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree</span>-<a name="line-775"></a><span class='comment'>--</span>-<a name="line-776"></a><span class='comment'>--    - 3.parameter elseP :  the else part</span>-<a name="line-777"></a><span class='comment'>--</span>-<a name="line-778"></a><span class='comment'>--    - returns : the monadic filter for the conditional</span>-<a name="line-779"></a>-<a name="line-780"></a><a name="ifM"></a><span class='definition'>ifM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-781"></a><span class='definition'>ifM</span> <span class='varid'>p</span> <span class='varid'>thenPart</span> <span class='varid'>elsePart</span>-<a name="line-782"></a>    <span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>-<a name="line-783"></a>      <span class='keyword'>if</span> <span class='layout'>(</span><span class='varid'>satisfies</span> <span class='varid'>p</span><span class='layout'>)</span> <span class='varid'>t</span>-<a name="line-784"></a>      <span class='keyword'>then</span> <span class='varid'>thenPart</span> <span class='varid'>t</span>-<a name="line-785"></a>      <span class='keyword'>else</span> <span class='varid'>elsePart</span> <span class='varid'>t</span>-<a name="line-786"></a>-<a name="line-787"></a><span class='comment'>-- |</span>-<a name="line-788"></a><span class='comment'>-- monadic version of multiway branch. The list of cases @f :-&gt; g@ is processed sequentially,</span>-<a name="line-789"></a><span class='comment'>-- in the first case for that f holds g is applied, if no case matches, 'noneM' is</span>-<a name="line-790"></a><span class='comment'>-- applied.</span>-<a name="line-791"></a><span class='comment'>-- This filter can be used like a case expression: @choiceM [ p1 :-&gt; f1, p2 :-&gt; f2, ... , thisM :-&gt; defaultFilter]@</span>-<a name="line-792"></a><span class='comment'>--</span>-<a name="line-793"></a><span class='comment'>-- see also : 'choice', 'ifM'</span>-<a name="line-794"></a>-<a name="line-795"></a><a name="choiceM"></a><span class='definition'>choiceM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>IfThen</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-796"></a><span class='definition'>choiceM</span> <span class='conid'>[]</span>-<a name="line-797"></a>    <span class='keyglyph'>=</span> <span class='varid'>noneM</span>-<a name="line-798"></a>-<a name="line-799"></a><span class='definition'>choiceM</span> <span class='layout'>(</span><span class='layout'>(</span><span class='varid'>g</span> <span class='conop'>:-&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='conop'>:</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-800"></a>    <span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='layout'>(</span><span class='varid'>choiceM</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-801"></a>-<a name="line-802"></a>-<a name="line-803"></a><span class='comment'>-- |</span>-<a name="line-804"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the identity filter.</span>-<a name="line-805"></a><span class='comment'>--</span>-<a name="line-806"></a><span class='comment'>--    * 1.parameter f :  the conditinally applied monadic filter</span>-<a name="line-807"></a><span class='comment'>--</span>-<a name="line-808"></a><span class='comment'>--    - 2.parameter p :  the simple predicate</span>-<a name="line-809"></a><span class='comment'>--</span>-<a name="line-810"></a><span class='comment'>--    - returns : the conditional filter</span>-<a name="line-811"></a><span class='comment'>--</span>-<a name="line-812"></a><span class='comment'>-- see also : 'ifM', 'when', 'guardsM', 'whenNotM'</span>-<a name="line-813"></a>-<a name="line-814"></a><a name="whenM"></a><span class='definition'>whenM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-815"></a><a name="whenM"></a><span class='definition'>f</span> <span class='varop'>`whenM`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>thisM</span>-<a name="line-816"></a>-<a name="line-817"></a><span class='comment'>-- |</span>-<a name="line-818"></a><span class='comment'>-- the complementary filter of whenM.</span>-<a name="line-819"></a><span class='comment'>--</span>-<a name="line-820"></a><span class='comment'>-- see also : 'ifM', 'whenM', 'whenNot'</span>-<a name="line-821"></a>-<a name="line-822"></a><a name="whenNotM"></a><span class='definition'>whenNotM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-823"></a><a name="whenNotM"></a><span class='definition'>f</span> <span class='varop'>`whenNotM`</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>thisM</span> <span class='varid'>f</span>-<a name="line-824"></a>-<a name="line-825"></a><span class='comment'>-- |</span>-<a name="line-826"></a><span class='comment'>-- when the predicate p holds, the monadic filter f is applied, else the null filter.</span>-<a name="line-827"></a><span class='comment'>--</span>-<a name="line-828"></a><span class='comment'>--    * 1.parameter p :  the simple predicate filter</span>-<a name="line-829"></a><span class='comment'>--</span>-<a name="line-830"></a><span class='comment'>--    - 2.parameter f :  the conditionally applied monadic filter</span>-<a name="line-831"></a><span class='comment'>--</span>-<a name="line-832"></a><span class='comment'>--    - returns : the conditional filter</span>-<a name="line-833"></a><span class='comment'>--</span>-<a name="line-834"></a><span class='comment'>-- see also : 'ifM', 'guards', 'whenM'</span>-<a name="line-835"></a>-<a name="line-836"></a><a name="guardsM"></a><span class='definition'>guardsM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-837"></a><a name="guardsM"></a><span class='definition'>g</span> <span class='varop'>`guardsM`</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='varid'>ifM</span> <span class='varid'>g</span> <span class='varid'>f</span> <span class='varid'>noneM</span>-<a name="line-838"></a>-<a name="line-839"></a><span class='comment'>-- |</span>-<a name="line-840"></a><span class='comment'>-- Filter for editing the children of a tree with a monadic filter</span>-<a name="line-841"></a><span class='comment'>--</span>-<a name="line-842"></a><span class='comment'>--    * 1.parameter cf :  the monadic filter applied to the children</span>-<a name="line-843"></a><span class='comment'>--</span>-<a name="line-844"></a><span class='comment'>--    - returns : the monadic editing filter</span>-<a name="line-845"></a><span class='comment'>--</span>-<a name="line-846"></a><span class='comment'>-- see also : 'processChildren'</span>-<a name="line-847"></a>-<a name="line-848"></a><a name="processChildrenM"></a><span class='definition'>processChildrenM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-849"></a><span class='definition'>processChildrenM</span> <span class='varid'>ft</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>cs</span><span class='layout'>)</span>-<a name="line-850"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-851"></a>      <span class='varid'>res</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ft</span> <span class='varop'>$$&lt;</span> <span class='varid'>cs</span>-<a name="line-852"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>n</span> <span class='varid'>res</span><span class='keyglyph'>]</span>-<a name="line-853"></a>-<a name="line-854"></a><span class='comment'>-- |</span>-<a name="line-855"></a><span class='comment'>-- monadic variant of 'processTopDown'</span>-<a name="line-856"></a>-<a name="line-857"></a><a name="processTopDownM"></a><span class='definition'>processTopDownM</span>		<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-858"></a><span class='definition'>processTopDownM</span> <span class='varid'>f</span>-<a name="line-859"></a>    <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>processTopDownM</span> <span class='varid'>f</span><span class='layout'>)</span>-<a name="line-860"></a>-<a name="line-861"></a><span class='comment'>-- |</span>-<a name="line-862"></a><span class='comment'>-- monadic variant of 'processBottomUp'</span>-<a name="line-863"></a>-<a name="line-864"></a><a name="processBottomUpM"></a><span class='definition'>processBottomUpM</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='conid'>NTree</span> <span class='varid'>node</span><span class='keyglyph'>]</span><span class='layout'>)</span>-<a name="line-865"></a><span class='definition'>processBottomUpM</span> <span class='varid'>f</span>-<a name="line-866"></a>    <span class='keyglyph'>=</span> <span class='varid'>processChildrenM</span> <span class='layout'>(</span><span class='varid'>processBottomUpM</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varop'>.&gt;&gt;</span> <span class='varid'>f</span>-<a name="line-867"></a>-<a name="line-868"></a><span class='comment'>-- |</span>-<a name="line-869"></a><span class='comment'>-- infix operator for applying a monadic filter to a list of trees,</span>-<a name="line-870"></a><span class='comment'>-- typically used in do-notation for processing of intermediate results.</span>-<a name="line-871"></a><span class='comment'>--</span>-<a name="line-872"></a><span class='comment'>--    * 1.parameter f :  the monadic filter</span>-<a name="line-873"></a><span class='comment'>--</span>-<a name="line-874"></a><span class='comment'>--    - 2.parameter ts :  the list of trees</span>-<a name="line-875"></a><span class='comment'>--</span>-<a name="line-876"></a><span class='comment'>--    - returns : the concatenated list of results</span>-<a name="line-877"></a><span class='comment'>--</span>-<a name="line-878"></a><span class='comment'>-- see also : '($$)'</span>-<a name="line-879"></a>-<a name="line-880"></a><a name="$$<"></a><span class='layout'>(</span><span class='varop'>$$&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-881"></a><a name="cmd"></a><span class='definition'>cmd</span> <span class='varop'>$$&lt;</span> <span class='varid'>l</span>-<a name="line-882"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-883"></a>      <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mapM</span> <span class='varid'>cmd</span> <span class='varid'>l</span>-<a name="line-884"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>concat</span> <span class='varid'>r</span><span class='layout'>)</span>-<a name="line-885"></a>-<a name="line-886"></a><span class='comment'>-- |</span>-<a name="line-887"></a><span class='comment'>-- lift a filter to a monadic filter</span>-<a name="line-888"></a><span class='comment'>--</span>-<a name="line-889"></a><span class='comment'>--    * 1.parameter f :  the /simple/ filter</span>-<a name="line-890"></a><span class='comment'>--</span>-<a name="line-891"></a><span class='comment'>--    - returns : the lifted monadic version</span>-<a name="line-892"></a>-<a name="line-893"></a><a name="liftMf"></a><span class='definition'>liftMf</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span>-<a name="line-894"></a><span class='definition'>liftMf</span> <span class='varid'>f</span> <span class='varid'>t</span>-<a name="line-895"></a>    <span class='keyglyph'>=</span> <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-896"></a>-<a name="line-897"></a><span class='comment'>-- |</span>-<a name="line-898"></a><span class='comment'>-- run an arbitray command on a tree t and return the tree,</span>-<a name="line-899"></a><span class='comment'>-- used for inserting arbitray commands in a filter pipeline</span>-<a name="line-900"></a><span class='comment'>--</span>-<a name="line-901"></a><span class='comment'>--    * 1.parameter cmd :  the command</span>-<a name="line-902"></a><span class='comment'>--</span>-<a name="line-903"></a><span class='comment'>--    - 2.parameter t :  the argument tree</span>-<a name="line-904"></a><span class='comment'>--</span>-<a name="line-905"></a><span class='comment'>--    - returns : the unchanged tree as a single element list</span>-<a name="line-906"></a>-<a name="line-907"></a><a name="performAction"></a><span class='definition'>performAction</span>	<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-908"></a><span class='definition'>performAction</span> <span class='varid'>cmd</span> <span class='varid'>t</span>-<a name="line-909"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-910"></a>      <span class='varid'>cmd</span> <span class='varid'>t</span>-<a name="line-911"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>t</span><span class='keyglyph'>]</span>-<a name="line-912"></a>-<a name="line-913"></a><span class='comment'>-- eof ------------------------------------------------------------</span>-</pre></body>-</html>
doc/hdoc/src/Data-Tree-NTree-TypeDefs.html view
@@ -10,7 +10,7 @@ <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 Uwe Schmidt+<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)
doc/hdoc/src/Text-XML-HXT-Arrow-DocumentInput.html view
@@ -121,309 +121,322 @@ <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='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-117"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-118"></a>	       <span class='varid'>getPathFromURI</span>-<a name="line-119"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-120"></a>	       <span class='varid'>arrIO</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getCont</span>-<a name="line-121"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-122"></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-123"></a>		 <span class='varop'>|||</span>-<a name="line-124"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</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'>&gt;&gt;&gt;</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'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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='layout'>)</span>-<a name="line-127"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-128"></a>      <span class='varid'>addMimeType</span>-<a name="line-129"></a>-<a name="line-130"></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-131"></a><span class='definition'>getStdinContents</span>-<a name="line-132"></a>    <span class='keyglyph'>=</span> <span class='varid'>applyA</span> <span class='layout'>(</span> <span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>FILE</span><span class='varop'>.</span><span class='varid'>getStdinCont</span><span class='layout'>)</span>-<a name="line-133"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-134"></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-135"></a>		 <span class='varop'>|||</span>-<a name="line-136"></a>		 <span class='varid'>arr</span> <span class='varid'>addTxtContent</span>	<span class='comment'>-- content read</span>-<a name="line-137"></a>	       <span class='layout'>)</span>-<a name="line-138"></a>	     <span class='layout'>)</span>-<a name="line-139"></a>-<a name="line-140"></a><a name="addError"></a><span class='definition'>addError</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-141"></a><span class='definition'>addError</span> <span class='varid'>e</span>-<a name="line-142"></a>    <span class='keyglyph'>=</span> <span class='varid'>issueFatal</span> <span class='varid'>e</span>-<a name="line-143"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-144"></a>      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"accessing documents"</span>-<a name="line-145"></a>-<a name="line-146"></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-147"></a><span class='definition'>addMimeType</span>-<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>addMime</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-149"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-150"></a>		   <span class='layout'>(</span> <span class='varid'>uriToMime</span> <span class='varop'>$&lt;</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_mimeTypes</span> <span class='layout'>)</span>-<a name="line-151"></a>		 <span class='layout'>)</span>-<a name="line-152"></a>    <span class='keyword'>where</span>-<a name="line-153"></a>    <span class='varid'>addMime</span> <span class='varid'>mt</span>-<a name="line-154"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferMimeType</span> <span class='varid'>mt</span>-<a name="line-155"></a>    <span class='varid'>uriToMime</span> <span class='varid'>mtt</span>-<a name="line-156"></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'>-&gt;</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-157"></a>-<a name="line-158"></a><a name="addTxtContent"></a><span class='definition'>addTxtContent</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>addTxtContent</span> <span class='varid'>c</span>-<a name="line-160"></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-161"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-162"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferMessage</span> <span class='str'>"OK"</span>-<a name="line-163"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-164"></a>      <span class='varid'>addAttr</span> <span class='varid'>transferStatus</span> <span class='str'>"200"</span>-<a name="line-165"></a>-<a name="line-166"></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-167"></a><span class='definition'>getHttpContents</span>-<a name="line-168"></a>    <span class='keyglyph'>=</span> <span class='varid'>getCont</span> <span class='varop'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-169"></a>		    <span class='varop'>&amp;&amp;&amp;</span>-<a name="line-170"></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-171"></a>			<span class='varop'>&amp;&amp;&amp;</span>-<a name="line-172"></a>			<span class='varid'>getAllParamsString</span>	<span class='comment'>-- get all system params</span>-<a name="line-173"></a>		      <span class='layout'>)</span>-<a name="line-174"></a>		      <span class='varop'>&gt;&gt;^</span> <span class='varid'>uncurry</span> <span class='varid'>addEntries</span>	<span class='comment'>-- merge them, attributes overwrite system params</span>-<a name="line-175"></a>		    <span class='layout'>)</span>-<a name="line-176"></a>		  <span class='layout'>)</span>-<a name="line-177"></a>      <span class='keyword'>where</span>-<a name="line-178"></a>      <span class='varid'>getAttrlAsAssoc</span>				<span class='comment'>-- get the attributes as assoc list</span>-<a name="line-179"></a>	  <span class='keyglyph'>=</span> <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>getAttrl</span>-<a name="line-180"></a>		    <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>-<a name="line-181"></a>			  <span class='varop'>&amp;&amp;&amp;</span>-<a name="line-182"></a>			  <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-183"></a>			<span class='layout'>)</span>-<a name="line-184"></a>		  <span class='layout'>)</span>-<a name="line-185"></a>-<a name="line-186"></a>      <span class='varid'>getCont</span> <span class='varid'>uri</span> <span class='varid'>options</span>-<a name="line-187"></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-188"></a>		       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-189"></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-190"></a>		     <span class='layout'>)</span>-<a name="line-191"></a>		     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-192"></a>		     <span class='layout'>(</span> <span class='varid'>arr</span> <span class='varid'>addError</span>-<a name="line-193"></a>		       <span class='varop'>|||</span>-<a name="line-194"></a>		       <span class='varid'>arr</span> <span class='varid'>addContent</span>-<a name="line-195"></a>		     <span class='layout'>)</span>-<a name="line-196"></a>		   <span class='layout'>)</span>-<a name="line-197"></a>		    -<a name="line-198"></a><span class='comment'>{- old stuff-<a name="line-199"></a>	  = applyA ( ( if curl == v_1-<a name="line-200"></a>		       then ( traceMsg 2 ( "get HTTP via "-<a name="line-201"></a>					   ++ show ( "curl "-<a name="line-202"></a>						     ++ (if null proxy then "" else "--proxy " ++ proxy)-<a name="line-203"></a>						     ++ (if null curlOpt then "" else " " ++ curlOpt)-<a name="line-204"></a>						     ++ " " ++ uri-<a name="line-205"></a>						   )-<a name="line-206"></a>					 )-<a name="line-207"></a>			      &gt;&gt;&gt;-<a name="line-208"></a>			      arrIO0 ( CURL.getCont curlOpt uri proxy )-<a name="line-209"></a>			    )-<a name="line-210"></a>		       else arrIO0 ( HTTP.getCont         uri proxy )-<a name="line-211"></a>		     )-<a name="line-212"></a>		     &gt;&gt;&gt;-<a name="line-213"></a>		     ( arr addError-<a name="line-214"></a>		       |||-<a name="line-215"></a>		       arr addContent-<a name="line-216"></a>		     )-<a name="line-217"></a>		   )-<a name="line-218"></a>	    where-<a name="line-219"></a>	    proxy   = lookup1 a_proxy        options-<a name="line-220"></a>	    curl    = lookup1 a_use_curl     options-<a name="line-221"></a>	    curlOpt = lookup1 a_options_curl options-<a name="line-222"></a>-}</span>-<a name="line-223"></a>-<a name="line-224"></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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-225"></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-226"></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-227"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-228"></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-229"></a>-<a name="line-230"></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-231"></a><span class='definition'>getURIContents</span>-<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>getContentsFromString</span>-<a name="line-233"></a>      <span class='varop'>`orElse`</span>-<a name="line-234"></a>      <span class='varid'>getContentsFromDoc</span>-<a name="line-235"></a>    <span class='keyword'>where</span>-<a name="line-236"></a>    <span class='varid'>getContentsFromString</span>-<a name="line-237"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-238"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-239"></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-240"></a>	  <span class='layout'>)</span>-<a name="line-241"></a>	  <span class='varop'>`guards`</span>-<a name="line-242"></a>	  <span class='varid'>getStringContents</span>-<a name="line-243"></a>	  -<a name="line-244"></a>    <span class='varid'>getContentsFromDoc</span>-<a name="line-245"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>addTransferURI</span> <span class='varop'>$&lt;</span> <span class='varid'>getBaseURI</span>-<a name="line-246"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-247"></a>	      <span class='varid'>getCont</span>-<a name="line-248"></a>	    <span class='layout'>)</span>-<a name="line-249"></a>	    <span class='varop'>`when`</span>-<a name="line-250"></a>	    <span class='layout'>(</span> <span class='varid'>setAbsURI</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>-<a name="line-251"></a>			     <span class='varop'>&gt;&gt;^</span>-<a name="line-252"></a>			     <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>src</span><span class='keyglyph'>-&gt;</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 -&gt; read from stdin</span>-<a name="line-253"></a>			   <span class='layout'>)</span>-<a name="line-254"></a>	    <span class='layout'>)</span>-<a name="line-255"></a>	  <span class='layout'>)</span>-<a name="line-256"></a>          <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-257"></a>          <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"getURIContents"</span>-<a name="line-258"></a>-<a name="line-259"></a>    <span class='varid'>setAbsURI</span> <span class='varid'>src</span>-<a name="line-260"></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'>&gt;&gt;&gt;</span> <span class='varid'>changeBaseURI</span> <span class='layout'>)</span>-<a name="line-261"></a>	  <span class='varid'>this</span>-<a name="line-262"></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-263"></a>-<a name="line-264"></a>    <span class='varid'>addTransferURI</span> <span class='varid'>uri</span>-<a name="line-265"></a>	<span class='keyglyph'>=</span> <span class='varid'>addAttr</span> <span class='varid'>transferURI</span> <span class='varid'>uri</span>-<a name="line-266"></a>-<a name="line-267"></a>    <span class='varid'>getCont</span>-<a name="line-268"></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-269"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-270"></a>		   <span class='varid'>traceString</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-271"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-272"></a>		   <span class='varid'>getSchemeFromURI</span>-<a name="line-273"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-274"></a>		   <span class='varid'>getProtocolHandler</span>-<a name="line-275"></a>		 <span class='layout'>)</span>-<a name="line-276"></a>	  <span class='varop'>`orElse`</span>-<a name="line-277"></a>	  <span class='varid'>this</span>						<span class='comment'>-- don't change tree, when no handler can be found</span>-<a name="line-278"></a>	  -<a name="line-279"></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-280"></a><span class='definition'>setBaseURIFromDoc</span>-<a name="line-281"></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-282"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-283"></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-284"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-285"></a>		<span class='varid'>setBaseURI</span>-<a name="line-286"></a>	      <span class='layout'>)</span>-<a name="line-287"></a>-<a name="line-288"></a><span class='comment'>{- |-<a name="line-289"></a>   Read the content of a document.-<a name="line-290"></a>-<a name="line-291"></a>   This routine is usually called from 'Text.XML.HXT.Arrow.ProcessDocument.getDocumentContents'.-<a name="line-292"></a>-<a name="line-293"></a>   The input must be a root node (constructed with 'Text.XML.HXT.Arrow.XmlArrow.root'), usually without children.-<a name="line-294"></a>   The attribute list contains all input parameters, e.g. URI or source file name, encoding preferences, ...-<a name="line-295"></a>   If the source name is empty, the input is read from standard input.-<a name="line-296"></a>-<a name="line-297"></a>   The source is transformed into an absolute URI. If the source is a relative URI, or a file name,-<a name="line-298"></a>   it is expanded into an absolut URI with respect to the current base URI.-<a name="line-299"></a>   The default base URI is of protocol \"file\" and points to the current working directory.+<a name="line-126"></a>	       <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-143"></a>		<span class='varid'>arr</span> <span class='varid'>isTrueValue</span>+<a name="line-144"></a>		<span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>+<a name="line-162"></a>		   <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-163"></a>		   <span class='layout'>(</span> <span class='varid'>uriToMime</span> <span class='varop'>$&lt;</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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>$&lt;&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>+<a name="line-182"></a>		    <span class='varop'>&amp;&amp;&amp;</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'>&amp;&amp;&amp;</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'>&gt;&gt;^</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'>&gt;&gt;&gt;</span> <span class='layout'>(</span> <span class='varid'>getName</span>+<a name="line-194"></a>			  <span class='varop'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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>			      &gt;&gt;&gt;+<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>		     &gt;&gt;&gt;+<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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>$&lt;</span> <span class='varid'>getBaseURI</span>+<a name="line-259"></a>	      <span class='varop'>&gt;&gt;&gt;</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'>$&lt;</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_source</span>+<a name="line-264"></a>			     <span class='varop'>&gt;&gt;^</span>+<a name="line-265"></a>			     <span class='layout'>(</span> <span class='keyglyph'>\</span> <span class='varid'>src</span><span class='keyglyph'>-&gt;</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 -&gt; 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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-285"></a>		   <span class='varid'>getSchemeFromURI</span>+<a name="line-286"></a>		   <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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>   The currently supported protocols are \"http\", \"file\", \"stdin\" and \"string\".-<a name="line-302"></a>-<a name="line-303"></a>   The latter two are internal protocols. An uri of the form \"stdin:\" stands for the content of-<a name="line-304"></a>   the standard input stream.+<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>   \"string:some text\" means, that \"some text\" is taken as input.-<a name="line-307"></a>   This internal protocol is used for reading from normal 'String' values.-<a name="line-308"></a>-<a name="line-309"></a>-}</span>-<a name="line-310"></a>-<a name="line-311"></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-312"></a><span class='definition'>getXmlContents</span>-<a name="line-313"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlDocEncodingSpec</span>-<a name="line-314"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-315"></a>      <span class='varid'>setBaseURIFromDoc</span>-<a name="line-316"></a>-<a name="line-317"></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-318"></a><span class='definition'>getXmlEntityContents</span>-<a name="line-319"></a>    <span class='keyglyph'>=</span> <span class='varid'>getXmlContents'</span> <span class='varid'>parseXmlEntityEncodingSpec</span>-<a name="line-320"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-321"></a>      <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>-<a name="line-322"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-323"></a>      <span class='varid'>setBaseURIFromDoc</span>-<a name="line-324"></a>-<a name="line-325"></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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-326"></a><span class='definition'>getXmlContents'</span> <span class='varid'>parseEncodingSpec</span>-<a name="line-327"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getURIContents</span>-<a name="line-328"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-329"></a>	<span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>parseEncodingSpec</span>-<a name="line-330"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-331"></a>	    <span class='varid'>filterErrorMsg</span>-<a name="line-332"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-333"></a>	    <span class='varid'>decodeDocument</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'>isXmlHtml</span>-<a name="line-337"></a>	<span class='layout'>)</span>-<a name="line-338"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-339"></a>	<span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferURI</span>-<a name="line-340"></a>		  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-341"></a>		  <span class='varid'>traceString</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-342"></a>		<span class='layout'>)</span>-<a name="line-343"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-344"></a>	<span class='varid'>traceTree</span>-<a name="line-345"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-346"></a>	<span class='varid'>traceSource</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'>isRoot</span>-<a name="line-350"></a>    <span class='keyword'>where</span>-<a name="line-351"></a>    <span class='varid'>isXmlHtml</span>-<a name="line-352"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span>-<a name="line-353"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-354"></a>	  <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>mt</span> <span class='keyglyph'>-&gt;</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-355"></a>-<a name="line-356"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-357"></a>-<a name="line-358"></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-359"></a><span class='definition'>getEncoding</span>-<a name="line-360"></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-361"></a>	     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-362"></a>	     <span class='varid'>arr</span> <span class='varid'>guessEncoding</span>-<a name="line-363"></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-364"></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-365"></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-366"></a>	   <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>-<a name="line-367"></a>	   <span class='keyglyph'>]</span>-<a name="line-368"></a>      <span class='varop'>&gt;.</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-369"></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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-334"></a>      <span class='varid'>processChildren</span> <span class='varid'>removeEncodingSpec</span>+<a name="line-335"></a>      <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-344"></a>	    <span class='varid'>filterErrorMsg</span>+<a name="line-345"></a>	    <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-357"></a>	<span class='varid'>traceTree</span>+<a name="line-358"></a>	<span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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="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-372"></a><span class='definition'>decodeDocument</span>-<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>decodeArr</span> <span class='varop'>$&lt;</span> <span class='varid'>getEncoding</span> <span class='layout'>)</span>-<a name="line-374"></a>      <span class='varop'>`when`</span>-<a name="line-375"></a>      <span class='layout'>(</span> <span class='varid'>isRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isXmlOrHtmlDoc</span> <span class='layout'>)</span>-<a name="line-376"></a>    <span class='keyword'>where</span>-<a name="line-377"></a>    <span class='varid'>isXmlOrHtmlDoc</span>-<a name="line-378"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>)</span>-<a name="line-379"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-380"></a>	  <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</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-381"></a>-<a name="line-382"></a>    <span class='varid'>decodeArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-383"></a>    <span class='varid'>decodeArr</span> <span class='varid'>enc</span>-<a name="line-384"></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-385"></a>	<span class='keyword'>where</span>-<a name="line-386"></a>	<span class='varid'>found</span> <span class='varid'>df</span>-<a name="line-387"></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-388"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-389"></a>	      <span class='layout'>(</span> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varop'>$&lt;</span> <span class='varid'>getAttrValue</span> <span class='varid'>a_ignore_encoding_errors</span> <span class='layout'>)</span>-<a name="line-390"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-391"></a>	      <span class='varid'>addAttr</span> <span class='varid'>transferEncoding</span> <span class='varid'>enc</span>-<a name="line-392"></a>-<a name="line-393"></a>	<span class='varid'>notFound</span>-<a name="line-394"></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-395"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-396"></a>	      <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"decoding document"</span>-<a name="line-397"></a>-<a name="line-398"></a>	<span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varid'>ignoreErrs</span>-<a name="line-399"></a>	    <span class='keyglyph'>=</span> <span class='varid'>processChildren</span>-<a name="line-400"></a>	      <span class='layout'>(</span> <span class='varid'>getText</span>							<span class='comment'>-- get the document content</span>-<a name="line-401"></a>		<span class='varop'>&gt;&gt;&gt;</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-402"></a>		<span class='varop'>&gt;&gt;&gt;</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'>^&gt;&gt;</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-403"></a>		      <span class='varop'>&lt;+&gt;</span>-<a name="line-404"></a>		      <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isTrueValue</span> <span class='varid'>ignoreErrs</span>-<a name="line-405"></a>			<span class='keyword'>then</span> <span class='varid'>none</span>					<span class='comment'>-- encoding errors are ignored</span>-<a name="line-406"></a>			<span class='keyword'>else</span>-<a name="line-407"></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-408"></a>			  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-409"></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-410"></a>			  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-411"></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-412"></a>			  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-413"></a>			  <span class='varid'>none</span>						<span class='comment'>-- neccessary for type match with &lt;+&gt;</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>-<a name="line-417"></a>	      <span class='layout'>)</span>-<a name="line-418"></a>      -<a name="line-419"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>&gt;&gt;&gt;</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'>&gt;.</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'>$&lt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span> <span class='layout'>)</span>+<a name="line-392"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-402"></a>	      <span class='layout'>(</span> <span class='varid'>decodeText</span> <span class='varid'>df</span> <span class='varop'>$&lt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>^&gt;&gt;</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'>&lt;+&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-426"></a>			  <span class='varid'>none</span>						<span class='comment'>-- neccessary for type match with &lt;+&gt;</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 view
@@ -6,172 +6,184 @@ <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'>-- state arrows for document output</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- version: $Id: DocumentOutput.hs,v 1.7 2006/11/02 09:34:08 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'>DocumentOutput</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'>DocumentOutput</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>				<span class='comment'>-- arrow classes</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'>ArrowIO</span>+<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='keyword'>import</span> <span class='conid'>Text</span><span 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-17"></a>    <span class='layout'>(</span> <span class='varid'>getOutputEncodingFct</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><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>Edit</span>-<a name="line-24"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>-<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>numberLinesInXmlDoc</span>-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-30"></a>    <span class='layout'>)</span>-<a name="line-31"></a>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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>-<a name="line-35"></a>    <span class='layout'>(</span> <span class='conid'>Handle</span>-<a name="line-36"></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-37"></a>    <span class='layout'>,</span> <span class='varid'>openFile</span>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>hPutStrLn</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>hClose</span>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>stdout</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'>System</span><span class='varop'>.</span><span class='conid'>IO</span><span class='varop'>.</span><span class='conid'>Error</span>-<a name="line-44"></a>    <span class='layout'>(</span> <span class='varid'>try</span> <span class='layout'>)</span>+<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='comment'>-- ------------------------------------------------------------</span>-<a name="line-47"></a><span class='comment'>--</span>-<a name="line-48"></a><span class='comment'>-- output arrows</span>-<a name="line-49"></a>-<a name="line-50"></a><a name="putXmlDocument"></a><span class='definition'>putXmlDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-51"></a><span class='definition'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-52"></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-53"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-54"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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-55"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-56"></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-57"></a>		    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-58"></a>		    <span class='varid'>arr</span> <span class='varid'>show</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_fatal</span>-<a name="line-59"></a>		    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-60"></a>		    <span class='varid'>filterErrorMsg</span>-<a name="line-61"></a>		  <span class='layout'>)</span>-<a name="line-62"></a>		  <span class='varop'>|||</span>-<a name="line-63"></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-64"></a>		    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-65"></a>		    <span class='varid'>none</span>-<a name="line-66"></a>		  <span class='layout'>)</span>-<a name="line-67"></a>		<span class='layout'>)</span>-<a name="line-68"></a>	      <span class='layout'>)</span>-<a name="line-69"></a>      <span class='keyword'>where</span>-<a name="line-70"></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-71"></a>-<a name="line-72"></a>      <span class='varid'>outFile</span>	<span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isStdout</span>-<a name="line-73"></a>		  <span class='keyword'>then</span> <span class='str'>"stdout"</span>-<a name="line-74"></a>		       <span class='keyword'>else</span> <span class='varid'>show</span> <span class='varid'>dst</span>-<a name="line-75"></a>-<a name="line-76"></a>      <span class='varid'>hPutDocument</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Handle</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span>-<a name="line-77"></a>      <span class='varid'>hPutDocument</span> <span class='varid'>action</span>-<a name="line-78"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isStdout</span>-<a name="line-79"></a>	      <span class='keyglyph'>=</span> <span class='varid'>action</span> <span class='varid'>stdout</span>-<a name="line-80"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-81"></a>	      <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-82"></a>		<span class='varid'>handle</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>dst</span> <span class='conid'>WriteMode</span>-<a name="line-83"></a>		<span class='varid'>action</span> <span class='varid'>handle</span>-<a name="line-84"></a>		<span class='varid'>hClose</span> <span class='varid'>handle</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='comment'>-- |</span>-<a name="line-87"></a><span class='comment'>-- write the tree representation of a document to a file</span>-<a name="line-88"></a>-<a name="line-89"></a><a name="putXmlTree"></a><span class='definition'>putXmlTree</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>putXmlTree</span> <span class='varid'>dst</span>-<a name="line-91"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-92"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-93"></a>		<span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-94"></a>	        <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-95"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-96"></a>	      <span class='layout'>)</span>+<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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-70"></a>		    <span class='varid'>arr</span> <span class='varid'>show</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_fatal</span>+<a name="line-71"></a>		    <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>IO</span><span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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 a document with indentaion and line numers</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="putXmlSource"></a><span class='definition'>putXmlSource</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>putXmlSource</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='layout'>(</span><span class='varid'>this</span> <span class='layout'>)</span> <span class='varop'>`whenNot`</span> <span class='varid'>isRoot</span>+<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'>-&gt;</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'>&gt;&gt;&gt;</span>-<a name="line-105"></a>		<span class='varid'>indentDoc</span>-<a name="line-106"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-107"></a>		<span class='varid'>numberLinesInXmlDoc</span>-<a name="line-108"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-109"></a>		<span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-110"></a>	        <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-111"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-112"></a>	      <span class='layout'>)</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="getOutputEncoding"></a><span class='definition'>getOutputEncoding</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-117"></a><span class='definition'>getOutputEncoding</span> <span class='varid'>defaultEnc</span>-<a name="line-118"></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 &lt;?xml ... encoding="..."?&gt;</span>-<a name="line-119"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-120"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>-<a name="line-121"></a>		<span class='varop'>`guards`</span>-<a name="line-122"></a>		<span class='varid'>getAttrValue</span> <span class='varid'>a_encoding</span>-<a name="line-123"></a>	      <span class='layout'>)</span>-<a name="line-124"></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-125"></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-126"></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-127"></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-128"></a>	    <span class='layout'>,</span> <span class='varid'>constA</span> <span class='varid'>utf8</span>			<span class='comment'>-- default : utf8</span>-<a name="line-129"></a>	    <span class='keyglyph'>]</span>-<a name="line-130"></a>      <span class='varop'>&gt;.</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-131"></a>-<a name="line-132"></a><a name="encodeDocument"></a><span class='definition'>encodeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>encodeDocument</span> <span class='varid'>supressXmlPi</span> <span class='varid'>defaultEnc</span>-<a name="line-134"></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-135"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-136"></a>	       <span class='varid'>arr</span> <span class='varid'>encArr</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'>isRoot</span>-<a name="line-140"></a>    <span class='keyword'>where</span>-<a name="line-141"></a>    <span class='varid'>encArr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-142"></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-143"></a>	<span class='keyword'>where</span>-<a name="line-144"></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-145"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-146"></a>		   <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>supressXmlPi</span>-<a name="line-147"></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-148"></a>		     <span class='keyword'>else</span> <span class='layout'>(</span> <span class='varid'>addXmlPi</span>-<a name="line-149"></a>			    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-150"></a>			    <span class='varid'>addXmlPiEncoding</span> <span class='varid'>enc</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='varop'>&gt;&gt;&gt;</span>-<a name="line-154"></a>		   <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span>-<a name="line-155"></a>				     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-156"></a>				     <span class='varid'>arr</span> <span class='varid'>ef</span>-<a name="line-157"></a>				     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-158"></a>				     <span class='varid'>mkText</span>-<a name="line-159"></a>				   <span class='layout'>)</span>-<a name="line-160"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-161"></a>		   <span class='varid'>addAttr</span> <span class='varid'>a_output_encoding</span> <span class='varid'>enc</span>-<a name="line-162"></a>-<a name="line-163"></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-164"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-165"></a>		   <span class='varid'>setDocumentStatusFromSystemState</span> <span class='str'>"encoding document"</span>-<a name="line-166"></a>-<a name="line-167"></a><span class='comment'>-- ------------------------------------------------------------</span>+<a name="line-105"></a>		<span class='varid'>addHeadlineToXmlDoc</span>+<a name="line-106"></a>	        <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-117"></a>		<span class='varid'>indentDoc</span>+<a name="line-118"></a>		<span class='varop'>&gt;&gt;&gt;</span>+<a name="line-119"></a>		<span class='varid'>numberLinesInXmlDoc</span>+<a name="line-120"></a>		<span class='varop'>&gt;&gt;&gt;</span>+<a name="line-121"></a>		<span class='varid'>addHeadlineToXmlDoc</span>+<a name="line-122"></a>	        <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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 &lt;?xml ... encoding="..."?&gt;</span>+<a name="line-131"></a>	      <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-132"></a>	      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</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'>&gt;.</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-168"></a>				     <span class='varid'>arr</span> <span class='varid'>ef</span>+<a name="line-169"></a>				     <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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 view
@@ -10,771 +10,788 @@ <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 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> -<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeComment</span>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>removeAllComment</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>removeAllWhiteSpace</span>-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>-<a name="line-42"></a>-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>transfCdata</span>-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCdata</span>-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>transfCharRef</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>transfAllCharRef</span>-<a name="line-47"></a>-<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>hasXmlPi</span>-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPi</span>-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>addXmlPiEncoding</span>-<a name="line-51"></a>-<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>addDoctypeDecl</span>-<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeStrict</span>-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeFrameset</span>-<a name="line-56"></a>    <span class='layout'>)</span>-<a name="line-57"></a><span class='keyword'>where</span>-<a name="line-58"></a>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>-<a name="line-60"></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-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'>ArrowIf</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'>ArrowTree</span>-<a name="line-63"></a>-<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>-<a name="line-68"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-69"></a>-<a name="line-70"></a><span class='keyword'>import</span> <span class='keyword'>qualified</span>-<a name="line-71"></a>       <span class='conid'>Text</span><span 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-72"></a>-<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'>DOM</span><span class='varop'>.</span><span class='conid'>Unicode</span>-<a name="line-74"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span> <span class='layout'>)</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-77"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-80"></a>    <span class='layout'>(</span> <span class='varid'>xmlEntities</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'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>-<a name="line-83"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span> <span class='layout'>)</span>-<a name="line-84"></a>-<a name="line-85"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-86"></a>-<a name="line-87"></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-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'>-- Applies some "Canonical XML" rules to a document tree.</span>-<a name="line-93"></a><span class='comment'>--</span>-<a name="line-94"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>-<a name="line-95"></a><span class='comment'>--</span>-<a name="line-96"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>-<a name="line-97"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>-<a name="line-98"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>-<a name="line-99"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>-<a name="line-100"></a><span class='comment'>--</span>-<a name="line-101"></a><span class='comment'>--</span>-<a name="line-102"></a><span class='comment'>-- Not implemented yet:</span>-<a name="line-103"></a><span class='comment'>--</span>-<a name="line-104"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>-<a name="line-105"></a><span class='comment'>--</span>-<a name="line-106"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>-<a name="line-107"></a><span class='comment'>--</span>-<a name="line-108"></a><span class='comment'>-- see 'canonicalizeAllNodes' and 'canonicalizeForXPath'</span>-<a name="line-109"></a>-<a name="line-110"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-111"></a><span class='definition'>canonicalizeTree'</span> <span class='varid'>toBeRemoved</span>-<a name="line-112"></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-113"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-114"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>-<a name="line-115"></a>      <span class='keyword'>where</span>-<a name="line-116"></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-117"></a>      <span class='varid'>canonicalize1Node</span>-<a name="line-118"></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-119"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-120"></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-121"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-122"></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-123"></a>			     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-124"></a>			     <span class='varid'>collapseXText</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'>&gt;&gt;&gt;</span>-<a name="line-129"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>-<a name="line-130"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-131"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>-<a name="line-132"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-133"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>-<a name="line-134"></a>-<a name="line-135"></a>-<a name="line-136"></a><span class='comment'>-- |</span>-<a name="line-137"></a><span class='comment'>-- Applies some "Canonical XML" rules to a document tree.</span>-<a name="line-138"></a><span class='comment'>--</span>-<a name="line-139"></a><span class='comment'>-- The rule differ slightly for canonical XML and XPath in handling of comments</span>-<a name="line-140"></a><span class='comment'>--</span>-<a name="line-141"></a><span class='comment'>-- Note: This is not the whole canonicalization as it is specified by the W3C</span>-<a name="line-142"></a><span class='comment'>-- Recommendation. Adding attribute defaults or sorting attributes in lexicographic</span>-<a name="line-143"></a><span class='comment'>-- order is done by the @transform@ function of module @Text.XML.HXT.Validator.Validation@.</span>-<a name="line-144"></a><span class='comment'>-- Replacing entities or line feed normalization is done by the parser.</span>-<a name="line-145"></a><span class='comment'>--</span>-<a name="line-146"></a><span class='comment'>-- Rules: remove DTD parts, processing instructions, comments and substitute char refs in attribute</span>-<a name="line-147"></a><span class='comment'>-- values and text</span>-<a name="line-148"></a><span class='comment'>--</span>-<a name="line-149"></a><span class='comment'>-- Not implemented yet:</span>-<a name="line-150"></a><span class='comment'>--</span>-<a name="line-151"></a><span class='comment'>--  - Whitespace within start and end tags is normalized</span>-<a name="line-152"></a><span class='comment'>--</span>-<a name="line-153"></a><span class='comment'>--  - Special characters in attribute values and character content are replaced by character references</span>-<a name="line-154"></a>-<a name="line-155"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-156"></a><span class='definition'>canonicalizeAllNodes</span>-<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-158"></a>      <span class='varid'>canonicalizeTree'</span> <span class='layout'>(</span> <span class='varid'>isCmt</span>		<span class='comment'>-- remove comment</span>-<a name="line-159"></a>			  <span class='varop'>&lt;+&gt;</span>-<a name="line-160"></a>			  <span class='varid'>isXmlPi</span>	<span class='comment'>-- remove xml declaration</span>-<a name="line-161"></a>			<span class='layout'>)</span>-<a name="line-162"></a>-<a name="line-163"></a><span class='comment'>-- |</span>-<a name="line-164"></a><span class='comment'>-- Canonicalize a tree for XPath</span>-<a name="line-165"></a><span class='comment'>-- Like 'canonicalizeAllNodes' but comment nodes are not removed</span>-<a name="line-166"></a><span class='comment'>--</span>-<a name="line-167"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>-<a name="line-168"></a>-<a name="line-169"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-170"></a><span class='definition'>canonicalizeForXPath</span>-<a name="line-171"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-172"></a>      <span class='varid'>canonicalizeTree'</span> <span class='varid'>isXmlPi</span>-<a name="line-173"></a>-<a name="line-174"></a><span class='comment'>-- |</span>-<a name="line-175"></a><span class='comment'>-- Canonicalize the contents of a document</span>-<a name="line-176"></a><span class='comment'>--</span>-<a name="line-177"></a><span class='comment'>-- substitutes all char refs in text and attribute values,</span>-<a name="line-178"></a><span class='comment'>-- removes CDATA section and combines all sequences of resulting text</span>-<a name="line-179"></a><span class='comment'>-- nodes into a single text node</span>-<a name="line-180"></a><span class='comment'>--</span>-<a name="line-181"></a><span class='comment'>-- see 'canonicalizeAllNodes'</span>-<a name="line-182"></a>-<a name="line-183"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-184"></a><span class='definition'>canonicalizeContents</span>-<a name="line-185"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-186"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>canonicalize1Node</span>-<a name="line-187"></a>      <span class='keyword'>where</span>-<a name="line-188"></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-189"></a>      <span class='varid'>canonicalize1Node</span>-<a name="line-190"></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-191"></a>			     <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-192"></a>			     <span class='varid'>collapseXText</span>-<a name="line-193"></a>			   <span class='layout'>)</span>-<a name="line-194"></a>	      <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-195"></a>	    <span class='layout'>)</span>-<a name="line-196"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-197"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>-<a name="line-198"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-199"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>-<a name="line-200"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-201"></a>	    <span class='varid'>collapseXText</span>			<span class='comment'>-- combine text</span>-<a name="line-202"></a>-<a name="line-203"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-204"></a>-<a name="line-205"></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-206"></a><span class='definition'>collapseXText'</span>-<a name="line-207"></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'>&gt;&gt;&gt;</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-208"></a>    <span class='keyword'>where</span>-<a name="line-209"></a>    <span class='varid'>mergeText'</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-210"></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-211"></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'>&amp;&amp;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>isText</span> <span class='varid'>t2</span>-<a name="line-212"></a>	    <span class='keyglyph'>=</span> <span class='keyword'>let</span>-<a name="line-213"></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-214"></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-215"></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-216"></a>	      <span class='keyword'>in</span>-<a name="line-217"></a>	      <span class='varid'>t</span> <span class='conop'>:</span> <span class='varid'>ts2</span>-<a name="line-218"></a>    <span class='varid'>mergeText'</span> <span class='varid'>t1</span> <span class='varid'>ts</span>-<a name="line-219"></a>	<span class='keyglyph'>=</span> <span class='varid'>t1</span> <span class='conop'>:</span> <span class='varid'>ts</span>-<a name="line-220"></a>-<a name="line-221"></a><span class='comment'>-- |</span>-<a name="line-222"></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-223"></a><span class='comment'>-- This is useful, e.g. after char and entity reference substitution</span>-<a name="line-224"></a>-<a name="line-225"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-226"></a><span class='definition'>collapseXText</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'>collapseXText'</span>-<a name="line-229"></a>-<a name="line-230"></a><span class='comment'>-- |</span>-<a name="line-231"></a><span class='comment'>-- Applies collapseXText recursively.</span>-<a name="line-232"></a><span class='comment'>--</span>-<a name="line-233"></a><span class='comment'>--</span>-<a name="line-234"></a><span class='comment'>-- see also : 'collapseXText'</span>-<a name="line-235"></a>-<a name="line-236"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-237"></a><span class='definition'>collapseAllXText</span>-<a name="line-238"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-239"></a>      <span class='varid'>processBottomUp</span> <span class='varid'>collapseXText'</span>-<a name="line-240"></a>-<a name="line-241"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-242"></a>-<a name="line-243"></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-244"></a><span class='comment'>--</span>-<a name="line-245"></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-246"></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-247"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.escapeXmlDoc' before xshow is applied.</span>-<a name="line-248"></a><span class='comment'>--</span>-<a name="line-249"></a><span class='comment'>-- So the following law holds</span>-<a name="line-250"></a><span class='comment'>--</span>-<a name="line-251"></a><span class='comment'>-- &gt; xshowEscape f &gt;&gt;&gt; xread == f</span>-<a name="line-252"></a>-<a name="line-253"></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'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>String</span>-<a name="line-254"></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'>&gt;&gt;&gt;</span> <span class='varid'>escapeXmlDoc</span><span class='layout'>)</span>-<a name="line-255"></a>-<a name="line-256"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-257"></a>-<a name="line-258"></a><span class='comment'>-- |</span>-<a name="line-259"></a><span class='comment'>-- escape XmlText,</span>-<a name="line-260"></a><span class='comment'>-- transform all special XML chars into char- or entity- refs</span>-<a name="line-261"></a>-<a name="line-262"></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-263"></a>-<a name="line-264"></a><a name="xmlEntityRefTable"></a><span class='definition'>xmlEntityRefTable</span>-<a name="line-265"></a> <span class='layout'>,</span> <span class='varid'>xhtmlEntityRefTable</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span>-<a name="line-266"></a>-<a name="line-267"></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-268"></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-269"></a>-<a name="line-270"></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'>-&gt;</span> <span class='conid'>EntityRefTable</span>-<a name="line-271"></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'>-&gt;</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-272"></a>-<a name="line-273"></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'>-&gt;</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-274"></a><span class='definition'>escapeText''</span> <span class='varid'>escChar</span> <span class='varid'>isEsc</span> <span class='varid'>t</span>-<a name="line-275"></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-276"></a>    <span class='keyword'>where</span>-<a name="line-277"></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-278"></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-279"></a>-<a name="line-280"></a>    <span class='varid'>escape</span> <span class='str'>""</span>-<a name="line-281"></a>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-282"></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-283"></a>	<span class='keyglyph'>|</span> <span class='varid'>isEsc</span> <span class='varid'>c</span>-<a name="line-284"></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-285"></a>    <span class='varid'>escape</span> <span class='varid'>s</span>-<a name="line-286"></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-287"></a>	<span class='keyword'>where</span>-<a name="line-288"></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-289"></a>-<a name="line-290"></a><span class='comment'>{--<a name="line-291"></a>escapeCharRef	:: Char -&gt; XmlTree-<a name="line-292"></a>escapeCharRef	= XN.mkCharRef . fromEnum-<a name="line-293"></a>-}</span>-<a name="line-294"></a>-<a name="line-295"></a><a name="escapeEntityRef"></a><span class='definition'>escapeEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>EntityRefTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-296"></a><span class='definition'>escapeEntityRef</span> <span class='varid'>entityTable</span> <span class='varid'>c</span>-<a name="line-297"></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-298"></a>    <span class='keyword'>where</span>-<a name="line-299"></a>    <span class='varid'>c'</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="escapeXmlEntityRef"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-302"></a><span class='definition'>escapeXmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xmlEntityRefTable</span>-<a name="line-303"></a>-<a name="line-304"></a><a name="escapeHtmlEntityRef"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-305"></a><span class='definition'>escapeHtmlEntityRef</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeEntityRef</span> <span class='varid'>xhtmlEntityRefTable</span>-<a name="line-306"></a>-<a name="line-307"></a><span class='comment'>-- |</span>-<a name="line-308"></a><span class='comment'>-- escape all special XML chars into XML entity references or char references</span>-<a name="line-309"></a><span class='comment'>--</span>-<a name="line-310"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; in text nodes into prefefiened XML entity references,</span>-<a name="line-311"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>-<a name="line-312"></a><span class='comment'>-- in comments nothing is converted (see XML standard 2.4, useful e.g. for JavaScript).</span>-<a name="line-313"></a>-<a name="line-314"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-315"></a><span class='definition'>escapeXmlDoc</span>-<a name="line-316"></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-317"></a>    <span class='keyword'>where</span>-<a name="line-318"></a>    <span class='varid'>escXmlText</span>-<a name="line-319"></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'>"&lt;&amp;"</span><span class='layout'>)</span>		<span class='comment'>-- no escape for ", ' and &gt; required: XML standard 2.4</span>-<a name="line-320"></a>    <span class='varid'>escXmlAttrValue</span>-<a name="line-321"></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'>"&lt;&gt;\"\'&amp;\n\r\t"</span><span class='layout'>)</span>-<a name="line-322"></a>-<a name="line-323"></a>-<a name="line-324"></a><span class='comment'>-- |</span>-<a name="line-325"></a><span class='comment'>-- escape all special HTML chars into XHTML entity references or char references</span>-<a name="line-326"></a><span class='comment'>--</span>-<a name="line-327"></a><span class='comment'>-- convert the special XML chars \&lt; and &amp; and all none ASCII chars in text nodes into prefefiened XML or XHTML entity references,</span>-<a name="line-328"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\n, \\r and \\t are converted into entity or char references,</span>-<a name="line-329"></a><span class='comment'>-- in comments nothing is converted</span>-<a name="line-330"></a>-<a name="line-331"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-332"></a><span class='definition'>escapeHtmlDoc</span>-<a name="line-333"></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-334"></a>    <span class='keyword'>where</span>-<a name="line-335"></a>    <span class='varid'>escHtmlText</span>-<a name="line-336"></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-337"></a>    <span class='varid'>escHtmlAttrValue</span>-<a name="line-338"></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-339"></a>-<a name="line-340"></a>    <span class='varid'>isHtmlTextEsc</span> <span class='varid'>c</span>-<a name="line-341"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</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'>"&lt;&amp;"</span> <span class='layout'>)</span>-<a name="line-342"></a>    <span class='varid'>isHtmlAttrEsc</span> <span class='varid'>c</span>-<a name="line-343"></a>	<span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&gt;=</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'>"&lt;&gt;\"\'&amp;\n\r\t"</span> <span class='layout'>)</span>-<a name="line-344"></a>-<a name="line-345"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-346"></a><span class='definition'>escapeDoc</span> <span class='varid'>escText</span> <span class='varid'>escAttr</span>-<a name="line-347"></a>    <span class='keyglyph'>=</span> <span class='varid'>escape</span>-<a name="line-348"></a>    <span class='keyword'>where</span>-<a name="line-349"></a>    <span class='varid'>escape</span>-<a name="line-350"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-351"></a>	  <span class='keyglyph'>[</span> <span class='varid'>isElem</span>  <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>escape</span>-<a name="line-352"></a>			  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-353"></a>			  <span class='varid'>processAttrl</span> <span class='varid'>escVal</span>-<a name="line-354"></a>			<span class='layout'>)</span>-<a name="line-355"></a>	  <span class='layout'>,</span> <span class='varid'>isText</span>  <span class='conop'>:-&gt;</span> <span class='varid'>escText</span>-<a name="line-356"></a>	  <span class='comment'>-- , isCmt   :-&gt; escCmt</span>-<a name="line-357"></a>	  <span class='layout'>,</span> <span class='varid'>isDTD</span>   <span class='conop'>:-&gt;</span> <span class='varid'>processTopDown</span> <span class='varid'>escDTD</span>-<a name="line-358"></a>	  <span class='layout'>,</span> <span class='varid'>this</span>    <span class='conop'>:-&gt;</span> <span class='varid'>this</span>-<a name="line-359"></a>	  <span class='keyglyph'>]</span>-<a name="line-360"></a>    <span class='varid'>escVal</span>   <span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>escAttr</span>-<a name="line-361"></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'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='layout'>)</span>-<a name="line-362"></a>-<a name="line-363"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-364"></a>-<a name="line-365"></a><span class='comment'>-- |</span>-<a name="line-366"></a><span class='comment'>-- convert a document into a Haskell representation (with show).</span>-<a name="line-367"></a><span class='comment'>--</span>-<a name="line-368"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-369"></a><span class='comment'>-- see also : 'treeRepOfXmlDoc', 'numberLinesInXmlDoc'</span>-<a name="line-370"></a>-<a name="line-371"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-372"></a><span class='definition'>haskellRepOfXmlDoc</span>-<a name="line-373"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-374"></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'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>-<a name="line-375"></a>-<a name="line-376"></a><span class='comment'>-- |</span>-<a name="line-377"></a><span class='comment'>-- convert a document into a text and add line numbers to the text representation.</span>-<a name="line-378"></a><span class='comment'>-- </span>-<a name="line-379"></a><span class='comment'>-- Result is a root node with a single text node as child.</span>-<a name="line-380"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-381"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'treeRepOfXmlDoc'</span>-<a name="line-382"></a>-<a name="line-383"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-384"></a><span class='definition'>numberLinesInXmlDoc</span>-<a name="line-385"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-386"></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-387"></a>    <span class='keyword'>where</span>-<a name="line-388"></a>    <span class='varid'>numberLines</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-389"></a>    <span class='varid'>numberLines</span> <span class='varid'>str</span>-<a name="line-390"></a>	<span class='keyglyph'>=</span> <span class='varid'>concat</span> <span class='varop'>$</span>-<a name="line-391"></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'>-&gt;</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-392"></a>	<span class='keyword'>where</span>-<a name="line-393"></a>	<span class='varid'>lineNr</span>	 <span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-394"></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-395"></a>-<a name="line-396"></a><span class='comment'>-- |</span>-<a name="line-397"></a><span class='comment'>-- convert a document into a text representation in tree form.</span>-<a name="line-398"></a><span class='comment'>--</span>-<a name="line-399"></a><span class='comment'>-- Useful for debugging and trace output.</span>-<a name="line-400"></a><span class='comment'>-- see also : 'haskellRepOfXmlDoc', 'numberLinesInXmlDoc'</span>-<a name="line-401"></a>-<a name="line-402"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-403"></a><span class='definition'>treeRepOfXmlDoc</span>-<a name="line-404"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-405"></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'>^&gt;&gt;</span> <span class='varid'>mkText</span><span class='keyglyph'>]</span>-<a name="line-406"></a>-<a name="line-407"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-408"></a><span class='definition'>addHeadlineToXmlDoc</span>-<a name="line-409"></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'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>formatTitle</span><span class='layout'>)</span> <span class='layout'>)</span>-<a name="line-410"></a>    <span class='keyword'>where</span>-<a name="line-411"></a>    <span class='varid'>addTitle</span> <span class='varid'>str</span>-<a name="line-412"></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'>&lt;+&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span> <span class='layout'>)</span>-<a name="line-413"></a>    <span class='varid'>formatTitle</span> <span class='varid'>str</span>-<a name="line-414"></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-415"></a>	<span class='keyword'>where</span>-<a name="line-416"></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-417"></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-418"></a>-<a name="line-419"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-420"></a>-<a name="line-421"></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-422"></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-423"></a>-<a name="line-424"></a><span class='comment'>-- |</span>-<a name="line-425"></a><span class='comment'>-- remove Comments: @none `when` isCmt@</span>-<a name="line-426"></a>-<a name="line-427"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-428"></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-429"></a>-<a name="line-430"></a><span class='comment'>-- |</span>-<a name="line-431"></a><span class='comment'>-- remove all comments recursively</span>-<a name="line-432"></a>-<a name="line-433"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-434"></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-435"></a>-<a name="line-436"></a><span class='comment'>-- ----------</span>-<a name="line-437"></a>-<a name="line-438"></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-439"></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-440"></a>-<a name="line-441"></a><span class='comment'>-- |</span>-<a name="line-442"></a><span class='comment'>-- simple filter for removing whitespace.</span>-<a name="line-443"></a><span class='comment'>--</span>-<a name="line-444"></a><span class='comment'>-- no check on sigificant whitespace, e.g. in HTML \&lt;pre\&gt;-elements, is done.</span>-<a name="line-445"></a><span class='comment'>--</span>-<a name="line-446"></a><span class='comment'>--</span>-<a name="line-447"></a><span class='comment'>-- see also : 'removeAllWhiteSpace', 'removeDocWhiteSpace'</span>-<a name="line-448"></a>-<a name="line-449"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-450"></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-451"></a>-<a name="line-452"></a><span class='comment'>-- |</span>-<a name="line-453"></a><span class='comment'>-- simple recursive filter for removing all whitespace.</span>-<a name="line-454"></a><span class='comment'>--</span>-<a name="line-455"></a><span class='comment'>-- removes all text nodes in a tree that consist only of whitespace.</span>-<a name="line-456"></a><span class='comment'>--</span>-<a name="line-457"></a><span class='comment'>--</span>-<a name="line-458"></a><span class='comment'>-- see also : 'removeWhiteSpace', 'removeDocWhiteSpace'</span>-<a name="line-459"></a>-<a name="line-460"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-461"></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-462"></a>-<a name="line-463"></a><span class='comment'>-- |</span>-<a name="line-464"></a><span class='comment'>-- filter for removing all not significant whitespace.</span>-<a name="line-465"></a><span class='comment'>--</span>-<a name="line-466"></a><span class='comment'>-- the tree traversed for removing whitespace between elements,</span>-<a name="line-467"></a><span class='comment'>-- that was inserted for indentation and readability.</span>-<a name="line-468"></a><span class='comment'>-- whitespace is only removed at places, where it's not significat</span>-<a name="line-469"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>-<a name="line-470"></a><span class='comment'>-- by a tag attribute @xml:space@</span>-<a name="line-471"></a><span class='comment'>--</span>-<a name="line-472"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@</span>-<a name="line-473"></a><span class='comment'>--</span>-<a name="line-474"></a><span class='comment'>-- input is root node of the document to be cleaned up,</span>-<a name="line-475"></a><span class='comment'>-- output the semantically equivalent simplified tree</span>-<a name="line-476"></a><span class='comment'>--</span>-<a name="line-477"></a><span class='comment'>--</span>-<a name="line-478"></a><span class='comment'>-- see also : 'indentDoc', 'removeAllWhiteSpace'</span>-<a name="line-479"></a>-<a name="line-480"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-481"></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-482"></a>-<a name="line-483"></a>-<a name="line-484"></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-485"></a><span class='definition'>removeRootWhiteSpace</span>-<a name="line-486"></a>    <span class='keyglyph'>=</span>  <span class='varid'>processChildren</span> <span class='varid'>processRootElement</span>-<a name="line-487"></a>       <span class='varop'>`when`</span>-<a name="line-488"></a>       <span class='varid'>isRoot</span>-<a name="line-489"></a>    <span class='keyword'>where</span>-<a name="line-490"></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-491"></a>    <span class='varid'>processRootElement</span>-<a name="line-492"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeWhiteSpace</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>processChild</span>-<a name="line-493"></a>	<span class='keyword'>where</span>-<a name="line-494"></a>	<span class='varid'>processChild</span>-<a name="line-495"></a>	    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTD</span>-<a name="line-496"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>removeAllWhiteSpace</span>			<span class='comment'>-- whitespace in DTD is redundant</span>-<a name="line-497"></a>		      <span class='layout'>,</span> <span class='varid'>this</span>-<a name="line-498"></a>			<span class='conop'>:-&gt;</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-499"></a>					      <span class='varop'>&gt;&gt;.</span> <span class='varid'>indentTrees</span> <span class='varid'>insertNothing</span> <span class='conid'>False</span> <span class='num'>1</span>-<a name="line-500"></a>					    <span class='layout'>)</span>-<a name="line-501"></a>		      <span class='keyglyph'>]</span>-<a name="line-502"></a>-<a name="line-503"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-504"></a>-<a name="line-505"></a><span class='comment'>-- |</span>-<a name="line-506"></a><span class='comment'>-- filter for indenting a document tree for pretty printing.</span>-<a name="line-507"></a><span class='comment'>--</span>-<a name="line-508"></a><span class='comment'>-- the tree is traversed for inserting whitespace for tag indentation.</span>-<a name="line-509"></a><span class='comment'>--</span>-<a name="line-510"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it isn't significant,</span>-<a name="line-511"></a><span class='comment'>-- is's not inserted between tags and text containing non whitespace chars.</span>-<a name="line-512"></a><span class='comment'>--</span>-<a name="line-513"></a><span class='comment'>-- whitespace is only inserted or changed at places, where it's not significant.</span>-<a name="line-514"></a><span class='comment'>-- preserving whitespace may be controlled in a document tree</span>-<a name="line-515"></a><span class='comment'>-- by a tag attribute @xml:space@</span>-<a name="line-516"></a><span class='comment'>--</span>-<a name="line-517"></a><span class='comment'>-- allowed values for this attribute are @default | preserve@.</span>-<a name="line-518"></a><span class='comment'>--</span>-<a name="line-519"></a><span class='comment'>-- input is a complete document tree or a document fragment</span>-<a name="line-520"></a><span class='comment'>-- result is the semantically equivalent formatted tree.</span>-<a name="line-521"></a><span class='comment'>--</span>-<a name="line-522"></a><span class='comment'>--</span>-<a name="line-523"></a><span class='comment'>-- see also : 'removeDocWhiteSpace'</span>-<a name="line-524"></a>-<a name="line-525"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-526"></a><span class='definition'>indentDoc</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-527"></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-528"></a>			    <span class='varop'>`orElse`</span>-<a name="line-529"></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'>&gt;&gt;&gt;</span> <span class='varid'>indentRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span><span class='layout'>)</span>-<a name="line-530"></a>			  <span class='layout'>)</span>-<a name="line-531"></a>-<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-533"></a>-<a name="line-534"></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-535"></a><span class='definition'>indentRoot</span>		<span class='keyglyph'>=</span> <span class='varid'>processChildren</span> <span class='varid'>indentRootChildren</span>-<a name="line-536"></a>    <span class='keyword'>where</span>-<a name="line-537"></a>    <span class='varid'>indentRootChildren</span>-<a name="line-538"></a>	<span class='keyglyph'>=</span> <span class='varid'>removeText</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentChild</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>insertNL</span>-<a name="line-539"></a>	<span class='keyword'>where</span>-<a name="line-540"></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-541"></a>	<span class='varid'>insertNL</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-542"></a>	<span class='varid'>indentChild</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>replaceChildren</span>-<a name="line-543"></a>			    <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-544"></a>			      <span class='varop'>&gt;&gt;.</span>-<a name="line-545"></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-546"></a>			    <span class='layout'>)</span>-<a name="line-547"></a>			    <span class='varop'>`whenNot`</span> <span class='varid'>isDTD</span>-<a name="line-548"></a>			  <span class='layout'>)</span>-<a name="line-549"></a>-<a name="line-550"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-551"></a><span class='comment'>--</span>-<a name="line-552"></a><span class='comment'>-- copied from EditFilter and rewritten for arrows</span>-<a name="line-553"></a><span class='comment'>-- to remove dependency to the filter module</span>-<a name="line-554"></a>-<a name="line-555"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-556"></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-557"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-558"></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-559"></a>    <span class='keyglyph'>=</span> <span class='varid'>runLAs</span> <span class='varid'>lsf</span> <span class='varid'>ls</span>-<a name="line-560"></a>      <span class='varop'>++</span>-<a name="line-561"></a>      <span class='varid'>indentRest</span> <span class='varid'>rs</span>-<a name="line-562"></a>      <span class='keyword'>where</span>-<a name="line-563"></a>      <span class='varid'>runLAs</span> <span class='varid'>f</span> <span class='varid'>l</span>-<a name="line-564"></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'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>undefined</span>-<a name="line-565"></a>-<a name="line-566"></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-567"></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-568"></a>-<a name="line-569"></a>      <span class='varid'>isSignificant</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>-<a name="line-570"></a>      <span class='varid'>isSignificant</span>-<a name="line-571"></a>	  <span class='keyglyph'>=</span> <span class='varid'>preserveSpace</span>-<a name="line-572"></a>	    <span class='varop'>||</span>-<a name="line-573"></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-574"></a>-<a name="line-575"></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-576"></a>      <span class='varid'>isSignificantPart</span>-<a name="line-577"></a>	  <span class='keyglyph'>=</span> <span class='varid'>catA</span>-<a name="line-578"></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-579"></a>	    <span class='layout'>,</span> <span class='varid'>isCdata</span>-<a name="line-580"></a>	    <span class='layout'>,</span> <span class='varid'>isCharRef</span>-<a name="line-581"></a>	    <span class='layout'>,</span> <span class='varid'>isEntityRef</span>-<a name="line-582"></a>	    <span class='keyglyph'>]</span>-<a name="line-583"></a>-<a name="line-584"></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-585"></a>      <span class='varid'>lsf</span>-<a name="line-586"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>-<a name="line-587"></a>	      <span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-588"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-589"></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-590"></a>                <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-591"></a>                <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='varid'>level</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>this</span><span class='layout'>)</span>-<a name="line-592"></a>-<a name="line-593"></a>      <span class='varid'>indentRest</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-594"></a>      <span class='varid'>indentRest</span> <span class='conid'>[]</span>-<a name="line-595"></a>	  <span class='keyglyph'>|</span> <span class='varid'>isSignificant</span>-<a name="line-596"></a>	      <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-597"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-598"></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-599"></a>-<a name="line-600"></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-601"></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-602"></a>		      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-603"></a>		      <span class='varid'>lsf</span>-<a name="line-604"></a>		    <span class='layout'>)</span>-<a name="line-605"></a>		    <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-606"></a>		  <span class='layout'>)</span> <span class='varid'>t'</span>-<a name="line-607"></a>            <span class='varop'>++</span>-<a name="line-608"></a>	    <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>ts'</span>-<a name="line-609"></a>	      <span class='keyword'>then</span> <span class='varid'>indentRest</span>-<a name="line-610"></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-611"></a>	    <span class='layout'>)</span> <span class='varid'>ts'</span>-<a name="line-612"></a>	  <span class='keyword'>where</span>-<a name="line-613"></a>	  <span class='varid'>indentElem</span>-<a name="line-614"></a>	      <span class='keyglyph'>=</span> <span class='varid'>replaceChildren</span>	<span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-615"></a>				  <span class='varop'>&gt;&gt;.</span>-<a name="line-616"></a>				  <span class='varid'>indentChildren</span>-<a name="line-617"></a>				<span class='layout'>)</span>-<a name="line-618"></a>-<a name="line-619"></a>	  <span class='varid'>xmlSpaceAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-620"></a>	  <span class='varid'>xmlSpaceAttrValue</span>-<a name="line-621"></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-622"></a>-<a name="line-623"></a>	  <span class='varid'>preserveSpace'</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span>-<a name="line-624"></a>	  <span class='varid'>preserveSpace'</span>-<a name="line-625"></a>	      <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>fromMaybe</span> <span class='varid'>preserveSpace</span>-<a name="line-626"></a>		  <span class='varop'>.</span>-<a name="line-627"></a>		  <span class='varid'>lookup</span> <span class='varid'>xmlSpaceAttrValue</span>-<a name="line-628"></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-629"></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-630"></a>		  <span class='keyglyph'>]</span>-<a name="line-631"></a>-<a name="line-632"></a>	  <span class='varid'>indentChildren</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-633"></a>	  <span class='varid'>indentChildren</span> <span class='varid'>cs'</span>-<a name="line-634"></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-635"></a>		  <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-636"></a>	      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-637"></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-638"></a>-<a name="line-639"></a>	-<a name="line-640"></a><span class='comment'>-- filter for indenting elements</span>-<a name="line-641"></a>-<a name="line-642"></a><a name="insertIndentation"></a><span class='definition'>insertIndentation</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>-<a name="line-643"></a><span class='definition'>insertIndentation</span> <span class='varid'>indentWidth</span> <span class='varid'>level</span>-<a name="line-644"></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-645"></a>-<a name="line-646"></a><span class='comment'>-- filter for removing all whitespace</span>-<a name="line-647"></a>-<a name="line-648"></a><a name="insertNothing"></a><span class='definition'>insertNothing</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span>-<a name="line-649"></a><span class='definition'>insertNothing</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>none</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><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-654"></a><span class='definition'>transfCdata'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>getCdata</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span><span class='layout'>)</span> <span class='varop'>`when`</span> <span class='varid'>isCdata</span>-<a name="line-655"></a>-<a name="line-656"></a><span class='comment'>-- |</span>-<a name="line-657"></a><span class='comment'>-- converts a CDATA section node into a normal text node</span>-<a name="line-658"></a>-<a name="line-659"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-660"></a><span class='definition'>transfCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-661"></a>			  <span class='varid'>transfCdata'</span>-<a name="line-662"></a>-<a name="line-663"></a><span class='comment'>-- |</span>-<a name="line-664"></a><span class='comment'>-- converts CDATA sections in whole document tree into normal text nodes</span>-<a name="line-665"></a>-<a name="line-666"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-667"></a><span class='definition'>transfAllCdata</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-668"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCdata'</span>-<a name="line-669"></a>			  -<a name="line-670"></a><span class='comment'>--</span>-<a name="line-671"></a>-<a name="line-672"></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-673"></a><span class='definition'>transfCharRef'</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getCharRef</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>mkText</span> <span class='layout'>)</span>-<a name="line-674"></a>		          <span class='varop'>`when`</span>-<a name="line-675"></a>			  <span class='varid'>isCharRef</span>-<a name="line-676"></a>-<a name="line-677"></a><span class='comment'>-- |</span>-<a name="line-678"></a><span class='comment'>-- converts character references to normal text</span>-<a name="line-679"></a>-<a name="line-680"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-681"></a><span class='definition'>transfCharRef</span>		<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-682"></a>			  <span class='varid'>transfCharRef'</span>-<a name="line-683"></a>-<a name="line-684"></a><span class='comment'>-- |</span>-<a name="line-685"></a><span class='comment'>-- recursively converts all character references to normal text</span>-<a name="line-686"></a>-<a name="line-687"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-688"></a><span class='definition'>transfAllCharRef</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-689"></a>			  <span class='varid'>processBottomUp</span> <span class='varid'>transfCharRef'</span>-<a name="line-690"></a>-<a name="line-691"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-692"></a>-<a name="line-693"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-694"></a><span class='definition'>hasXmlPi</span>-<a name="line-695"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>-<a name="line-696"></a>      <span class='layout'>(</span> <span class='varid'>getChildren</span>-<a name="line-697"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-698"></a>	<span class='varid'>isPi</span>-<a name="line-699"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-700"></a>	<span class='varid'>hasName</span> <span class='varid'>t_xml</span>-<a name="line-701"></a>      <span class='layout'>)</span>-<a name="line-702"></a>-<a name="line-703"></a><span class='comment'>-- | add an \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>-<a name="line-704"></a><span class='comment'>-- if it's not already there</span>-<a name="line-705"></a>-<a name="line-706"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-707"></a><span class='definition'>addXmlPi</span>-<a name="line-708"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span>-<a name="line-709"></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-710"></a>			       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-711"></a>			       <span class='varid'>addAttr</span> <span class='varid'>a_version</span> <span class='str'>"1.0"</span>-<a name="line-712"></a>			     <span class='layout'>)</span>-<a name="line-713"></a>			     <span class='varop'>&lt;+&gt;</span>-<a name="line-714"></a>			     <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-715"></a>			   <span class='layout'>)</span>-<a name="line-716"></a>	<span class='varop'>`whenNot`</span>-<a name="line-717"></a>	<span class='varid'>hasXmlPi</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 encoding spec to the \&lt;?xml version=\"1.0\"?\&gt; processing instruction</span>-<a name="line-721"></a>-<a name="line-722"></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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-723"></a><span class='definition'>addXmlPiEncoding</span> <span class='varid'>enc</span>-<a name="line-724"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-725"></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-726"></a>		        <span class='varop'>`when`</span>-<a name="line-727"></a>			<span class='layout'>(</span> <span class='varid'>isPi</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>t_xml</span> <span class='layout'>)</span>-<a name="line-728"></a>		      <span class='layout'>)</span>-<a name="line-729"></a>-<a name="line-730"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>-<a name="line-731"></a>-<a name="line-732"></a><a name="addXHtmlDoctypeStrict"></a><span class='definition'>addXHtmlDoctypeStrict</span>-<a name="line-733"></a>  <span class='layout'>,</span> <span class='varid'>addXHtmlDoctypeTransitional</span>-<a name="line-734"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-735"></a>-<a name="line-736"></a><span class='comment'>-- | add an XHTML strict doctype declaration to a document</span>-<a name="line-737"></a>-<a name="line-738"></a><span class='definition'>addXHtmlDoctypeStrict</span>-<a name="line-739"></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-740"></a>-<a name="line-741"></a><span class='comment'>-- | add an XHTML transitional doctype declaration to a document</span>-<a name="line-742"></a>-<a name="line-743"></a><a name="addXHtmlDoctypeTransitional"></a><span class='definition'>addXHtmlDoctypeTransitional</span>-<a name="line-744"></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-745"></a>-<a name="line-746"></a><span class='comment'>-- | add an XHTML frameset doctype declaration to a document</span>-<a name="line-747"></a>-<a name="line-748"></a><a name="addXHtmlDoctypeFrameset"></a><span class='definition'>addXHtmlDoctypeFrameset</span>-<a name="line-749"></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-750"></a>-<a name="line-751"></a><span class='comment'>-- | add a doctype declaration to a document</span>-<a name="line-752"></a><span class='comment'>--</span>-<a name="line-753"></a><span class='comment'>-- The arguments are the root element name, the PUBLIC id and the SYSTEM id</span>-<a name="line-754"></a>-<a name="line-755"></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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-756"></a><span class='definition'>addDoctypeDecl</span> <span class='varid'>rootElem</span> <span class='varid'>public</span> <span class='varid'>system</span>-<a name="line-757"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-758"></a>      <span class='varid'>replaceChildren</span>-<a name="line-759"></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-760"></a>		       <span class='varop'>.</span>-<a name="line-761"></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-762"></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-763"></a>		     <span class='layout'>)</span> <span class='varid'>none</span>-<a name="line-764"></a>	<span class='varop'>&lt;+&gt;</span>-<a name="line-765"></a>	<span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-766"></a>	<span class='varop'>&lt;+&gt;</span>-<a name="line-767"></a>	<span class='varid'>getChildren</span>-<a name="line-768"></a>      <span class='layout'>)</span>-<a name="line-769"></a>-<a name="line-770"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-118"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>+<a name="line-119"></a>	    <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-120"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>+<a name="line-121"></a>	    <span class='varop'>&gt;&gt;&gt;</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'>=&gt;</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'>&lt;+&gt;</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'>=&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-186"></a>	    <span class='varid'>transfCdata</span>				<span class='comment'>-- CDATA -&gt; text</span>+<a name="line-187"></a>	    <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-188"></a>	    <span class='varid'>transfCharRef</span>			<span class='comment'>-- Char refs -&gt; text</span>+<a name="line-189"></a>	    <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>=&gt;</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'>=&gt;</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'>-- &gt; xshowEscape f &gt;&gt;&gt; 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'>=&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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 -&gt; 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'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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 \&lt; and &amp; in text nodes into prefefiened XML entity references,</span>+<a name="line-302"></a><span class='comment'>-- in attribute values also \', \", \&gt;, \\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'>=&gt;</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'>"&lt;&amp;"</span><span class='layout'>)</span>		<span class='comment'>-- no escape for ", ' and &gt; 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'>"&lt;&gt;\"\'&amp;\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 \&lt; and &amp; 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 \', \", \&gt;, \\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'>=&gt;</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'>&gt;=</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'>"&lt;&amp;"</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'>&gt;=</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'>"&lt;&gt;\"\'&amp;\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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>processChildren</span> <span class='varid'>escape</span>+<a name="line-347"></a>			  <span class='varop'>&gt;&gt;&gt;</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'>:-&gt;</span> <span class='varid'>escText</span>+<a name="line-351"></a>	  <span class='comment'>-- , isCmt   :-&gt; escCmt</span>+<a name="line-352"></a>	  <span class='layout'>,</span> <span class='varid'>isDTD</span>   <span class='conop'>:-&gt;</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'>:-&gt;</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'>&lt;+&gt;</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'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-374"></a>	      <span class='varid'>isNoneEmpty</span>+<a name="line-375"></a>	      <span class='varop'>&gt;&gt;&gt;</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'>=&gt;</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'>^&gt;&gt;</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'>=&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>=&gt;</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'>^&gt;&gt;</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'>=&gt;</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'>$&lt;</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_source</span> <span class='varop'>&gt;&gt;^</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'>&lt;+&gt;</span> <span class='varid'>getChildren</span> <span class='varop'>&lt;+&gt;</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'>=&gt;</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'>=&gt;</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 \&lt;pre\&gt;-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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</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'>:-&gt;</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'>:-&gt;</span> <span class='varid'>replaceChildren</span> <span class='layout'>(</span> <span class='varid'>getChildren</span>+<a name="line-516"></a>					      <span class='varop'>&gt;&gt;.</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'>=&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>indentRoot</span> <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>indentChild</span> <span class='varop'>&gt;&gt;&gt;</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'>&lt;+&gt;</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'>&gt;&gt;.</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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-608"></a>                <span class='layout'>(</span><span class='varid'>indentFilter</span> <span class='varid'>level</span> <span class='varop'>&lt;+&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;.</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>i</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-715"></a>	<span class='varid'>isPi</span>+<a name="line-716"></a>	<span class='varop'>&gt;&gt;&gt;</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 \&lt;?xml version=\"1.0\"?\&gt; 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'>=&gt;</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'>&gt;&gt;&gt;</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'>&lt;+&gt;</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 \&lt;?xml version=\"1.0\"?\&gt; 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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&lt;+&gt;</span>+<a name="line-782"></a>	<span class='varid'>txt</span> <span class='str'>"\n"</span>+<a name="line-783"></a>	<span class='varop'>&lt;+&gt;</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 view
@@ -140,7 +140,7 @@ <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'>&gt;&gt;&gt;</span>-<a name="line-135"></a>	      <span class='varid'>traceString</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-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'>&amp;&amp;&amp;</span> <a name="line-138"></a>	    <span class='varid'>xshow</span> <span class='layout'>(</span><span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isText</span><span class='layout'>)</span>@@ -168,7 +168,7 @@ <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'>&gt;&gt;&gt;</span>-<a name="line-163"></a>	      <span class='varid'>traceString</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-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'>&amp;&amp;&amp;</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>@@ -182,7 +182,7 @@ <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'>&gt;&gt;&gt;</span>-<a name="line-177"></a>	  <span class='varid'>traceString</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-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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>@@ -244,7 +244,7 @@ <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'>&gt;&gt;&gt;</span>					<span class='comment'>-- and compute the arrow to be applied</span>-<a name="line-239"></a>		       <span class='varid'>traceString</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-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'>&gt;&gt;&gt;</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>
doc/hdoc/src/Text-XML-HXT-Arrow-Namespace.html view
@@ -10,433 +10,416 @@ <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 Uwe Schmidt+<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>   Version    : $Id: Namespace.hs,v 1.13 2006/11/12 14:52:59 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>   namespace specific 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'>Text</span><span 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-20"></a>    <span class='layout'>(</span> <span class='varid'>attachNsEnv</span>-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>cleanupNamespaces</span>-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>collectNamespaceDecl</span>-<a name="line-23"></a>    <span class='layout'>,</span> <span class='varid'>collectPrefixUriPairs</span>-<a name="line-24"></a>    <span class='layout'>,</span> <span class='varid'>isNamespaceDeclAttr</span>-<a name="line-25"></a>    <span class='layout'>,</span> <span class='varid'>getNamespaceDecl</span>-<a name="line-26"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnv</span>-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>processWithNsEnvWithoutAttrl</span>-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>propagateNamespaces</span>-<a name="line-29"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespaces</span>-<a name="line-30"></a>    <span class='layout'>,</span> <span class='varid'>uniqueNamespacesFromDeclAndQNames</span>-<a name="line-31"></a>    <span class='layout'>,</span> <span class='varid'>validateNamespaces</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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>				<span class='comment'>-- arrow classes</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>ListArrow</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</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>    <span class='layout'>(</span> <span class='varid'>isNothing</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>fromJust</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'>List</span>-<a name="line-50"></a>    <span class='layout'>(</span> <span class='varid'>nub</span> <span class='layout'>)</span>+<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><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-53"></a>-<a name="line-54"></a><span class='comment'>-- | test whether an attribute node contains an XML Namespace declaration</span>-<a name="line-55"></a>-<a name="line-56"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-57"></a><span class='definition'>isNamespaceDeclAttr</span>-<a name="line-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-59"></a>      <span class='layout'>(</span><span class='varid'>getAttrName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>isNsQName</span><span class='layout'>)</span> <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-60"></a>      <span class='keyword'>where</span>-<a name="line-61"></a>      <span class='varid'>isNsQName</span> <span class='varid'>n</span>-<a name="line-62"></a>	  <span class='keyglyph'>=</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>-<a name="line-63"></a>	    <span class='varop'>&amp;&amp;</span>-<a name="line-64"></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-65"></a>	  <span class='keyword'>where</span>-<a name="line-66"></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='varop'>.</span> <span class='varid'>qualifiedName</span> <span class='varop'>$</span> <span class='varid'>n</span>-<a name="line-67"></a>-<a name="line-68"></a><span class='comment'>-- | get the namespace prefix and the namespace URI out of</span>-<a name="line-69"></a><span class='comment'>-- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')</span>-<a name="line-70"></a><span class='comment'>-- for all other nodes this arrow fails</span>-<a name="line-71"></a>-<a name="line-72"></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'>=&gt;</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-73"></a><span class='definition'>getNamespaceDecl</span>-<a name="line-74"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-75"></a>      <span class='varid'>isNamespaceDeclAttr</span>-<a name="line-76"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-77"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getAttrName</span>-<a name="line-78"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-79"></a>	  <span class='varid'>arr</span> <span class='varid'>getNsPrefix</span>-<a name="line-80"></a>	<span class='layout'>)</span>-<a name="line-81"></a>	<span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</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>      <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-85"></a>-<a name="line-86"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-87"></a>-<a name="line-88"></a><span class='comment'>-- | collect all namespace declarations contained in a document</span>-<a name="line-89"></a><span class='comment'>--</span>-<a name="line-90"></a><span class='comment'>-- apply 'getNamespaceDecl' to a whole XmlTree</span>-<a name="line-91"></a>-<a name="line-92"></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-93"></a><span class='definition'>collectNamespaceDecl</span>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span>-<a name="line-94"></a>-<a name="line-95"></a><span class='comment'>-- | collect all (namePrefix, namespaceUri) pairs from a tree</span>-<a name="line-96"></a><span class='comment'>--</span>-<a name="line-97"></a><span class='comment'>-- all qualified names are inspected, whether a namespace uri is defined,</span>-<a name="line-98"></a><span class='comment'>-- for these uris the prefix and uri is returned. This arrow is useful for</span>-<a name="line-99"></a><span class='comment'>-- namespace cleanup, e.g. for documents generated with XSLT. It can be used</span>-<a name="line-100"></a><span class='comment'>-- together with 'collectNamespaceDecl' to 'cleanupNamespaces'</span>-<a name="line-101"></a>-<a name="line-102"></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-103"></a><span class='definition'>collectPrefixUriPairs</span>-<a name="line-104"></a>    <span class='keyglyph'>=</span> <span class='varid'>multi</span> <span class='layout'>(</span><span class='varid'>isElem</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>getAttrl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isPi</span><span class='layout'>)</span>-<a name="line-105"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-106"></a>      <span class='varid'>getQName</span>-<a name="line-107"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-108"></a>      <span class='varid'>arrL</span> <span class='varid'>getPrefixUri</span>-<a name="line-109"></a>    <span class='keyword'>where</span>-<a name="line-110"></a>    <span class='varid'>getPrefixUri</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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-111"></a>    <span class='varid'>getPrefixUri</span> <span class='varid'>n</span>-<a name="line-112"></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-113"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>-<a name="line-114"></a>	  <span class='varop'>||</span>-<a name="line-115"></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-116"></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-117"></a>	<span class='keyword'>where</span>-<a name="line-118"></a>	<span class='varid'>uri</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-119"></a>	<span class='varid'>px</span>  <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span>   <span class='varid'>n</span>+<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'>=&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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'>&lt;+&gt;</span> <span class='varid'>getAttrl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isPi</span><span class='layout'>)</span>+<a name="line-94"></a>      <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-95"></a>      <span class='varid'>getQName</span>+<a name="line-96"></a>      <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>=&gt;</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'>-- ------------------------------------------------------------</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='comment'>-- | generate unique namespaces and add all namespace declarations to the root element</span>-<a name="line-124"></a><span class='comment'>--</span>-<a name="line-125"></a><span class='comment'>-- Calls 'cleanupNamespaces' with 'collectNamespaceDecl'</span>-<a name="line-126"></a>-<a name="line-127"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-128"></a><span class='definition'>uniqueNamespaces</span>-<a name="line-129"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-130"></a>      <span class='varid'>cleanupNamespaces</span> <span class='varid'>collectNamespaceDecl</span>-<a name="line-131"></a>-<a name="line-132"></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-133"></a><span class='comment'>--</span>-<a name="line-134"></a><span class='comment'>-- useful for cleanup of namespaces in generated documents.</span>-<a name="line-135"></a><span class='comment'>-- Calls 'cleanupNamespaces' with @ collectNamespaceDecl &lt;+&gt; collectPrefixUriPairs @</span>-<a name="line-136"></a>-<a name="line-137"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-138"></a><span class='definition'>uniqueNamespacesFromDeclAndQNames</span>-<a name="line-139"></a>    <span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span>-<a name="line-140"></a>      <span class='varid'>cleanupNamespaces</span> <span class='layout'>(</span><span class='varid'>collectNamespaceDecl</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>collectPrefixUriPairs</span><span class='layout'>)</span>-<a name="line-141"></a>-<a name="line-142"></a><span class='comment'>-- | does the real work for namespace cleanup.</span>-<a name="line-143"></a><span class='comment'>--</span>-<a name="line-144"></a><span class='comment'>-- The parameter is used for collecting namespace uris and prefixes from the input tree</span>-<a name="line-145"></a>-<a name="line-146"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-147"></a><span class='definition'>cleanupNamespaces</span> <span class='varid'>collectNamespaces</span>-<a name="line-148"></a>    <span class='keyglyph'>=</span> <span class='varid'>renameNamespaces</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>collectNamespaces</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>nub</span><span class='layout'>)</span>-<a name="line-149"></a>    <span class='keyword'>where</span>-<a name="line-150"></a>    <span class='varid'>renameNamespaces</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-151"></a>    <span class='varid'>renameNamespaces</span> <span class='varid'>env</span>-<a name="line-152"></a>	<span class='keyglyph'>=</span> <span class='varid'>processBottomUp</span>-<a name="line-153"></a>	  <span class='layout'>(</span> <span class='varid'>processAttrl</span>-<a name="line-154"></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-155"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-156"></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-157"></a>	    <span class='layout'>)</span>-<a name="line-158"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-159"></a>	    <span class='varid'>changeQName</span> <span class='varid'>renamePrefix</span>			<span class='comment'>-- update namespace prefix of element names</span>-<a name="line-160"></a>	  <span class='layout'>)</span>-<a name="line-161"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-162"></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-163"></a>	<span class='keyword'>where</span>-<a name="line-164"></a>	<span class='varid'>renamePrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-165"></a>	<span class='varid'>renamePrefix</span> <span class='varid'>n</span>-<a name="line-166"></a>	    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>uri</span>		<span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-167"></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-168"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>n</span> <span class='layout'>{</span><span class='varid'>namePrefix</span> <span class='keyglyph'>=</span> <span class='varid'>fromJust</span> <span class='varid'>newPx</span><span class='layout'>}</span>-<a name="line-169"></a>	    <span class='keyword'>where</span>-<a name="line-170"></a>	    <span class='varid'>uri</span>   <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-171"></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-172"></a>	    -<a name="line-173"></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'>-&gt;</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-174"></a>-<a name="line-175"></a>	<span class='varid'>env1</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span>-<a name="line-176"></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-177"></a>-<a name="line-178"></a>	<span class='varid'>uris</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-179"></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-180"></a>-<a name="line-181"></a>	<span class='varid'>genPrefixes</span> <span class='keyglyph'>::</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-182"></a>        <span class='varid'>genPrefixes</span> <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='layout'>(</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-183"></a>-<a name="line-184"></a>        <span class='varid'>newEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>-<a name="line-185"></a>	<span class='varid'>newEnv</span> <span class='varid'>env'</span> <span class='conid'>[]</span>-<a name="line-186"></a>	    <span class='keyglyph'>=</span> <span class='varid'>env'</span>+<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 &lt;+&gt; 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'>=&gt;</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'>&lt;+&gt;</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'>-&gt;</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'>$&lt;</span> <span class='layout'>(</span><span class='varid'>listA</span> <span class='varid'>collectNamespaces</span> <span class='varop'>&gt;&gt;^</span> <span class='layout'>(</span><span class='varid'>toNsEnv</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XName</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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='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-189"></a>	    <span class='keyglyph'>=</span> <span class='varid'>newEnv</span> <span class='varid'>env''</span> <span class='varid'>rest</span>-<a name="line-190"></a>	    <span class='keyword'>where</span>-<a name="line-191"></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-192"></a>	    <span class='varid'>prefix</span>-<a name="line-193"></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-194"></a>	    <span class='varid'>preferedPrefixes</span>-<a name="line-195"></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-196"></a>	    <span class='varid'>notAlreadyUsed</span> <span class='varid'>s</span>-<a name="line-197"></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-198"></a>-<a name="line-199"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-200"></a>-<a name="line-201"></a><span class='comment'>-- | auxiliary arrow for processing with a namespace environment</span>-<a name="line-202"></a><span class='comment'>--</span>-<a name="line-203"></a><span class='comment'>-- process a document tree with an arrow, containing always the</span>-<a name="line-204"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>-<a name="line-205"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'.</span>-<a name="line-206"></a><span class='comment'>-- Processing of attributes can be controlled by a boolean parameter</span>-<a name="line-207"></a>-<a name="line-208"></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'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-209"></a><span class='definition'>processWithNsEnv1</span> <span class='varid'>withAttr</span> <span class='varid'>f</span> <span class='varid'>env</span>-<a name="line-210"></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-211"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varop'>$&lt;</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-212"></a>      <span class='layout'>(</span> <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env</span> <span class='layout'>)</span>-<a name="line-213"></a>    <span class='keyword'>where</span>-<a name="line-214"></a>    <span class='varid'>processWithExtendedEnv</span> <span class='varid'>env'</span>-<a name="line-215"></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-216"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-217"></a>	  <span class='layout'>(</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>withAttr</span>-<a name="line-218"></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-219"></a>	      <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-220"></a>	    <span class='layout'>)</span>-<a name="line-221"></a>	    <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-222"></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-223"></a>	  <span class='layout'>)</span>-<a name="line-224"></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-225"></a>-<a name="line-226"></a>    <span class='varid'>extendEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>-<a name="line-227"></a>    <span class='varid'>extendEnv</span> <span class='varid'>env'</span> <span class='varid'>t'</span>-<a name="line-228"></a>	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>newDecls</span> <span class='varid'>env'</span>-<a name="line-229"></a>	<span class='keyword'>where</span>-<a name="line-230"></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'>&gt;&gt;&gt;</span> <span class='varid'>getNamespaceDecl</span> <span class='layout'>)</span> <span class='varid'>t'</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><span class='comment'>-- | process a document tree with an arrow, containing always the</span>-<a name="line-235"></a><span class='comment'>-- valid namespace environment as extra parameter.</span>-<a name="line-236"></a><span class='comment'>--</span>-<a name="line-237"></a><span class='comment'>-- The namespace environment is implemented as a 'Data.AssocList.AssocList'</span>+<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'>=&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>$&lt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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><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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-240"></a><span class='definition'>processWithNsEnv</span>		<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>True</span>-<a name="line-241"></a>-<a name="line-242"></a><span class='comment'>-- | process all element nodes of a document tree with an arrow, containing always the</span>-<a name="line-243"></a><span class='comment'>-- valid namespace environment as extra parameter. Attribute lists are not processed.</span>-<a name="line-244"></a><span class='comment'>--</span>-<a name="line-245"></a><span class='comment'>-- See also: 'processWithNsEnv'</span>-<a name="line-246"></a>-<a name="line-247"></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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-248"></a><span class='definition'>processWithNsEnvWithoutAttrl</span>	<span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv1</span> <span class='conid'>False</span>-<a name="line-249"></a>-<a name="line-250"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-251"></a>-<a name="line-252"></a><span class='comment'>-- | attach all valid namespace declarations to the attribute list of element nodes.</span>-<a name="line-253"></a><span class='comment'>--</span>-<a name="line-254"></a><span class='comment'>-- This arrow is useful for document processing, that requires access to all namespace</span>-<a name="line-255"></a><span class='comment'>-- declarations at any element node, but which cannot be done with a simple 'processWithNsEnv'.</span>-<a name="line-256"></a>-<a name="line-257"></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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-258"></a><span class='definition'>attachNsEnv</span> <span class='varid'>initialEnv</span>-<a name="line-259"></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-260"></a>    <span class='keyword'>where</span>+<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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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><a name="attachEnv"></a><span class='definition'>attachEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-263"></a><span class='definition'>attachEnv</span> <span class='varid'>env</span>-<a name="line-264"></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-265"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-266"></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-267"></a>      <span class='layout'>)</span>-<a name="line-268"></a>      <span class='varop'>`when`</span> <span class='varid'>isElem</span>-<a name="line-269"></a>    <span class='keyword'>where</span>-<a name="line-270"></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-271"></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-272"></a>-<a name="line-273"></a>    <span class='varid'>nsDeclToAttr</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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-274"></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-275"></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='varid'>uri</span><span class='layout'>)</span>-<a name="line-276"></a>	<span class='keyword'>where</span>-<a name="line-277"></a>	<span class='varid'>qn</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-278"></a>	<span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='layout'>(</span><span class='varid'>a_xmlns</span> <span class='varop'>++</span> <span class='layout'>(</span><span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>n</span> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>n</span><span class='layout'>)</span><span class='layout'>)</span> <span class='varid'>xmlnsNamespace</span>+<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'>-&gt;</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><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-281"></a>-<a name="line-282"></a><span class='comment'>-- |</span>-<a name="line-283"></a><span class='comment'>-- propagate all namespace declarations \"xmlns:ns=...\" to all element and attribute nodes of a document.</span>-<a name="line-284"></a><span class='comment'>--</span>-<a name="line-285"></a><span class='comment'>-- This arrow does not check for illegal use of namespaces.</span>-<a name="line-286"></a><span class='comment'>-- The real work is done by 'propagateNamespaceEnv'.</span>-<a name="line-287"></a><span class='comment'>--</span>-<a name="line-288"></a><span class='comment'>-- The arrow may be applied repeatedly if neccessary.</span>+<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'>=&gt;</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="propagateNamespaces"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-291"></a><span class='definition'>propagateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varop'>$</span> <span class='varid'>propagateNamespaceEnv</span> <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><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> <span class='keyglyph'>]</span>-<a name="line-292"></a>-<a name="line-293"></a><span class='comment'>-- |</span>-<a name="line-294"></a><span class='comment'>-- attaches the namespace info given by the namespace table</span>-<a name="line-295"></a><span class='comment'>-- to a tag node and its attributes and children.</span>-<a name="line-296"></a>-<a name="line-297"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-298"></a><span class='definition'>propagateNamespaceEnv</span>-<a name="line-299"></a>    <span class='keyglyph'>=</span> <span class='varid'>processWithNsEnv</span> <span class='varid'>addNamespaceUri</span>-<a name="line-300"></a>    <span class='keyword'>where</span>-<a name="line-301"></a>    <span class='varid'>addNamespaceUri</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-302"></a>    <span class='varid'>addNamespaceUri</span> <span class='varid'>env'</span>-<a name="line-303"></a>	<span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</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-304"></a>		  <span class='layout'>,</span> <span class='varid'>isAttr</span> <span class='conop'>:-&gt;</span> <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>env'</span>-<a name="line-305"></a>		  <span class='layout'>,</span> <span class='varid'>isPi</span>   <span class='conop'>:-&gt;</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-306"></a>		  <span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>-<a name="line-307"></a>		  <span class='keyglyph'>]</span>-<a name="line-308"></a>-<a name="line-309"></a>    <span class='varid'>attachNamespaceUriToAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-310"></a>    <span class='varid'>attachNamespaceUriToAttr</span> <span class='varid'>attrEnv</span>-<a name="line-311"></a>	<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>hasPrefixLocalPart</span> <span class='layout'>)</span>-<a name="line-312"></a>	    <span class='varop'>`guards`</span>-<a name="line-313"></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-314"></a>	  <span class='layout'>)</span>-<a name="line-315"></a>          <span class='varop'>`orElse`</span>-<a name="line-316"></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-317"></a>	    <span class='varop'>`when`</span>-<a name="line-318"></a>	    <span class='varid'>hasName</span> <span class='varid'>a_xmlns</span>-<a name="line-319"></a>	  <span class='layout'>)</span>-<a name="line-320"></a>	<span class='keyword'>where</span>-<a name="line-321"></a>	<span class='varid'>hasPrefixLocalPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-322"></a>	<span class='varid'>hasPrefixLocalPart</span> <span class='varid'>s</span>-<a name="line-323"></a>	    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='chr'>':'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span> <span class='layout'>)</span>				<span class='comment'>-- small optimization: only do some string handling when is ':' found</span>-<a name="line-324"></a>	      <span class='varop'>&amp;&amp;</span>-<a name="line-325"></a>	      <span class='layout'>(</span> <span class='keyword'>let</span>					<span class='comment'>-- check none empty prefix and local part</span>-<a name="line-326"></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-327"></a>		<span class='keyword'>in</span>-<a name="line-328"></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='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='layout'>(</span><span class='varid'>null</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='layout'>)</span>-<a name="line-329"></a>	      <span class='layout'>)</span>-<a name="line-330"></a>-<a name="line-331"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-332"></a>-<a name="line-333"></a><span class='comment'>-- |</span>-<a name="line-334"></a><span class='comment'>-- validate the namespace constraints in a whole tree.</span>-<a name="line-335"></a><span class='comment'>--</span>-<a name="line-336"></a><span class='comment'>-- Result is the list of errors concerning namespaces.</span>-<a name="line-337"></a><span class='comment'>-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespaces'</span>-<a name="line-338"></a><span class='comment'>-- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.</span>-<a name="line-339"></a>-<a name="line-340"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-341"></a><span class='definition'>validateNamespaces</span>	<span class='keyglyph'>=</span> <span class='varid'>fromLA</span> <span class='varid'>validateNamespaces1</span>-<a name="line-342"></a>-<a name="line-343"></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-344"></a><span class='definition'>validateNamespaces1</span>-<a name="line-345"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span>	<span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validateNamespaces1</span> <span class='layout'>)</span>		<span class='comment'>-- root is correct by definition</span>-<a name="line-346"></a>	      <span class='layout'>,</span> <span class='varid'>this</span>	<span class='conop'>:-&gt;</span> <span class='varid'>multi</span> <span class='varid'>validate1Namespaces</span>-<a name="line-347"></a>	      <span class='keyglyph'>]</span>-<a name="line-348"></a>-<a name="line-349"></a><span class='comment'>-- |</span>-<a name="line-350"></a><span class='comment'>-- a single node for namespace constrains.</span>-<a name="line-351"></a>-<a name="line-352"></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-353"></a><span class='definition'>validate1Namespaces</span>-<a name="line-354"></a>    <span class='keyglyph'>=</span> <span class='varid'>choiceA</span>-<a name="line-355"></a>      <span class='keyglyph'>[</span> <span class='varid'>isElem</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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-290"></a><a name="propagateNamespaceEnv"></a><span class='definition'>propagateNamespaceEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>:-&gt;</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'>:-&gt;</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'>:-&gt;</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'>:-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</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'>:-&gt;</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'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>$&lt;</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getUniversalName</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;.</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'>&gt;&gt;&gt;</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'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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-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'>-&gt;</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'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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-359"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasNamePrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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-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'>-&gt;</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='varid'>doubleOcc</span> <span class='varop'>$&lt;</span> <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getUniversalName</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>doubles</span> <span class='layout'>)</span>-<a name="line-364"></a>-<a name="line-365"></a>			 <span class='layout'>,</span> <span class='varid'>getAttrl</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validate1Namespaces</span>-<a name="line-366"></a>		         <span class='keyglyph'>]</span>+<a name="line-363"></a>                         <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>isAttr</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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-369"></a>			   <span class='layout'>)</span>-<a name="line-370"></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'>-&gt;</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-371"></a>-<a name="line-372"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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-373"></a>			   <span class='layout'>)</span>-<a name="line-374"></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'>-&gt;</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-375"></a>-<a name="line-376"></a>			 <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>hasNamePrefix</span> <span class='varid'>a_xmlns</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>xshow</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isA</span> <span class='varid'>null</span>-<a name="line-377"></a>			   <span class='layout'>)</span>-<a name="line-378"></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'>-&gt;</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-379"></a>-<a name="line-380"></a>                         <span class='layout'>,</span> <span class='layout'>(</span> <span class='varid'>getQName</span> <span class='varop'>&gt;&gt;&gt;</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-381"></a>			   <span class='layout'>)</span>-<a name="line-382"></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'>-&gt;</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-383"></a>			 <span class='keyglyph'>]</span>-<a name="line-384"></a>-<a name="line-385"></a>      <span class='layout'>,</span> <span class='varid'>isDTD</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDElement</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDName</span>-<a name="line-386"></a>		           <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-387"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-388"></a>			   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-389"></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-390"></a>			     <span class='varop'>`guards`</span>-<a name="line-391"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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-392"></a>			   <span class='layout'>)</span>-<a name="line-393"></a>-<a name="line-394"></a>			 <span class='layout'>,</span> <span class='varid'>isDTDAttlist</span>-<a name="line-395"></a>			   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-396"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_value</span>-<a name="line-397"></a>			   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-398"></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-399"></a>			     <span class='varop'>`guards`</span>-<a name="line-400"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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-401"></a>			   <span class='layout'>)</span>-<a name="line-402"></a>-<a name="line-403"></a>                         <span class='layout'>,</span> <span class='varid'>isDTDEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDNotation</span>-<a name="line-404"></a>			   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-405"></a>			   <span class='varid'>getDTDAttrValue</span> <span class='varid'>a_name</span>-<a name="line-406"></a>			   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-407"></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-408"></a>                             <span class='varop'>`guards`</span>-<a name="line-409"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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-410"></a>			   <span class='layout'>)</span>-<a name="line-411"></a>			 <span class='keyglyph'>]</span>-<a name="line-412"></a>      <span class='layout'>,</span> <span class='varid'>isPi</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getName</span>-<a name="line-413"></a>		           <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-414"></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-415"></a>			     <span class='varop'>`guards`</span>-<a name="line-416"></a>			     <span class='varid'>nsErr</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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-417"></a>			   <span class='layout'>)</span>-<a name="line-418"></a>			 <span class='keyglyph'>]</span>-<a name="line-419"></a>      <span class='keyglyph'>]</span>-<a name="line-420"></a>    <span class='keyword'>where</span>-<a name="line-421"></a>    <span class='varid'>nsError</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-422"></a>    <span class='varid'>nsError</span> <span class='varid'>msg</span>-<a name="line-423"></a>	<span class='keyglyph'>=</span> <span class='varid'>getName</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>nsErr</span> <span class='varid'>msg</span>-<a name="line-424"></a>-<a name="line-425"></a>    <span class='varid'>nsErr</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-426"></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'>&gt;&gt;&gt;</span> <span class='varid'>mkError</span> <span class='varid'>c_err</span>-<a name="line-427"></a>-<a name="line-428"></a>    <span class='varid'>doubleOcc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-429"></a>    <span class='varid'>doubleOcc</span> <span class='varid'>an</span>-<a name="line-430"></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'>-&gt;</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-431"></a>-<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>+<a name="line-368"></a>      <span class='layout'>,</span> <span class='varid'>isDTD</span>	<span class='conop'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>isDTDDoctype</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDAttlist</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDElement</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDName</span>+<a name="line-369"></a>		           <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&lt;+&gt;</span> <span class='varid'>isDTDPEntity</span> <span class='varop'>&lt;+&gt;</span> <span class='varid'>isDTDNotation</span>+<a name="line-387"></a>			   <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>:-&gt;</span> <span class='varid'>catA</span> <span class='keyglyph'>[</span> <span class='varid'>getName</span>+<a name="line-396"></a>		           <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>show</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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-Pickle-Xml.html view
@@ -10,682 +10,695 @@ <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 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><span class='varop'>.</span><span class='conid'>Xml</span>-<a name="line-40"></a><span class='keyword'>where</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'>Map</span> <span class='layout'>(</span><span class='conid'>Map</span><span class='layout'>)</span>-<a name="line-44"></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-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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</span>-<a name="line-47"></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-48"></a>-<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'>ListArrows</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'>XmlArrow</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'>Pickle</span><span class='varop'>.</span><span class='conid'>Schema</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'>xread</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'>Edit</span>          <span class='layout'>(</span><span class='varid'>xshowEscapeXml</span><span class='layout'>)</span>-<a name="line-54"></a>-<a name="line-55"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-56"></a>-<a name="line-57"></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-58"></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-59"></a>		     <span class='layout'>}</span>-<a name="line-60"></a>-<a name="line-61"></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'>-&gt;</span> <span class='conid'>St</span>-<a name="line-62"></a>		     <span class='layout'>,</span> <span class='varid'>appUnPickle</span> <span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</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-63"></a>		     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>::</span> <span class='conid'>Schema</span>-<a name="line-64"></a>		     <span class='layout'>}</span>-<a name="line-65"></a>-<a name="line-66"></a><a name="emptySt"></a><span class='definition'>emptySt</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span>-<a name="line-67"></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-68"></a>		      <span class='layout'>,</span> <span class='varid'>contents</span>   <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-69"></a>		      <span class='layout'>}</span>-<a name="line-70"></a>-<a name="line-71"></a><a name="addAtt"></a><span class='definition'>addAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>-<a name="line-72"></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-73"></a>-<a name="line-74"></a><a name="addCont"></a><span class='definition'>addCont</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>-<a name="line-75"></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-76"></a>-<a name="line-77"></a><a name="dropCont"></a><span class='definition'>dropCont</span>	<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span>-<a name="line-78"></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-79"></a>-<a name="line-80"></a><a name="getAtt"></a><span class='definition'>getAtt</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>-<a name="line-81"></a><span class='definition'>getAtt</span> <span class='varid'>name</span> <span class='varid'>s</span>-<a name="line-82"></a>    <span class='keyglyph'>=</span> <span class='varid'>listToMaybe</span> <span class='varop'>$</span>-<a name="line-83"></a>      <span class='varid'>runLA</span> <span class='layout'>(</span> <span class='varid'>arrL</span> <span class='varid'>attributes</span>-<a name="line-84"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-85"></a>	      <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasName</span> <span class='varid'>name</span>-<a name="line-86"></a>	    <span class='layout'>)</span> <span class='varid'>s</span>-<a name="line-87"></a>-<a name="line-88"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>XmlTree</span>-<a name="line-89"></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-90"></a>-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-92"></a>-<a name="line-93"></a><span class='comment'>-- | conversion of an arbitrary value into an XML document tree.</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a><span class='comment'>-- The pickler, first parameter, controls the conversion process.</span>-<a name="line-96"></a><span class='comment'>-- Result is a complete document tree including a root node</span>-<a name="line-97"></a>-<a name="line-98"></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'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-99"></a><span class='definition'>pickleDoc</span> <span class='varid'>p</span> <span class='varid'>v</span>-<a name="line-100"></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-101"></a>    <span class='keyword'>where</span>-<a name="line-102"></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-103"></a>-<a name="line-104"></a><span class='comment'>-- | Conversion of an XML document tree into an arbitrary data type</span>-<a name="line-105"></a><span class='comment'>--</span>-<a name="line-106"></a><span class='comment'>-- The inverse of 'pickleDoc'.</span>-<a name="line-107"></a><span class='comment'>-- This law should hold for all picklers: @ unpickle px . pickle px $ v == Just v @.</span>-<a name="line-108"></a><span class='comment'>-- Not every possible combination of picklers make sense.</span>-<a name="line-109"></a><span class='comment'>-- For reconverting a value from an XML tree, is becomes neccessary,</span>-<a name="line-110"></a><span class='comment'>-- to introduce \"enough\" markup for unpickling the value</span>-<a name="line-111"></a>-<a name="line-112"></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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>-<a name="line-113"></a><span class='definition'>unpickleDoc</span> <span class='varid'>p</span> <span class='varid'>t</span>-<a name="line-114"></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-115"></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-116"></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-117"></a>				   <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'>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-120"></a>-<a name="line-121"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-122"></a>-<a name="line-123"></a><span class='comment'>-- | The zero pickler</span>-<a name="line-124"></a><span class='comment'>--</span>-<a name="line-125"></a><span class='comment'>-- Encodes nothing, fails always during unpickling</span>-<a name="line-126"></a>-<a name="line-127"></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-128"></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-129"></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'>-&gt;</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-130"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scNull</span>-<a name="line-131"></a>			      <span class='layout'>}</span>-<a name="line-132"></a>-<a name="line-133"></a><span class='comment'>-- unit pickler</span>-<a name="line-134"></a>-<a name="line-135"></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-136"></a><span class='definition'>xpUnit</span>			<span class='keyglyph'>=</span> <span class='varid'>xpLift</span> <span class='conid'>()</span>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- | Lift a value to a pickler</span>-<a name="line-139"></a><span class='comment'>--</span>-<a name="line-140"></a><span class='comment'>-- When pickling, nothing is encoded, when unpickling, the given value is inserted.</span>-<a name="line-141"></a><span class='comment'>-- This pickler always succeeds.</span>-<a name="line-142"></a>-<a name="line-143"></a><a name="xpLift"></a><span class='definition'>xpLift</span>			<span class='keyglyph'>::</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-144"></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-145"></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'>-&gt;</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-146"></a>			      <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>scEmpty</span>-<a name="line-147"></a>			      <span class='layout'>}</span>-<a name="line-148"></a>-<a name="line-149"></a><span class='comment'>-- | Lift a Maybe value to a pickler.</span>-<a name="line-150"></a><span class='comment'>--</span>-<a name="line-151"></a><span class='comment'>-- @Nothing@ is mapped to the zero pickler, @Just x@ is pickled with @xpLift x@.</span>-<a name="line-152"></a>-<a name="line-153"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-154"></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-155"></a>    <span class='keyword'>where</span>-<a name="line-156"></a>    <span class='varid'>xpLiftMaybe'</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>xpZero</span>-<a name="line-157"></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-158"></a>-<a name="line-159"></a>-<a name="line-160"></a><span class='comment'>-- | pickle\/unpickle combinator for sequence and choice.</span>-<a name="line-161"></a><span class='comment'>--</span>-<a name="line-162"></a><span class='comment'>-- When the first unpickler fails,</span>-<a name="line-163"></a><span class='comment'>-- the second one is taken, else the third one configured with the result from the first</span>-<a name="line-164"></a><span class='comment'>-- is taken. This pickler is a generalisation for 'xpSeq' and 'xpChoice' .</span>-<a name="line-165"></a><span class='comment'>--</span>-<a name="line-166"></a><span class='comment'>-- The schema must be attached later, e.g. in xpPair or other higher level combinators</span>-<a name="line-167"></a>-<a name="line-168"></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'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-169"></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-170"></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'>-&gt;</span>-<a name="line-171"></a>	                   <span class='keyword'>let</span>-<a name="line-172"></a>			   <span class='varid'>a</span>  <span class='keyglyph'>=</span> <span class='varid'>f</span> <span class='varid'>b</span>-<a name="line-173"></a>			   <span class='varid'>pb</span> <span class='keyglyph'>=</span> <span class='varid'>k</span> <span class='varid'>a</span>-<a name="line-174"></a>			   <span class='keyword'>in</span>-<a name="line-175"></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-176"></a>			 <span class='layout'>)</span>-<a name="line-177"></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'>-&gt;</span>-<a name="line-178"></a>			   <span class='keyword'>let</span>-<a name="line-179"></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-180"></a>			   <span class='keyword'>in</span>-<a name="line-181"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-182"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>appUnPickle</span> <span class='varid'>pd</span>     <span class='varid'>s</span>-<a name="line-183"></a>			   <span class='conid'>Just</span> <span class='varid'>a'</span> <span class='keyglyph'>-&gt;</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-184"></a>			 <span class='layout'>)</span>-<a name="line-185"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-186"></a>	 <span class='layout'>}</span>-<a name="line-187"></a>-<a name="line-188"></a>-<a name="line-189"></a><span class='comment'>-- | Combine two picklers sequentially.</span>-<a name="line-190"></a><span class='comment'>--</span>-<a name="line-191"></a><span class='comment'>-- If the first fails during</span>-<a name="line-192"></a><span class='comment'>-- unpickling, the whole unpickler fails</span>-<a name="line-193"></a>-<a name="line-194"></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'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-195"></a><span class='definition'>xpSeq</span>	<span class='keyglyph'>=</span> <span class='varid'>xpCondSeq</span> <span class='varid'>xpZero</span>-<a name="line-196"></a>-<a name="line-197"></a>-<a name="line-198"></a><span class='comment'>-- | combine tow picklers with a choice</span>-<a name="line-199"></a><span class='comment'>--</span>-<a name="line-200"></a><span class='comment'>-- Run two picklers in sequence like with xpSeq.</span>-<a name="line-201"></a><span class='comment'>-- When during unpickling the first one fails,</span>-<a name="line-202"></a><span class='comment'>-- an alternative pickler (first argument) is applied.</span>-<a name="line-203"></a><span class='comment'>-- This pickler is only used as combinator for unpickling.</span>-<a name="line-204"></a> -<a name="line-205"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-206"></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-207"></a>-<a name="line-208"></a>-<a name="line-209"></a><span class='comment'>-- | map value into another domain and apply pickler there</span>-<a name="line-210"></a><span class='comment'>--</span>-<a name="line-211"></a><span class='comment'>-- One of the most often used picklers.</span>-<a name="line-212"></a>-<a name="line-213"></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'>-&gt;</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-214"></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-215"></a>-<a name="line-216"></a><span class='comment'>-- | like 'xpWrap', but if the inverse mapping is undefined, the unpickler fails</span>-<a name="line-217"></a><span class='comment'>--</span>-<a name="line-218"></a><span class='comment'>-- Map a value into another domain. If the inverse mapping is</span>-<a name="line-219"></a><span class='comment'>-- undefined (Nothing), the unpickler fails</span>-<a name="line-220"></a>-<a name="line-221"></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'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span>-<a name="line-222"></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-223"></a>-<a name="line-224"></a><span class='comment'>-- | pickle a pair of values sequentially</span>-<a name="line-225"></a><span class='comment'>--</span>-<a name="line-226"></a><span class='comment'>-- Used for pairs or together with wrap for pickling</span>-<a name="line-227"></a><span class='comment'>-- algebraic data types with two components</span>-<a name="line-228"></a>-<a name="line-229"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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-230"></a><span class='definition'>xpPair</span> <span class='varid'>pa</span> <span class='varid'>pb</span>-<a name="line-231"></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'>-&gt;</span>-<a name="line-232"></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'>-&gt;</span>-<a name="line-233"></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-234"></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-235"></a>-<a name="line-236"></a><span class='comment'>-- | Like 'xpPair' but for triples</span>-<a name="line-237"></a>-<a name="line-238"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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-239"></a><span class='definition'>xpTriple</span> <span class='varid'>pa</span> <span class='varid'>pb</span> <span class='varid'>pc</span>-<a name="line-240"></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-241"></a>    <span class='keyword'>where</span>-<a name="line-242"></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-243"></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-244"></a>-<a name="line-245"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 4-tuples</span>-<a name="line-246"></a>-<a name="line-247"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</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-248"></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-249"></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-250"></a>    <span class='keyword'>where</span>-<a name="line-251"></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-252"></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-253"></a>-<a name="line-254"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 5-tuples</span>-<a name="line-255"></a>-<a name="line-256"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</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-257"></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-258"></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-259"></a>    <span class='keyword'>where</span>-<a name="line-260"></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-261"></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-262"></a>-<a name="line-263"></a><span class='comment'>-- | Like 'xpPair' and 'xpTriple' but for 6-tuples</span>-<a name="line-264"></a>-<a name="line-265"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>f</span> <span class='keyglyph'>-&gt;</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-266"></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-267"></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-268"></a>    <span class='keyword'>where</span>-<a name="line-269"></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-270"></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-271"></a>-<a name="line-272"></a><span class='comment'>-- | Pickle a string into an XML text node</span>-<a name="line-273"></a><span class='comment'>--</span>-<a name="line-274"></a><span class='comment'>-- One of the most often used primitive picklers. Attention:</span>-<a name="line-275"></a><span class='comment'>-- For pickling empty strings use 'xpText0'. If the text has a more</span>-<a name="line-276"></a><span class='comment'>-- specific datatype than xsd:string, use 'xpTextDT'</span>-<a name="line-277"></a>-<a name="line-278"></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-279"></a><span class='definition'>xpText</span>	<span class='keyglyph'>=</span> <span class='varid'>xpTextDT</span> <span class='varid'>scString1</span>-<a name="line-280"></a>-<a name="line-281"></a><span class='comment'>-- | Pickle a string into an XML text node</span>-<a name="line-282"></a><span class='comment'>--</span>-<a name="line-283"></a><span class='comment'>-- Text pickler with a description of the structure of the text</span>-<a name="line-284"></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-285"></a><span class='comment'>-- In 'Text.XML.HXT.Arrow.Pickle.Schema' there are some more functions for creating</span>-<a name="line-286"></a><span class='comment'>-- simple datatype descriptions.</span>-<a name="line-287"></a>-<a name="line-288"></a><a name="xpTextDT"></a><span class='definition'>xpTextDT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-289"></a><span class='definition'>xpTextDT</span> <span class='varid'>sc</span>-<a name="line-290"></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'>-&gt;</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-291"></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'>-&gt;</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-292"></a>	 <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='varid'>sc</span>-<a name="line-293"></a>	 <span class='layout'>}</span>-<a name="line-294"></a>    <span class='keyword'>where</span>-<a name="line-295"></a>    <span class='varid'>unpickleString</span> <span class='varid'>st</span>-<a name="line-296"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-297"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-298"></a>	  <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getText</span> <span class='varid'>t</span>-<a name="line-299"></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-300"></a>-<a name="line-301"></a><span class='comment'>-- | Pickle a possibly empty string into an XML node.</span>-<a name="line-302"></a><span class='comment'>--</span>-<a name="line-303"></a><span class='comment'>-- Must be used in all places, where empty strings are legal values.</span>-<a name="line-304"></a><span class='comment'>-- If the content of an element can be an empty string, this string disapears</span>-<a name="line-305"></a><span class='comment'>-- during storing the DOM into a document and reparse the document.</span>-<a name="line-306"></a><span class='comment'>-- So the empty text node becomes nothing, and the pickler must deliver an empty string,</span>-<a name="line-307"></a><span class='comment'>-- if there is no text node in the document.</span>-<a name="line-308"></a>-<a name="line-309"></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-310"></a><span class='definition'>xpText0</span>	<span class='keyglyph'>=</span> <span class='varid'>xpText0DT</span> <span class='varid'>scString1</span>-<a name="line-311"></a>-<a name="line-312"></a><span class='comment'>-- | Pickle a possibly empty string with a datatype description into an XML node.</span>-<a name="line-313"></a><span class='comment'>--</span>-<a name="line-314"></a><span class='comment'>-- Like 'xpText0' but with extra Parameter for datatype description as in 'xpTextDT'.</span>-<a name="line-315"></a>-<a name="line-316"></a><a name="xpText0DT"></a><span class='definition'>xpText0DT</span>	<span class='keyglyph'>::</span> <span class='conid'>Schema</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>String</span>-<a name="line-317"></a><span class='definition'>xpText0DT</span> <span class='varid'>sc</span>-<a name="line-318"></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-319"></a>    <span class='keyword'>where</span>-<a name="line-320"></a>    <span class='varid'>emptyToNothing</span> <span class='str'>""</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-321"></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-322"></a>-<a name="line-323"></a><span class='comment'>-- | Pickle an arbitrary value by applyling show during pickling</span>-<a name="line-324"></a><span class='comment'>-- and read during unpickling.</span>-<a name="line-325"></a><span class='comment'>--</span>-<a name="line-326"></a><span class='comment'>-- Real pickling is then done with 'xpText'.</span>-<a name="line-327"></a><span class='comment'>-- One of the most often used pimitive picklers. Applicable for all</span>-<a name="line-328"></a><span class='comment'>-- types which are instances of @Read@ and @Show@</span>-<a name="line-329"></a>-<a name="line-330"></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'>=&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-331"></a><span class='definition'>xpPrim</span>-<a name="line-332"></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-333"></a>    <span class='keyword'>where</span>-<a name="line-334"></a>    <span class='varid'>readMaybe</span>	<span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span>-<a name="line-335"></a>    <span class='varid'>readMaybe</span> <span class='varid'>str</span>-<a name="line-336"></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-337"></a>	<span class='keyword'>where</span>-<a name="line-338"></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-339"></a>	<span class='varid'>val</span> <span class='keyword'>_</span>        <span class='keyglyph'>=</span> <span class='conid'>Nothing</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><span class='comment'>-- | Pickle an XmlTree by just adding it</span>-<a name="line-344"></a><span class='comment'>--</span>-<a name="line-345"></a><span class='comment'>-- Usefull for components of type XmlTree in other data structures</span>-<a name="line-346"></a>-<a name="line-347"></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-348"></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'>-&gt;</span> <span class='varid'>addCont</span> <span class='varid'>s</span> <span class='varid'>st</span>-<a name="line-349"></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'>-&gt;</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-350"></a>	     <span class='layout'>,</span> <span class='varid'>theSchema</span>   <span class='keyglyph'>=</span> <span class='conid'>Any</span>-<a name="line-351"></a>	     <span class='layout'>}</span>-<a name="line-352"></a>    <span class='keyword'>where</span>-<a name="line-353"></a>    <span class='varid'>unpickleTree</span> <span class='varid'>st</span>-<a name="line-354"></a>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-355"></a>	  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-356"></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-357"></a>-<a name="line-358"></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-359"></a><span class='comment'>--</span>-<a name="line-360"></a><span class='comment'>-- This pickler should always combined with 'xpElem' for taking the whole contents of an element.</span>-<a name="line-361"></a>-<a name="line-362"></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-363"></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-364"></a>-<a name="line-365"></a><span class='comment'>-- | Pickle a string representing XML contents by inserting the tree representation into the XML document.</span>-<a name="line-366"></a><span class='comment'>--</span>-<a name="line-367"></a><span class='comment'>-- Unpickling is done by converting the contents with</span>-<a name="line-368"></a><span class='comment'>-- 'Text.XML.HXT.Arrow.Edit.xshowEscapeXml' into a string,</span>-<a name="line-369"></a><span class='comment'>-- this function will escape all XML special chars, such that pickling the value back becomes save.</span>-<a name="line-370"></a><span class='comment'>-- Pickling is done with 'Text.XML.HXT.Arrow.ReadDocument.xread'</span>-<a name="line-371"></a>-<a name="line-372"></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-373"></a><span class='definition'>xpXmlText</span>-<a name="line-374"></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-375"></a>    <span class='keyword'>where</span>-<a name="line-376"></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-377"></a>    <span class='varid'>readXML</span> <span class='keyglyph'>=</span> <span class='varid'>runLA</span> <span class='varid'>xread</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><span class='comment'>-- | Encoding of optional data by ignoring the Nothing case during pickling</span>-<a name="line-382"></a><span class='comment'>-- and relying on failure during unpickling to recompute the Nothing case</span>-<a name="line-383"></a><span class='comment'>--</span>-<a name="line-384"></a><span class='comment'>-- The default pickler for Maybe types</span>-<a name="line-385"></a>-<a name="line-386"></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'>-&gt;</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-387"></a><span class='definition'>xpOption</span> <span class='varid'>pa</span>-<a name="line-388"></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'>-&gt;</span>-<a name="line-389"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-390"></a>			   <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>-<a name="line-391"></a>			   <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</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-392"></a>			 <span class='layout'>)</span>-<a name="line-393"></a>-<a name="line-394"></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-395"></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-396"></a>-<a name="line-397"></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-398"></a>	 <span class='layout'>}</span>-<a name="line-399"></a>-<a name="line-400"></a><span class='comment'>-- | Optional conversion with default value</span>-<a name="line-401"></a><span class='comment'>--</span>-<a name="line-402"></a><span class='comment'>-- The default value is not encoded in the XML document,</span>-<a name="line-403"></a><span class='comment'>-- during unpickling the default value is inserted if the pickler fails</span>-<a name="line-404"></a>-<a name="line-405"></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'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-406"></a><span class='definition'>xpDefault</span> <span class='varid'>df</span>-<a name="line-407"></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-408"></a>	     <span class='layout'>,</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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-409"></a>	     <span class='layout'>)</span> <span class='varop'>.</span>-<a name="line-410"></a>      <span class='varid'>xpOption</span>-<a name="line-411"></a>-<a name="line-412"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-413"></a>-<a name="line-414"></a><span class='comment'>-- | Encoding of list values by pickling all list elements sequentially.</span>-<a name="line-415"></a><span class='comment'>--</span>-<a name="line-416"></a><span class='comment'>-- Unpickler relies on failure for detecting the end of the list.</span>-<a name="line-417"></a><span class='comment'>-- The standard pickler for lists. Can also be used in combination with 'xpWrap'</span>-<a name="line-418"></a><span class='comment'>-- for constructing set and map picklers</span>-<a name="line-419"></a>-<a name="line-420"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-421"></a><span class='definition'>xpList</span> <span class='varid'>pa</span>-<a name="line-422"></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'>-&gt;</span>-<a name="line-423"></a>			   <span class='keyword'>case</span> <span class='varid'>a</span> <span class='keyword'>of</span>-<a name="line-424"></a>			   <span class='conid'>[]</span>  <span class='keyglyph'>-&gt;</span> <span class='varid'>st</span>-<a name="line-425"></a>			   <span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span> <span class='keyglyph'>-&gt;</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-426"></a>			 <span class='layout'>)</span>-<a name="line-427"></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-428"></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-429"></a>	                   <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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-430"></a>-<a name="line-431"></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-432"></a>	 <span class='layout'>}</span>-<a name="line-433"></a>      <span class='keyword'>where</span>-<a name="line-434"></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'>-&gt;</span>-<a name="line-435"></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'>-&gt;</span>-<a name="line-436"></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-437"></a>-<a name="line-438"></a><span class='comment'>-- | Encoding of a none empty list of values</span>-<a name="line-439"></a><span class='comment'>--</span>-<a name="line-440"></a><span class='comment'>-- Attention: when calling this pickler with an empty list,</span>-<a name="line-441"></a><span class='comment'>-- an internal error \"head of empty list is raised\".</span>-<a name="line-442"></a>-<a name="line-443"></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'>-&gt;</span> <span class='conid'>PU</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-444"></a><span class='definition'>xpList1</span> <span class='varid'>pa</span>-<a name="line-445"></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'>-&gt;</span> <span class='varid'>x</span> <span class='conop'>:</span> <span class='varid'>xs</span>-<a name="line-446"></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'>-&gt;</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-447"></a>	       <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-448"></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-449"></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-450"></a>-<a name="line-451"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-452"></a>-<a name="line-453"></a><span class='comment'>-- | Standard pickler for maps</span>-<a name="line-454"></a><span class='comment'>--</span>-<a name="line-455"></a><span class='comment'>-- This pickler converts a map into a list of pairs.</span>-<a name="line-456"></a><span class='comment'>-- All key value pairs are mapped to an element with name (1.arg),</span>-<a name="line-457"></a><span class='comment'>-- the key is encoded as an attribute named by the 2. argument,</span>-<a name="line-458"></a><span class='comment'>-- the 3. arg is the pickler for the keys, the last one for the values</span>-<a name="line-459"></a>-<a name="line-460"></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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</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-461"></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-462"></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-463"></a>	     <span class='layout'>,</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>toList</span>-<a name="line-464"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-465"></a>      <span class='varid'>xpList</span> <span class='varop'>$</span>-<a name="line-466"></a>      <span class='varid'>xpElem</span> <span class='varid'>en</span> <span class='varop'>$</span>-<a name="line-467"></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-468"></a>-<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'>-- | Pickler for sum data types.</span>-<a name="line-473"></a><span class='comment'>--</span>-<a name="line-474"></a><span class='comment'>-- Every constructor is mapped to an index into the list of picklers.</span>-<a name="line-475"></a><span class='comment'>-- The index is used only during pickling, not during unpickling, there the 1. match is taken</span>-<a name="line-476"></a>-<a name="line-477"></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'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>PU</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-478"></a><span class='definition'>xpAlt</span> <span class='varid'>tag</span> <span class='varid'>ps</span>-<a name="line-479"></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'>-&gt;</span>-<a name="line-480"></a>			   <span class='keyword'>let</span>-<a name="line-481"></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-482"></a>			   <span class='keyword'>in</span>-<a name="line-483"></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-484"></a>			 <span class='layout'>)</span>-<a name="line-485"></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-486"></a>	                 <span class='layout'>(</span> <span class='keyword'>case</span> <span class='varid'>ps</span> <span class='keyword'>of</span>-<a name="line-487"></a>			   <span class='conid'>[]</span>     <span class='keyglyph'>-&gt;</span> <span class='varid'>xpZero</span>-<a name="line-488"></a>			   <span class='varid'>pa</span><span class='conop'>:</span><span class='varid'>ps1</span> <span class='keyglyph'>-&gt;</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-489"></a>			 <span class='layout'>)</span>-<a name="line-490"></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-491"></a>	 <span class='layout'>}</span>-<a name="line-492"></a>-<a name="line-493"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-494"></a>-<a name="line-495"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element</span>-<a name="line-496"></a><span class='comment'>--</span>-<a name="line-497"></a><span class='comment'>-- Extra parameter is the element name. THE pickler for constructing</span>-<a name="line-498"></a><span class='comment'>-- nested structures</span>-<a name="line-499"></a><span class='comment'>--</span>-<a name="line-500"></a><span class='comment'>-- Example:</span>-<a name="line-501"></a><span class='comment'>--</span>-<a name="line-502"></a><span class='comment'>-- &gt; xpElem "number" $ xpickle</span>-<a name="line-503"></a><span class='comment'>--</span>-<a name="line-504"></a><span class='comment'>-- will map an (42::Int) onto</span>-<a name="line-505"></a><span class='comment'>--</span>-<a name="line-506"></a><span class='comment'>-- &gt; &lt;number&gt;42&lt;/number&gt;</span>-<a name="line-507"></a>-<a name="line-508"></a><a name="xpElem"></a><span class='definition'>xpElem</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-509"></a><span class='definition'>xpElem</span> <span class='varid'>name</span> <span class='varid'>pa</span>-<a name="line-510"></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'>-&gt;</span>-<a name="line-511"></a>			   <span class='keyword'>let</span>-<a name="line-512"></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-513"></a>			   <span class='keyword'>in</span>-<a name="line-514"></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-515"></a>			 <span class='layout'>)</span>-<a name="line-516"></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'>-&gt;</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-517"></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-518"></a>	 <span class='layout'>}</span>-<a name="line-519"></a>      <span class='keyword'>where</span>-<a name="line-520"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>-<a name="line-521"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-522"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-523"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getElemName</span> <span class='varid'>t</span>-<a name="line-524"></a>	    <span class='keyword'>if</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span> <span class='varop'>/=</span> <span class='varid'>name</span>-<a name="line-525"></a>	       <span class='keyword'>then</span> <span class='varid'>fail</span> <span class='str'>"element name does not match"</span>-<a name="line-526"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-527"></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-528"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>-<a name="line-529"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</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-530"></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-531"></a>-<a name="line-532"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-533"></a>-<a name="line-534"></a><span class='comment'>-- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value</span>-<a name="line-535"></a><span class='comment'>--</span>-<a name="line-536"></a><span class='comment'>-- To make XML structures flexible but limit the number of different elements, it's sometimes</span>-<a name="line-537"></a><span class='comment'>-- useful to use a kind of generic element with a key value structure</span>-<a name="line-538"></a><span class='comment'>--</span>-<a name="line-539"></a><span class='comment'>-- Example:</span>-<a name="line-540"></a><span class='comment'>--</span>-<a name="line-541"></a><span class='comment'>-- &gt; &lt;attr name="key1"&gt;value1&lt;/attr&gt;</span>-<a name="line-542"></a><span class='comment'>-- &gt; &lt;attr name="key2"&gt;value2&lt;/attr&gt;</span>-<a name="line-543"></a><span class='comment'>-- &gt; &lt;attr name="key3"&gt;value3&lt;/attr&gt;</span>-<a name="line-544"></a><span class='comment'>--</span>-<a name="line-545"></a><span class='comment'>-- the Haskell datatype may look like this</span>-<a name="line-546"></a><span class='comment'>--</span>-<a name="line-547"></a><span class='comment'>-- &gt; type T = T { key1 :: Int ; key2 :: String ; key3 :: Double }</span>-<a name="line-548"></a><span class='comment'>--</span>-<a name="line-549"></a><span class='comment'>-- Then the picker for that type looks like this</span>-<a name="line-550"></a><span class='comment'>--</span>-<a name="line-551"></a><span class='comment'>-- &gt; xpT :: PU T</span>-<a name="line-552"></a><span class='comment'>-- &gt; xpT = xpWrap ( uncurry3 T, \ t -&gt; (key1 t, key2 t, key3 t) ) $</span>-<a name="line-553"></a><span class='comment'>-- &gt;       xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)</span>-<a name="line-554"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)</span>-<a name="line-555"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key3" $ xpickle)</span>-<a name="line-556"></a>-<a name="line-557"></a><a name="xpElemWithAttrValue"></a><span class='definition'>xpElemWithAttrValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-558"></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-559"></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'>-&gt;</span>-<a name="line-560"></a>			   <span class='keyword'>let</span>-<a name="line-561"></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-562"></a>			   <span class='keyword'>in</span>-<a name="line-563"></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-564"></a>			 <span class='layout'>)</span>-<a name="line-565"></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'>-&gt;</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-566"></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-567"></a>	 <span class='layout'>}</span>-<a name="line-568"></a>      <span class='keyword'>where</span>-<a name="line-569"></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-570"></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-571"></a>			       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-572"></a>			       <span class='varid'>hasName</span> <span class='varid'>name</span>-<a name="line-573"></a>			       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-574"></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-575"></a>			     <span class='layout'>)</span>-<a name="line-576"></a>      <span class='varid'>unpickleElement</span> <span class='varid'>st</span>-<a name="line-577"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-578"></a>	    <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>-<a name="line-579"></a>	    <span class='keyword'>if</span> <span class='varid'>noMatch</span> <span class='varid'>t</span>-<a name="line-580"></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-581"></a>	       <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-582"></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-583"></a>		    <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>getAttrl</span> <span class='varid'>t</span>-<a name="line-584"></a>		    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</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-585"></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-586"></a>-<a name="line-587"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-588"></a>-<a name="line-589"></a><span class='comment'>-- | Pickler for storing\/retreiving data into\/from an attribute value</span>-<a name="line-590"></a><span class='comment'>--</span>-<a name="line-591"></a><span class='comment'>-- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler</span>-<a name="line-592"></a>-<a name="line-593"></a><a name="xpAttr"></a><span class='definition'>xpAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-594"></a><span class='definition'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>pa</span>-<a name="line-595"></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'>-&gt;</span>-<a name="line-596"></a>			   <span class='keyword'>let</span>-<a name="line-597"></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-598"></a>			   <span class='keyword'>in</span>-<a name="line-599"></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='layout'>(</span><span class='varid'>mkName</span> <span class='varid'>name</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-600"></a>			 <span class='layout'>)</span>-<a name="line-601"></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'>-&gt;</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-602"></a>	 <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'>theSchema</span> <span class='varid'>pa</span><span class='layout'>)</span>-<a name="line-603"></a>	 <span class='layout'>}</span>-<a name="line-604"></a>      <span class='keyword'>where</span>-<a name="line-605"></a>      <span class='varid'>unpickleAttr</span> <span class='varid'>st</span>-<a name="line-606"></a>	  <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-607"></a>	    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getAtt</span> <span class='varid'>name</span> <span class='varid'>st</span>-<a name="line-608"></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-609"></a>	    <span class='varid'>res</span> <span class='keyglyph'>&lt;-</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-610"></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-611"></a>					<span class='comment'>-- attributes are selected by name</span>-<a name="line-612"></a>-<a name="line-613"></a><span class='comment'>-- | Add an optional attribute for an optional value (Maybe a).</span>-<a name="line-614"></a>-<a name="line-615"></a><a name="xpAttrImplied"></a><span class='definition'>xpAttrImplied</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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-616"></a><span class='definition'>xpAttrImplied</span> <span class='varid'>name</span> <span class='varid'>pa</span>-<a name="line-617"></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-618"></a>-<a name="line-619"></a><a name="xpAttrFixed"></a><span class='definition'>xpAttrFixed</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='conid'>()</span>-<a name="line-620"></a><span class='definition'>xpAttrFixed</span> <span class='varid'>name</span> <span class='varid'>val</span>-<a name="line-621"></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'>-&gt;</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-622"></a>		    <span class='layout'>,</span> <span class='varid'>const</span> <span class='varid'>val</span>-<a name="line-623"></a>		    <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-624"></a>	<span class='varid'>xpAttr</span> <span class='varid'>name</span> <span class='varid'>xpText</span>-<a name="line-625"></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-626"></a>-<a name="line-627"></a><span class='comment'>-- | Add an attribute with a fixed value.</span>-<a name="line-628"></a><span class='comment'>--</span>-<a name="line-629"></a><span class='comment'>-- Useful e.g. to declare namespaces. Is implemented by 'xpAttrFixed'</span>-<a name="line-630"></a>-<a name="line-631"></a><a name="xpAddFixedAttr"></a><span class='definition'>xpAddFixedAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-632"></a><span class='definition'>xpAddFixedAttr</span> <span class='varid'>name</span> <span class='varid'>val</span> <span class='varid'>pa</span>-<a name="line-633"></a>    <span class='keyglyph'>=</span> <span class='varid'>xpWrap</span> <span class='layout'>(</span> <span class='varid'>snd</span>-<a name="line-634"></a>	     <span class='layout'>,</span> <span class='conid'>(,)</span> <span class='conid'>()</span>-<a name="line-635"></a>	     <span class='layout'>)</span> <span class='varop'>$</span>-<a name="line-636"></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-637"></a>-<a name="line-638"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-639"></a>-<a name="line-640"></a><span class='comment'>-- | The class for overloading 'xpickle', the default pickler</span>-<a name="line-641"></a>-<a name="line-642"></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-643"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>::</span> <span class='conid'>PU</span> <span class='varid'>a</span>-<a name="line-644"></a>-<a name="line-645"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Int</span> <span class='keyword'>where</span>-<a name="line-646"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>-<a name="line-647"></a>-<a name="line-648"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>Integer</span> <span class='keyword'>where</span>-<a name="line-649"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpPrim</span>-<a name="line-650"></a>-<a name="line-651"></a><span class='comment'>{--<a name="line-652"></a>  no instance of XmlPickler Char-<a name="line-653"></a>  because then every text would be encoded-<a name="line-654"></a>  char by char, because of the instance for lists-<a name="line-655"></a>-<a name="line-656"></a>instance XmlPickler Char where-<a name="line-657"></a>    xpickle = xpPrim-<a name="line-658"></a>-}</span>-<a name="line-659"></a>-<a name="line-660"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='conid'>()</span> <span class='keyword'>where</span>-<a name="line-661"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpUnit</span>-<a name="line-662"></a>-<a name="line-663"></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'>=&gt;</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-664"></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-665"></a>-<a name="line-666"></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'>=&gt;</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-667"></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-668"></a>-<a name="line-669"></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'>=&gt;</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-670"></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-671"></a>-<a name="line-672"></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'>=&gt;</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-673"></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-674"></a>-<a name="line-675"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</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-676"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpList</span> <span class='varid'>xpickle</span>-<a name="line-677"></a>-<a name="line-678"></a><span class='keyword'>instance</span> <span class='conid'>XmlPickler</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</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-679"></a>    <span class='varid'>xpickle</span> <span class='keyglyph'>=</span> <span class='varid'>xpOption</span> <span class='varid'>xpickle</span>-<a name="line-680"></a>-<a name="line-681"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>St</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-84"></a>	      <span class='varid'>isAttr</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>b</span><span class='layout'>,</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>d</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>e</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>f</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>+<a name="line-297"></a>	  <span class='varid'>s</span> <span class='keyglyph'>&lt;-</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'>-&gt;</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'>=&gt;</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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>st</span>+<a name="line-390"></a>			   <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>k</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>PU</span> <span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-- &gt; 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'>-- &gt; &lt;number&gt;42&lt;/number&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</span> <span class='varid'>getCont</span> <span class='varid'>st</span>+<a name="line-522"></a>	    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;-</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'>-- &gt; 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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-- &gt; &lt;attr name="key1"&gt;value1&lt;/attr&gt;</span>+<a name="line-548"></a><span class='comment'>-- &gt; &lt;attr name="key2"&gt;value2&lt;/attr&gt;</span>+<a name="line-549"></a><span class='comment'>-- &gt; &lt;attr name="key3"&gt;value3&lt;/attr&gt;</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'>-- &gt; 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'>-- &gt; xpT :: PU T</span>+<a name="line-558"></a><span class='comment'>-- &gt; xpT = xpWrap ( uncurry3 T, \ t -&gt; (key1 t, key2 t, key3 t) ) $</span>+<a name="line-559"></a><span class='comment'>-- &gt;       xpTriple (xpElemWithAttrValue "attr" "name" "key1" $ xpickle)</span>+<a name="line-560"></a><span class='comment'>-- &gt;                (xpElemWithAttrValue "attr" "name" "key2" $ xpText0)</span>+<a name="line-561"></a><span class='comment'>-- &gt;                (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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-578"></a>			       <span class='varid'>hasName</span> <span class='varid'>name</span>+<a name="line-579"></a>			       <span class='varop'>&gt;&gt;&gt;</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'>&lt;-</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'>&lt;-</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'>&lt;-</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;-</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'>-- &gt; 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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>PU</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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-ProcessDocument.html view
@@ -18,9 +18,9 @@ <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-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-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>@@ -139,7 +139,7 @@ <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'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>traceString</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-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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&amp;&amp;&amp;</span>@@ -159,7 +159,7 @@ <a name="line-151"></a>	<span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>-<a name="line-154"></a>		  <span class='varid'>traceString</span> <span class='num'>1</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>src</span> <span class='keyglyph'>-&gt;</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-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'>-&gt;</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>
doc/hdoc/src/Text-XML-HXT-Arrow-ReadDocument.html view
@@ -117,264 +117,270 @@ <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_options_curl' : deprecated but for compatibility reasons still supported.-<a name="line-113"></a>                     More options passed to the curl binding.-<a name="line-114"></a>                     Instead of using this option to set a whole bunch of options at once for curl-<a name="line-115"></a>                     it is recomended to use the @curl-.*@ options syntax described below.-<a name="line-116"></a>-<a name="line-117"></a>- 'a_encoding' : default document encoding ('utf8', 'isoLatin1', 'usAscii', 'iso8859_2', ... , 'iso8859_16', ...).-<a name="line-118"></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-119"></a>-<a name="line-120"></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-121"></a>-<a name="line-122"></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-123"></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-124"></a>                 See 'Text.XML.HXT.IO.GetHTTPLibCurl.getCont' for examples. Currently most of the options concerning HTTP requests are implemented.+<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>All attributes not evaluated by readDocument are stored in the created document root node for easy access of the various-<a name="line-127"></a>options in e.g. the input\/output modules-<a name="line-128"></a>-<a name="line-129"></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-130"></a>-<a name="line-131"></a>examples:+<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>&gt; readDocument [ ] "test.xml"+<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>reads and validates a document \"test.xml\", no namespace propagation, only canonicalization is performed +<a name="line-135"></a>examples: <a name="line-136"></a>-<a name="line-137"></a>&gt; readDocument [ (a_validate, "0")-<a name="line-138"></a>&gt;              , (a_encoding, isoLatin1)-<a name="line-139"></a>&gt;              , (a_parse_by_mimetype, "1")-<a name="line-140"></a>&gt;              ] "<a href="http://localhost/test.php">http://localhost/test.php</a>"-<a name="line-141"></a>-<a name="line-142"></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-143"></a>-<a name="line-144"></a>-<a name="line-145"></a>&gt; readDocument [ (a_parse_html, "1")-<a name="line-146"></a>&gt;              , (a_encoding, isoLatin1)-<a name="line-147"></a>&gt;              ] ""+<a name="line-137"></a>&gt; 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>&gt; readDocument [ (a_validate, "0")+<a name="line-142"></a>&gt;              , (a_encoding, isoLatin1)+<a name="line-143"></a>&gt;              , (a_parse_by_mimetype, "1")+<a name="line-144"></a>&gt;              ] "<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>reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',-<a name="line-150"></a>parsing is done with tagsoup parser-<a name="line-151"></a>-<a name="line-152"></a>&gt; readDocument [ (a_encoding, isoLatin1)-<a name="line-153"></a>&gt;              , (a_mime_type,    "/etc/mime.types")-<a name="line-154"></a>&gt;              , (a_tagsoup,    "1")-<a name="line-155"></a>&gt;              ] "test.svg"-<a name="line-156"></a>-<a name="line-157"></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-158"></a>parsing is done with the lightweight tagsoup parser, which implies no validation.-<a name="line-159"></a>-<a name="line-160"></a>&gt; readDocument [ (a_parse_html,     "1")-<a name="line-161"></a>&gt;              , (a_proxy,          "www-cache:3128")-<a name="line-162"></a>&gt;              , (a_curl,           "1")-<a name="line-163"></a>&gt;              , (a_issue_warnings, "0")-<a name="line-164"></a>&gt;              ] "<a href="http://www.haskell.org/">http://www.haskell.org/</a>"-<a name="line-165"></a>-<a name="line-166"></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-167"></a>-<a name="line-168"></a>&gt; readDocument [ (a_validate,          "1")-<a name="line-169"></a>&gt;              , (a_check_namespace,   "1")-<a name="line-170"></a>&gt;              , (a_remove_whitespace, "1")-<a name="line-171"></a>&gt;              , (a_trace,             "2")-<a name="line-172"></a>&gt;              ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>"-<a name="line-173"></a>-<a name="line-174"></a>read w3c home page (xhtml), validate and check namespaces, remove whitespace between tags, trace activities with level 2-<a name="line-175"></a>-<a name="line-176"></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-177"></a>-}</span>+<a name="line-149"></a>&gt; readDocument [ (a_parse_html, "1")+<a name="line-150"></a>&gt;              , (a_encoding, isoLatin1)+<a name="line-151"></a>&gt;              ] ""+<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>&gt; readDocument [ (a_encoding, isoLatin1)+<a name="line-157"></a>&gt;              , (a_mime_type,    "/etc/mime.types")+<a name="line-158"></a>&gt;              , (a_tagsoup,      "1")+<a name="line-159"></a>&gt;              , (a_strict_input, "1")+<a name="line-160"></a>&gt;              ] "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>&gt; readDocument [ (a_parse_html,     "1")+<a name="line-166"></a>&gt;              , (a_proxy,          "www-cache:3128")+<a name="line-167"></a>&gt;              , (a_curl,           "1")+<a name="line-168"></a>&gt;              , (a_issue_warnings, "0")+<a name="line-169"></a>&gt;              ] "<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>&gt; readDocument [ (a_validate,          "1")+<a name="line-174"></a>&gt;              , (a_check_namespace,   "1")+<a name="line-175"></a>&gt;              , (a_remove_whitespace, "1")+<a name="line-176"></a>&gt;              , (a_trace,             "2")+<a name="line-177"></a>&gt;              ] "<a href="http://www.w3c.org/">http://www.w3c.org/</a>" <a name="line-178"></a>-<a name="line-179"></a><a name="readDocument"></a><span class='definition'>readDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-180"></a><span class='definition'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>src</span>-<a name="line-181"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceLevel</span>-<a name="line-182"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-183"></a>      <span class='varid'>addInputOptionsToSystemState</span>-<a name="line-184"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-185"></a>      <span class='varid'>getDocumentContents</span> <span class='varid'>options</span> <span class='varid'>src</span>-<a name="line-186"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-187"></a>      <span class='layout'>(</span> <span class='varid'>processDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getMimeType</span> <span class='layout'>)</span>-<a name="line-188"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-189"></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-190"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-191"></a>      <span class='varid'>traceSource</span>-<a name="line-192"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-193"></a>      <span class='varid'>traceTree</span>-<a name="line-194"></a>    <span class='keyword'>where</span>-<a name="line-195"></a>    <span class='varid'>options</span>-<a name="line-196"></a> 	<span class='keyglyph'>=</span> <span class='varid'>addEntries</span> <span class='varid'>userOptions</span> <span class='varid'>defaultOptions</span>-<a name="line-197"></a>-<a name="line-198"></a>    <span class='varid'>defaultOptions</span>-<a name="line-199"></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-200"></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-201"></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-202"></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-203"></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-204"></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-205"></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-206"></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-207"></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-208"></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-209"></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-210"></a>	  <span class='keyglyph'>]</span>-<a name="line-211"></a>-<a name="line-212"></a>    <span class='varid'>traceLevel</span>-<a name="line-213"></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-214"></a>-<a name="line-215"></a>    <span class='varid'>addInputOptionsToSystemState</span>-<a name="line-216"></a>	<span class='keyglyph'>=</span> <span class='varid'>addSysOptions</span> <span class='varid'>options</span>-<a name="line-217"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-218"></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-219"></a>	  <span class='keyword'>where</span>-<a name="line-220"></a>	  <span class='varid'>addSysOptions</span>-<a name="line-221"></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-222"></a>	  <span class='varid'>loadMineTypes</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-223"></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-224"></a>-<a name="line-225"></a>    <span class='varid'>getMimeType</span>-<a name="line-226"></a>	<span class='keyglyph'>=</span> <span class='varid'>getAttrValue</span> <span class='varid'>transferMimeType</span> <span class='varop'>&gt;&gt;^</span> <span class='varid'>map</span> <span class='varid'>toLower</span>-<a name="line-227"></a>-<a name="line-228"></a>    <span class='varid'>processDoc</span> <span class='varid'>mimeType</span>-<a name="line-229"></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-230"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-231"></a>	  <span class='varid'>parse</span>-<a name="line-232"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-233"></a>	  <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>isXmlOrHtml</span>-<a name="line-234"></a>	    <span class='keyword'>then</span> <span class='layout'>(</span> <span class='varid'>checknamespaces</span>-<a name="line-235"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-236"></a>		   <span class='varid'>canonicalize</span>-<a name="line-237"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-238"></a>		   <span class='varid'>whitespace</span>-<a name="line-239"></a>		   <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-240"></a>		   <span class='varid'>relax</span>-<a name="line-241"></a>		 <span class='layout'>)</span>-<a name="line-242"></a>	    <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-243"></a>	  <span class='layout'>)</span>-<a name="line-244"></a>	<span class='keyword'>where</span>-<a name="line-245"></a>	<span class='varid'>parse</span>-<a name="line-246"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isHtml</span>-<a name="line-247"></a>	      <span class='varop'>||</span> -<a name="line-248"></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-249"></a>					  <span class='varid'>withTagSoup</span>-<a name="line-250"></a>					  <span class='varid'>withNamespaces</span>-<a name="line-251"></a>					  <span class='varid'>issueW</span>-<a name="line-252"></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'>&amp;&amp;</span> <span class='varid'>preserveCmt</span><span class='layout'>)</span>-<a name="line-253"></a>					  <span class='varid'>removeWS</span>-<a name="line-254"></a>					  <span class='varid'>isHtml</span>-<a name="line-255"></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-256"></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-257"></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-258"></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-259"></a>	<span class='varid'>checknamespaces</span>-<a name="line-260"></a>	    <span class='keyglyph'>|</span> <span class='layout'>(</span><span class='varid'>withNamespaces</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>withTagSoup</span><span class='layout'>)</span>-<a name="line-261"></a>	      <span class='varop'>||</span>-<a name="line-262"></a>	      <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>propagateAndValidateNamespaces</span>-<a name="line-263"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-264"></a>	<span class='varid'>canonicalize</span>-<a name="line-265"></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-266"></a>	    <span class='keyglyph'>|</span> <span class='varid'>validateWithRelax</span>		<span class='keyglyph'>=</span> <span class='varid'>canonicalizeAllNodes</span>-<a name="line-267"></a>	    <span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_canonicalize</span>-<a name="line-268"></a>	      <span class='varop'>&amp;&amp;</span>-<a name="line-269"></a>	      <span class='varid'>preserveCmt</span>			<span class='keyglyph'>=</span> <span class='varid'>canonicalizeForXPath</span>-<a name="line-270"></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-271"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-272"></a>	<span class='varid'>relax</span>-<a name="line-273"></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-274"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-275"></a>	<span class='varid'>whitespace</span>-<a name="line-276"></a>	    <span class='keyglyph'>|</span> <span class='varid'>removeWS</span>-<a name="line-277"></a>	      <span class='varop'>&amp;&amp;</span>-<a name="line-278"></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-279"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-280"></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-281"></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-282"></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-283"></a>	<span class='varid'>isHtml</span>			<span class='keyglyph'>=</span> <span class='varid'>parseHtml</span>				<span class='comment'>-- force HTML</span>-<a name="line-284"></a>				  <span class='varop'>||</span>-<a name="line-285"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isHtmlMimeType</span> <span class='varid'>mimeType</span> <span class='layout'>)</span>-<a name="line-286"></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'>&amp;&amp;</span> <span class='varid'>not</span> <span class='varid'>parseHtml</span> <span class='layout'>)</span>-<a name="line-287"></a>				  <span class='varop'>||</span>-<a name="line-288"></a>				  <span class='layout'>(</span> <span class='varid'>parseByMimeType</span>-<a name="line-289"></a>				    <span class='varop'>&amp;&amp;</span>-<a name="line-290"></a>				    <span class='layout'>(</span> <span class='varid'>isXmlMimeType</span> <span class='varid'>mimeType</span>-<a name="line-291"></a>				      <span class='varop'>||</span>-<a name="line-292"></a>				      <span class='varid'>null</span> <span class='varid'>mimeType</span>-<a name="line-293"></a>				    <span class='layout'>)</span>					<span class='comment'>-- mime type is XML or not known</span>-<a name="line-294"></a>				  <span class='layout'>)</span>-<a name="line-295"></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-296"></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-297"></a>	<span class='varid'>validate</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_validate</span>-<a name="line-298"></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-299"></a>	<span class='varid'>withTagSoup</span>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_tagsoup</span>-<a name="line-300"></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-301"></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-302"></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-303"></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-304"></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-305"></a>-<a name="line-306"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-307"></a>-<a name="line-308"></a><span class='comment'>-- |</span>-<a name="line-309"></a><span class='comment'>-- the arrow version of 'readDocument', the arrow input is the source URI</span>-<a name="line-310"></a>-<a name="line-311"></a><a name="readFromDocument"></a><span class='definition'>readFromDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-312"></a><span class='definition'>readFromDocument</span> <span class='varid'>userOptions</span>-<a name="line-313"></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'>-&gt;</span> <span class='varid'>readDocument</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-188"></a>      <span class='varid'>addInputOptionsToSystemState</span>+<a name="line-189"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-192"></a>      <span class='layout'>(</span> <span class='varid'>processDoc</span> <span class='varop'>$&lt;</span> <span class='varid'>getMimeType</span> <span class='layout'>)</span>+<a name="line-193"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-196"></a>      <span class='varid'>traceSource</span>+<a name="line-197"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;^</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'>&gt;&gt;&gt;</span>+<a name="line-237"></a>	  <span class='varid'>parse</span>+<a name="line-238"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-242"></a>		   <span class='varid'>canonicalize</span>+<a name="line-243"></a>		   <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-244"></a>		   <span class='varid'>whitespace</span>+<a name="line-245"></a>		   <span class='varop'>&gt;&gt;&gt;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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><span class='comment'>-- |</span>-<a name="line-318"></a><span class='comment'>-- read a document that is stored in a normal Haskell String</span>-<a name="line-319"></a><span class='comment'>--</span>-<a name="line-320"></a><span class='comment'>-- the same function as readDocument, but the parameter forms the input.</span>-<a name="line-321"></a><span class='comment'>-- All options available for 'readDocument' are applicable for readString.</span>-<a name="line-322"></a><span class='comment'>--</span>-<a name="line-323"></a><span class='comment'>-- Default encoding: No encoding is done, the String argument is taken as Unicode string</span>-<a name="line-324"></a>-<a name="line-325"></a><a name="readString"></a><span class='definition'>readString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-326"></a><span class='definition'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>content</span>-<a name="line-327"></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-328"></a>-<a name="line-329"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>-&gt;</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><span class='comment'>-- |</span>-<a name="line-332"></a><span class='comment'>-- the arrow version of 'readString', the arrow input is the source URI</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="readFromString"></a><span class='definition'>readFromString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-335"></a><span class='definition'>readFromString</span> <span class='varid'>userOptions</span>-<a name="line-336"></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'>-&gt;</span> <span class='varid'>readString</span> <span class='varid'>userOptions</span> <span class='varid'>s</span> <span class='layout'>)</span>-<a name="line-337"></a>-<a name="line-338"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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><span class='comment'>-- |</span>-<a name="line-341"></a><span class='comment'>-- parse a string as HTML content, substitute all HTML entity refs and canonicalize tree</span>-<a name="line-342"></a><span class='comment'>-- (substitute char refs, ...). Errors are ignored.</span>-<a name="line-343"></a><span class='comment'>-- </span>-<a name="line-344"></a><span class='comment'>-- A simpler version of 'readFromString' but with less functionality.</span>-<a name="line-345"></a><span class='comment'>-- Does not run in the IO monad</span>-<a name="line-346"></a>-<a name="line-347"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-348"></a><span class='definition'>hread</span>-<a name="line-349"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseHtmlContent</span>-<a name="line-350"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-351"></a>      <span class='varid'>substHtmlEntityRefs</span>-<a name="line-352"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-353"></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-354"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-355"></a>      <span class='varid'>canonicalizeContents</span>-<a name="line-356"></a>-<a name="line-357"></a><span class='comment'>-- |</span>-<a name="line-358"></a><span class='comment'>-- parse a string as XML content, substitute all predefined XML entity refs and canonicalize tree</span>-<a name="line-359"></a><span class='comment'>-- (substitute char refs, ...)</span>-<a name="line-360"></a>-<a name="line-361"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>XmlTree</span>-<a name="line-362"></a><span class='definition'>xread</span>-<a name="line-363"></a>    <span class='keyglyph'>=</span> <span class='varid'>parseXmlContent</span>-<a name="line-364"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-365"></a>      <span class='varid'>substXmlEntityRefs</span>-<a name="line-366"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-367"></a>      <span class='varid'>canonicalizeContents</span>-<a name="line-368"></a>-<a name="line-369"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-370"></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'>-&gt;</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'>-&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-357"></a>      <span class='varid'>substHtmlEntityRefs</span>+<a name="line-358"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-371"></a>      <span class='varid'>substXmlEntityRefs</span>+<a name="line-372"></a>      <span class='varop'>&gt;&gt;&gt;</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 view
@@ -10,197 +10,208 @@ <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 Uwe Schmidt+<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>   Version    : $Id: WriteDocument.hs,v 1.8 2006/11/09 20:27:42 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>Compound arrow for writing XML documents-<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'>WriteDocument</span>-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>writeDocument</span>-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>writeDocumentToString</span>-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>prepareContents</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>				<span class='comment'>-- arrow classes</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'>ArrowList</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'>ArrowIf</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'>ArrowTree</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'>indentDoc</span>-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>removeDocWhiteSpace</span>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>haskellRepOfXmlDoc</span>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>escapeXmlDoc</span>-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>escapeHtmlDoc</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'>Text</span><span 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-45"></a>    <span class='layout'>(</span> <span class='varid'>putXmlDocument</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>encodeDocument</span>-<a name="line-47"></a>    <span class='layout'>)</span>+<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'>-- ------------------------------------------------------------</span>-<a name="line-50"></a>-<a name="line-51"></a><span class='comment'>{- |-<a name="line-52"></a>the main filter for writing documents+<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>this filter can be configured by an option list like 'Text.XML.HXT.Arrow.ReadDocument.readDocument'+<a name="line-54"></a>usage: @ writeDocument optionList destination @ <a name="line-55"></a>-<a name="line-56"></a>usage: @ writeDocument optionList destination @+<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>if @ destination @ is the empty string or \"-\", stdout is used as output device+<a name="line-58"></a>available options are <a name="line-59"></a>-<a name="line-60"></a>available options are+<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_indent' : indent document for readability, (default: no indentation)+<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_remove_whitespace' : remove all redundant whitespace for shorten text (default: no removal)+<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_encoding' : encoding of document, default is 'a_encoding' or 'utf8'-<a name="line-67"></a>-<a name="line-68"></a>- 'a_output_xml' : (default) issue XML: quote special XML chars \&gt;,\&lt;,\",\',&amp; where neccessary-<a name="line-69"></a>                   add XML processing instruction-<a name="line-70"></a>                   and encode document with respect to 'a_output_encoding',-<a name="line-71"></a>                   if explicitly switched of, the plain text is issued, this is useful-<a name="line-72"></a>                   for non XML output, e.g. generated Haskell code, LaTex, Java, ...+<a name="line-66"></a>- 'a_output_xml' : (default) issue XML: quote special XML chars \&gt;,\&lt;,\",\',&amp; 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_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars-<a name="line-75"></a>-<a name="line-76"></a>- 'a_no_xml_pi' : suppress generation of \&lt;?xml ... ?\&gt; processing instruction-<a name="line-77"></a>-<a name="line-78"></a>- 'a_show_tree' : show tree representation of document (for debugging)-<a name="line-79"></a>-<a name="line-80"></a>- 'a_show_haskell' : show Haskell representaion of document (for debugging)-<a name="line-81"></a>-<a name="line-82"></a> a minimal main program for copying a document-<a name="line-83"></a> has the following structure:+<a name="line-74"></a>- 'a_no_empty_elements' : do not write the short form \&lt;name .../\&gt; 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 \&lt;script href=\"...\"/\&gt;, 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 \&lt;?xml ... ?\&gt; 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>&gt; module Main-<a name="line-86"></a>&gt; where-<a name="line-87"></a>&gt; -<a name="line-88"></a>&gt; import Text.XML.HXT.Arrow-<a name="line-89"></a>&gt; -<a name="line-90"></a>&gt; main        :: IO ()-<a name="line-91"></a>&gt; main-<a name="line-92"></a>&gt;     = do-<a name="line-93"></a>&gt;       runX ( readDocument  [] "hello.xml"-<a name="line-94"></a>&gt;              &gt;&gt;&gt;-<a name="line-95"></a>&gt;              writeDocument [] "bye.xml"-<a name="line-96"></a>&gt;            )-<a name="line-97"></a>&gt;       return ()-<a name="line-98"></a>-<a name="line-99"></a>an example for copying a document to standard output with tracing and evaluation of-<a name="line-100"></a>error code is:+<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>&gt; module Main+<a name="line-89"></a>&gt; where+<a name="line-90"></a>&gt; +<a name="line-91"></a>&gt; import Text.XML.HXT.Arrow+<a name="line-92"></a>&gt; +<a name="line-93"></a>&gt; main        :: IO ()+<a name="line-94"></a>&gt; main+<a name="line-95"></a>&gt;     = do+<a name="line-96"></a>&gt;       runX ( readDocument  [] "hello.xml"+<a name="line-97"></a>&gt;              &gt;&gt;&gt;+<a name="line-98"></a>&gt;              writeDocument [] "bye.xml"+<a name="line-99"></a>&gt;            )+<a name="line-100"></a>&gt;       return () <a name="line-101"></a>-<a name="line-102"></a>&gt; module Main-<a name="line-103"></a>&gt; where-<a name="line-104"></a>&gt; -<a name="line-105"></a>&gt; import Text.XML.HXT.Arrow-<a name="line-106"></a>&gt; import System.Exit+<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>&gt; module Main+<a name="line-106"></a>&gt; where <a name="line-107"></a>&gt; -<a name="line-108"></a>&gt; main        :: IO ()-<a name="line-109"></a>&gt; main-<a name="line-110"></a>&gt;     = do-<a name="line-111"></a>&gt;       [rc] &lt;- runX ( readDocument  [ (a_trace, "1")-<a name="line-112"></a>&gt;                                    ] "hello.xml"-<a name="line-113"></a>&gt;                      &gt;&gt;&gt;-<a name="line-114"></a>&gt;                      writeDocument [ (a_output_encoding, isoLatin1)-<a name="line-115"></a>&gt;                                    ] "-"        -- output to stdout+<a name="line-108"></a>&gt; import Text.XML.HXT.Arrow+<a name="line-109"></a>&gt; import System.Exit+<a name="line-110"></a>&gt; +<a name="line-111"></a>&gt; main        :: IO ()+<a name="line-112"></a>&gt; main+<a name="line-113"></a>&gt;     = do+<a name="line-114"></a>&gt;       [rc] &lt;- runX ( readDocument  [ (a_trace, "1")+<a name="line-115"></a>&gt;                                    ] "hello.xml" <a name="line-116"></a>&gt;                      &gt;&gt;&gt;-<a name="line-117"></a>&gt;                      getErrStatus-<a name="line-118"></a>&gt;                    )-<a name="line-119"></a>&gt;       exitWith ( if rc &gt;= c_err-<a name="line-120"></a>&gt;                  then ExitFailure 1-<a name="line-121"></a>&gt;                  else ExitSuccess-<a name="line-122"></a>&gt;                )-<a name="line-123"></a>-}</span>-<a name="line-124"></a>-<a name="line-125"></a><a name="writeDocument"></a><span class='definition'>writeDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-126"></a><span class='definition'>writeDocument</span> <span class='varid'>userOptions</span> <span class='varid'>dst</span>-<a name="line-127"></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-128"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-129"></a>		<span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-130"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-131"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>-<a name="line-132"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-133"></a>		<span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='str'>"writeDocument: finished"</span>-<a name="line-134"></a>	      <span class='layout'>)</span>-<a name="line-135"></a>      <span class='varop'>`when`</span>-<a name="line-136"></a>      <span class='varid'>documentStatusOk</span>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- |</span>-<a name="line-141"></a><span class='comment'>-- Convert a document into a string. Formating is done the same way</span>-<a name="line-142"></a><span class='comment'>-- and with the same options as in 'writeDocument'.</span>-<a name="line-143"></a>-<a name="line-144"></a><a name="writeDocumentToString"></a><span class='definition'>writeDocumentToString</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span>  <span class='keyglyph'>-&gt;</span>  <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-145"></a><span class='definition'>writeDocumentToString</span> <span class='varid'>userOptions</span>-<a name="line-146"></a>    <span class='keyglyph'>=</span> <span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-147"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-148"></a>      <span class='varid'>xshow</span> <span class='varid'>getChildren</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'>-- |</span>-<a name="line-153"></a><span class='comment'>-- indent and format output</span>+<a name="line-117"></a>&gt;                      writeDocument [ (a_output_encoding, isoLatin1)+<a name="line-118"></a>&gt;                                    ] "-"        -- output to stdout+<a name="line-119"></a>&gt;                      &gt;&gt;&gt;+<a name="line-120"></a>&gt;                      getErrStatus+<a name="line-121"></a>&gt;                    )+<a name="line-122"></a>&gt;       exitWith ( if rc &gt;= c_err+<a name="line-123"></a>&gt;                  then ExitFailure 1+<a name="line-124"></a>&gt;                  else ExitSuccess+<a name="line-125"></a>&gt;                )+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-132"></a>		<span class='varid'>prepareContents</span> <span class='varid'>userOptions</span>+<a name="line-133"></a>		<span class='varop'>&gt;&gt;&gt;</span>+<a name="line-134"></a>		<span class='varid'>putXmlDocument</span> <span class='varid'>dst</span>+<a name="line-135"></a>		<span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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><a name="prepareContents"></a><span class='definition'>prepareContents</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-156"></a><span class='definition'>prepareContents</span> <span class='varid'>userOptions</span>-<a name="line-157"></a>    <span class='keyglyph'>=</span> <span class='varid'>indent</span>-<a name="line-158"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-159"></a>      <span class='varid'>format</span>-<a name="line-160"></a>    <span class='keyword'>where</span>-<a name="line-161"></a>    <span class='varid'>indent</span>-<a name="line-162"></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-163"></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-164"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-165"></a>-<a name="line-166"></a>    <span class='varid'>format</span>-<a name="line-167"></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-168"></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-169"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_html</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeHtmlDoc</span>			<span class='comment'>-- escape al XML and HTML chars &gt;= 128</span>-<a name="line-170"></a>					  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-171"></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-172"></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-173"></a>	<span class='keyglyph'>|</span> <span class='varid'>hasOption</span> <span class='varid'>a_output_xml</span>	<span class='keyglyph'>=</span> <span class='varid'>escapeXmlDoc</span>			<span class='comment'>-- escape lt, gt, amp, quot, </span>-<a name="line-174"></a>					  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-175"></a>					  <span class='varid'>encodeDocument</span>		<span class='comment'>-- convert doc into text with respect to output encoding</span>-<a name="line-176"></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-177"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-178"></a>-<a name="line-179"></a>    <span class='varid'>suppressXmlPi</span>							<span class='comment'>-- remove &lt;?xml ... ?&gt; when set</span>-<a name="line-180"></a>	<span class='keyglyph'>=</span> <span class='varid'>hasOption</span> <span class='varid'>a_no_xml_pi</span>-<a name="line-181"></a>-<a name="line-182"></a>    <span class='varid'>hasOption</span> <span class='varid'>n</span>-<a name="line-183"></a>	<span class='keyglyph'>=</span> <span class='varid'>optionIsSet</span> <span class='varid'>n</span> <span class='varid'>options</span>-<a name="line-184"></a>-<a name="line-185"></a>    <span class='varid'>options</span> <span class='keyglyph'>=</span> <span class='varid'>addEntries</span> -<a name="line-186"></a>              <span class='varid'>userOptions</span> -<a name="line-187"></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-188"></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-189"></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-190"></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-191"></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-192"></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-193"></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-194"></a>	      <span class='keyglyph'>]</span>-<a name="line-195"></a>-<a name="line-196"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-177"></a>					  <span class='varid'>escapeHtmlDoc</span>			<span class='comment'>-- escape al XML and HTML chars &gt;= 128</span>+<a name="line-178"></a>					  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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 &lt;?xml ... ?&gt; 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 view
@@ -91,7 +91,7 @@ <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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>+<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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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>@@ -114,7 +114,7 @@ <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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>+<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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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>@@ -130,7 +130,7 @@ <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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlNodeSet</span>+<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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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>@@ -234,7 +234,7 @@ <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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>+<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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>:-&gt;</span> <span class='varid'>processChildren</span> <span class='varid'>pns</span>
doc/hdoc/src/Text-XML-HXT-Arrow-XPathSimple.html view
@@ -50,472 +50,468 @@ <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='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Monad</span>-<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-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'>Text</span><span class='varop'>.</span><span class='conid'>ParserCombinators</span><span class='varop'>.</span><span class='conid'>Parsec</span>-<a name="line-51"></a>    <span class='layout'>(</span> <span class='varid'>runParser</span> <span class='layout'>)</span>-<a name="line-52"></a>-<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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</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'>XmlArrow</span>-<a name="line-55"></a>-<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'>Arrow</span><span class='varop'>.</span><span class='conid'>XPath</span> <span class='keyword'>as</span> <span class='conid'>XP</span>-<a name="line-57"></a>    <span class='layout'>(</span> <span class='varid'>getXPathTreesWithNsEnv</span>-<a name="line-58"></a>    <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'>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='keyword'>import</span> <span class='conid'>Text</span><span 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-65"></a>    <span class='layout'>(</span> <span class='conid'>XPNumber</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'>Expr</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'>Op</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'>XPathNode</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'>LocationPath</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'>Path</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'>XStep</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-72"></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-73"></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-74"></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-75"></a>    <span class='layout'>)</span>+<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='keyword'>import</span> <span class='conid'>Text</span><span 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-78"></a>    <span class='layout'>(</span> <span class='varid'>parseXPath</span>-<a name="line-79"></a>    <span class='layout'>,</span> <span class='varid'>parseNumber</span>-<a name="line-80"></a>    <span class='layout'>)</span>+<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><span class='comment'>-- ----------------------------------------</span>-<a name="line-83"></a>-<a name="line-84"></a><span class='comment'>-- |</span>-<a name="line-85"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDoc'</span>-<a name="line-86"></a>-<a name="line-87"></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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-88"></a><span class='definition'>getXPathTreesInDoc</span>			<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesInDocWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-89"></a>-<a name="line-90"></a><span class='comment'>-- |</span>-<a name="line-91"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv'</span>-<a name="line-92"></a>-<a name="line-93"></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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-94"></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-95"></a>					  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-96"></a>					  <span class='varid'>tryGetXPath</span> <span class='varid'>env</span> <span class='varid'>query</span>-<a name="line-97"></a><span class='comment'>-- |</span>-<a name="line-98"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTrees'</span>-<a name="line-99"></a>-<a name="line-100"></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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-101"></a><span class='definition'>getXPathTrees</span>				<span class='keyglyph'>=</span> <span class='varid'>getXPathTreesWithNsEnv</span> <span class='conid'>[]</span>-<a name="line-102"></a>-<a name="line-103"></a><span class='comment'>-- |</span>-<a name="line-104"></a><span class='comment'>-- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv'</span>-<a name="line-105"></a>-<a name="line-106"></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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-107"></a><span class='definition'>getXPathTreesWithNsEnv</span>			<span class='keyglyph'>=</span> <span class='varid'>tryGetXPath</span>-<a name="line-108"></a>-<a name="line-109"></a>-<a name="line-110"></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'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-111"></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-112"></a>					    <span class='varop'>&amp;&amp;&amp;</span>-<a name="line-113"></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-114"></a>					  <span class='layout'>)</span>-<a name="line-115"></a>                                          <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-116"></a>					  <span class='varid'>ifA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isError</span><span class='layout'>)</span>-<a name="line-117"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>snd</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>-<a name="line-118"></a>					      <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>fst</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>unlistA</span><span class='layout'>)</span>-<a name="line-119"></a>-<a name="line-120"></a><span class='comment'>-- |</span>-<a name="line-121"></a><span class='comment'>-- The xpath interpreter for simple xpath expressions.</span>-<a name="line-122"></a><span class='comment'>--</span>-<a name="line-123"></a><span class='comment'>-- In case of a too complicated or illegal xpath expression an error</span>-<a name="line-124"></a><span class='comment'>-- node is returned, else the list of selected XML trees</span>+<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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span> <span class='layout'>(</span><span class='varid'>unlistA</span> <span class='varop'>&gt;&gt;.</span> <span class='varid'>take</span> <span class='num'>1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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="getXPathTreesWithNsEnvSimple"></a><span class='definition'>getXPathTreesWithNsEnvSimple</span>		<span class='keyglyph'>::</span> <span class='conid'>ArrowXml</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-127"></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='varid'>env</span> <span class='varid'>s</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="getXP"></a><span class='definition'>getXP</span>			<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-132"></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-133"></a>				  <span class='varop'>.</span>-<a name="line-134"></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-135"></a>				  <span class='varop'>.</span>-<a name="line-136"></a>				  <span class='varid'>show</span> <span class='varop'>.</span> <span class='varid'>show</span>-<a name="line-137"></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-138"></a>						     <span class='str'>" too complicated for simple arrow evaluation"</span>-<a name="line-139"></a>						   <span class='layout'>)</span>-<a name="line-140"></a>					      <span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>compXPath</span>-<a name="line-141"></a>				   <span class='layout'>)</span>-<a name="line-142"></a>			  <span class='varop'>.</span>-<a name="line-143"></a>			  <span class='varid'>runParser</span> <span class='varid'>parseXPath</span> <span class='varid'>env</span> <span class='str'>""</span>-<a name="line-144"></a>			  <span class='varop'>$</span> <span class='varid'>s</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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 -&gt; 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><span class='comment'>-- ----------------------------------------</span>-<a name="line-147"></a>-<a name="line-148"></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-149"></a>-<a name="line-150"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-151"></a><span class='definition'>mk</span>				<span class='keyglyph'>=</span> <span class='conid'>Just</span>-<a name="line-152"></a>-<a name="line-153"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-154"></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-155"></a>-<a name="line-156"></a><a name=">>>>"></a><span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-157"></a><span class='conid'>Nothing</span>   <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>a2</span>-<a name="line-158"></a><a name="a1"></a><span class='definition'>a1</span>        <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>-<a name="line-159"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>f2</span>-<a name="line-160"></a>-<a name="line-161"></a><a name="&&&&"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;&amp;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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-162"></a><span class='conid'>Nothing</span>   <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>this''</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>-<a name="line-163"></a><span class='definition'>a1</span>        <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>     <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>this''</span>-<a name="line-164"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;&amp;</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'>&amp;&amp;&amp;</span> <span class='varid'>f2</span>-<a name="line-165"></a>-<a name="line-166"></a><a name="<+>>"></a><span class='layout'>(</span><span class='varop'>&lt;+&gt;&gt;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-167"></a><span class='conid'>Nothing</span>   <span class='varop'>&lt;+&gt;&gt;</span> <span class='sel'>_a2</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-168"></a><span class='sel'>_a1</span>       <span class='varop'>&lt;+&gt;&gt;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-169"></a><span class='layout'>(</span><span class='conid'>Just</span> <span class='varid'>f1</span><span class='layout'>)</span> <span class='varop'>&lt;+&gt;&gt;</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'>&lt;+&gt;</span> <span class='varid'>f2</span>-<a name="line-170"></a>-<a name="line-171"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-172"></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-173"></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-174"></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-175"></a>-<a name="line-176"></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-177"></a><span class='definition'>this'</span>				<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-178"></a>-<a name="line-179"></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-180"></a><span class='definition'>this''</span>				<span class='keyglyph'>=</span> <span class='varid'>mk</span> <span class='varid'>this</span>+<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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;&gt;</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'>&gt;&gt;&gt;&gt;</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'>&gt;&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&amp;&amp;&amp;&amp;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>		<span class='keyglyph'>=</span> <span class='varid'>this''</span> <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='varid'>a2</span>+<a name="line-159"></a><span class='definition'>a1</span>        <span class='varop'>&amp;&amp;&amp;&amp;</span> <span class='conid'>Nothing</span>		<span class='keyglyph'>=</span> <span class='varid'>a1</span>     <span class='varop'>&amp;&amp;&amp;&amp;</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'>&amp;&amp;&amp;&amp;</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'>&amp;&amp;&amp;</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'>&lt;+&gt;&gt;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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'>&lt;+&gt;&gt;</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'>&lt;+&gt;&gt;</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'>&lt;+&gt;&gt;</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'>&lt;+&gt;</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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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="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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-183"></a><span class='definition'>toThis</span> <span class='conid'>Nothing</span>			<span class='keyglyph'>=</span> <span class='varid'>this''</span>-<a name="line-184"></a><span class='definition'>toThis</span> <span class='varid'>a</span>			<span class='keyglyph'>=</span> <span class='varid'>a</span>-<a name="line-185"></a>-<a name="line-186"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-187"></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'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>-<a name="line-188"></a>-<a name="line-189"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-190"></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'>&gt;&gt;&gt;&gt;</span> <span class='varid'>a</span>-<a name="line-191"></a>-<a name="line-192"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-193"></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-194"></a>-<a name="line-195"></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'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-196"></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-197"></a>-<a name="line-198"></a><a name="xIndex"></a><span class='definition'>xIndex</span>				<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</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-199"></a><span class='definition'>xIndex</span> <span class='varid'>i</span>-<a name="line-200"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0</span>			<span class='keyglyph'>=</span> <span class='varid'>none</span>-<a name="line-201"></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-202"></a>-<a name="line-203"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>String</span>-<a name="line-204"></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'>&gt;&gt;&gt;</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-205"></a>-<a name="line-206"></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'>-&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XPNumber</span>-<a name="line-207"></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'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='varid'>toNumber</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="deadEndStreet"></a><span class='definition'>deadEndStreet</span>			<span class='keyglyph'>::</span> <span class='conid'>Monad</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>m</span> <span class='varid'>a</span>-<a name="line-212"></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-213"></a>-<a name="line-214"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-215"></a><span class='definition'>compXPath</span> <span class='varid'>e</span>			<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-216"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e</span>-<a name="line-217"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>unwrap</span> <span class='varid'>r</span>-<a name="line-218"></a>-<a name="line-219"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-220"></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-221"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>-<a name="line-222"></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-223"></a>				  <span class='varid'>r</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXP</span> <span class='varid'>e1</span>-<a name="line-224"></a>				  <span class='varid'>compFP</span> <span class='varid'>el</span> <span class='varid'>r</span>-<a name="line-225"></a><span class='definition'>compXP</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-226"></a>-<a name="line-227"></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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-228"></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-229"></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-230"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</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-231"></a>				  <span class='varid'>compFP</span> <span class='varid'>es</span> <span class='varid'>r1</span>-<a name="line-232"></a>-<a name="line-233"></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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-234"></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-235"></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-236"></a>				  <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compXS</span> <span class='varid'>x</span> <span class='varid'>r</span>-<a name="line-237"></a>				  <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compLP</span> <span class='varid'>xs</span> <span class='varid'>a1</span>-<a name="line-238"></a>				  <span class='varid'>return</span> <span class='keyword'>as</span>-<a name="line-239"></a>-<a name="line-240"></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'>=&gt;</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-241"></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-242"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-243"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-244"></a>-<a name="line-245"></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-246"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-247"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-248"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-249"></a>-<a name="line-250"></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-251"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-252"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTE</span> <span class='varid'>nt</span>-<a name="line-253"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>multi'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-254"></a>-<a name="line-255"></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-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'>-&gt;</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'>&gt;&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;=</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XStep</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&lt;-</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'>=&gt;</span> <span class='conid'>XStep</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</span> <span class='varid'>mk</span> <span class='varid'>getChildren</span> <span class='varop'>&gt;&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</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'>&lt;-</span> <span class='varid'>compNTE</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'>&gt;&gt;&gt;&gt;</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-259"></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-260"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-261"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNTA</span> <span class='varid'>nt</span>-<a name="line-262"></a>				  <span class='varid'>compPred</span> <span class='varid'>ps</span> <span class='layout'>(</span><span class='varid'>s</span> <span class='varop'>&gt;&gt;&gt;&gt;</span> <span class='varid'>getAttrl'</span> <span class='varid'>an</span><span class='layout'>)</span>-<a name="line-263"></a>-<a name="line-264"></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-257"></a>				  <span class='varid'>an</span> <span class='keyglyph'>&lt;-</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'>&gt;&gt;&gt;&gt;</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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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="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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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'>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-268"></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-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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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="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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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'>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-272"></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-273"></a>-<a name="line-274"></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'>=&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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-275"></a><span class='definition'>compNameT</span> <span class='varid'>ist</span> <span class='varid'>qn</span>-<a name="line-276"></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-277"></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-278"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span>-<a name="line-279"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</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-280"></a>				  <span class='layout'>)</span>-<a name="line-281"></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-282"></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-283"></a>				    <span class='keyword'>then</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</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-284"></a>				    <span class='keyword'>else</span> <span class='varid'>ist</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>hasQName</span> <span class='varid'>qn</span>-<a name="line-285"></a>-<a name="line-286"></a>				  <span class='layout'>)</span>-<a name="line-287"></a>-<a name="line-288"></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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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-289"></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-290"></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-291"></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-292"></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-293"></a>-<a name="line-294"></a><span class='definition'>compNT</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-295"></a>-<a name="line-296"></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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-297"></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-298"></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-299"></a>				  <span class='varid'>r1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compPred1</span> <span class='varid'>e</span> <span class='varid'>r</span>-<a name="line-300"></a>				  <span class='varid'>compPred</span> <span class='varid'>es</span> <span class='varid'>r1</span>-<a name="line-301"></a>-<a name="line-302"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-303"></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-304"></a>				    <span class='varid'>ix</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compIntExpr</span> <span class='varid'>e</span>-<a name="line-305"></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'>&gt;&gt;&gt;</span> <span class='varid'>xIndex</span> <span class='varid'>ix</span>-<a name="line-306"></a>				  <span class='layout'>)</span>-<a name="line-307"></a>				  <span class='varop'>`mplus`</span>-<a name="line-308"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-309"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e</span>-<a name="line-310"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</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-311"></a>				  <span class='layout'>)</span>-<a name="line-312"></a>				  <span class='varop'>`mplus`</span>-<a name="line-313"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-314"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e</span>-<a name="line-315"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>r</span> <span class='varop'>&gt;&gt;&gt;&gt;</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-316"></a>				  <span class='layout'>)</span>-<a name="line-317"></a>				  <span class='varop'>`mplus`</span>-<a name="line-318"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-319"></a>				    <span class='varid'>b1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e</span>-<a name="line-320"></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-321"></a>				  <span class='layout'>)</span>-<a name="line-322"></a>-<a name="line-323"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-324"></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-325"></a>				<span class='keyglyph'>=</span> <span class='varid'>compLP</span> <span class='varid'>lp</span> <span class='varid'>this'</span>-<a name="line-326"></a><span class='definition'>compRelPathExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>+<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'>=&gt;</span> <span class='conid'>LA</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>=&gt;</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;&gt;</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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="compStringExpr"></a><span class='definition'>compStringExpr</span>			<span class='keyglyph'>::</span> <span class='conid'>MonadPlus</span> <span class='varid'>m</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>String</span>-<a name="line-329"></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-330"></a><span class='definition'>compStringExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-331"></a>-<a name="line-332"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>XPNumber</span>-<a name="line-333"></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-334"></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-335"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-336"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>-<a name="line-337"></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-338"></a>				  <span class='layout'>)</span>-<a name="line-339"></a>				  <span class='varop'>`mplus`</span>-<a name="line-340"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-341"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span> <span class='varid'>f1</span>-<a name="line-342"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>toNumber</span> <span class='varid'>s</span>-<a name="line-343"></a>				  <span class='layout'>)</span>-<a name="line-344"></a><span class='definition'>compNumberExpr</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-345"></a>-<a name="line-346"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Int</span>-<a name="line-347"></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-348"></a>				    <span class='layout'>(</span><span class='conid'>Float</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span> <span class='varid'>e</span>-<a name="line-349"></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-350"></a>				  <span class='layout'>)</span>-<a name="line-351"></a>				  <span class='varop'>`mplus`</span>-<a name="line-352"></a>				  <span class='varid'>deadEndStreet</span>-<a name="line-353"></a>-<a name="line-354"></a>-<a name="line-355"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>m</span> <span class='conid'>Bool</span>-<a name="line-356"></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-357"></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-358"></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-359"></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-360"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-361"></a>				  <span class='varid'>v1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>f1</span>-<a name="line-362"></a>				  <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>not</span> <span class='varid'>v1</span>-<a name="line-363"></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-364"></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-365"></a>				  <span class='keyword'>where</span>-<a name="line-366"></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-367"></a>				  <span class='varid'>nz</span> <span class='conid'>NegInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-368"></a>				  <span class='varid'>nz</span> <span class='conid'>PosInf</span>    <span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-369"></a>				  <span class='varid'>nz</span> <span class='keyword'>_</span>         <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-370"></a><span class='definition'>compBoolExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-371"></a>-<a name="line-372"></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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-373"></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-374"></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-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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>=&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>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-377"></a>				  <span class='varop'>`mplus`</span>-<a name="line-378"></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-379"></a>				  <span class='varop'>`mplus`</span>-<a name="line-380"></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-381"></a>-<a name="line-382"></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-383"></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-384"></a>-<a name="line-385"></a><span class='definition'>compGenExpr</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>deadEndStreet</span>-<a name="line-386"></a>-<a name="line-387"></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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-388"></a><span class='definition'>compString</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-389"></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-390"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e2</span>-<a name="line-391"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-392"></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-393"></a>				  <span class='layout'>)</span>-<a name="line-394"></a>				  <span class='varop'>`mplus`</span>-<a name="line-395"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-396"></a>				    <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e1</span>-<a name="line-397"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-398"></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-399"></a>				  <span class='layout'>)</span>-<a name="line-400"></a>				  <span class='keyword'>where</span>-<a name="line-401"></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-402"></a>							<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-403"></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-404"></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-405"></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-406"></a>							    <span class='layout'>)</span>-<a name="line-407"></a>						      <span class='layout'>)</span>-<a name="line-408"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>	<span class='comment'>-- just for type match</span>-<a name="line-409"></a>						    <span class='layout'>)</span>-<a name="line-410"></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-411"></a>-<a name="line-412"></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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-413"></a><span class='definition'>compNumber</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-414"></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-415"></a>				<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-416"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e2</span>-<a name="line-417"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-418"></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-419"></a>				  <span class='layout'>)</span>-<a name="line-420"></a>				  <span class='varop'>`mplus`</span>-<a name="line-421"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-422"></a>				    <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e1</span>-<a name="line-423"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-424"></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-425"></a>				  <span class='layout'>)</span>-<a name="line-426"></a>				  <span class='keyword'>where</span>-<a name="line-427"></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-428"></a>							<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-429"></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-430"></a>								    <span class='conid'>Eq</span>        <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>-<a name="line-431"></a>								    <span class='conid'>NEq</span>       <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>/=</span><span class='layout'>)</span>-<a name="line-432"></a>								    <span class='conid'>Less</span>      <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span>-<a name="line-433"></a>								    <span class='conid'>Greater</span>   <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span>-<a name="line-434"></a>								    <span class='conid'>LessEq</span>    <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span>-<a name="line-435"></a>								    <span class='conid'>GreaterEq</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span>-<a name="line-436"></a>								    <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</span> <span class='varid'>error</span> <span class='str'>"compNumber: wrong arg"</span>-<a name="line-437"></a>								  <span class='layout'>)</span> <span class='varid'>n'</span>-<a name="line-438"></a>							    <span class='layout'>)</span>-<a name="line-439"></a>						      <span class='layout'>)</span>-<a name="line-440"></a>						      <span class='varop'>`guards`</span> <span class='varid'>this</span>-<a name="line-441"></a>						    <span class='layout'>)</span>-<a name="line-442"></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-443"></a>-<a name="line-444"></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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-445"></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-446"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>-<a name="line-447"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-448"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-449"></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-450"></a>				  <span class='layout'>)</span>-<a name="line-451"></a>				  <span class='varop'>`mplus`</span>-<a name="line-452"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-453"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>-<a name="line-454"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-455"></a>				       <span class='keyword'>then</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-456"></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-457"></a>				  <span class='layout'>)</span>-<a name="line-458"></a>				  <span class='varop'>`mplus`</span>-<a name="line-459"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-460"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-461"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-462"></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-463"></a>				  <span class='layout'>)</span>-<a name="line-464"></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-465"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e1</span>-<a name="line-466"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-467"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>-<a name="line-468"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-469"></a>				  <span class='layout'>)</span>-<a name="line-470"></a>				  <span class='varop'>`mplus`</span>-<a name="line-471"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-472"></a>				    <span class='varid'>b</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compBoolExpr</span> <span class='varid'>e2</span>-<a name="line-473"></a>				    <span class='keyword'>if</span> <span class='varid'>b</span>-<a name="line-474"></a>                                       <span class='keyword'>then</span> <span class='varid'>return</span> <span class='varid'>this'</span>-<a name="line-475"></a>				       <span class='keyword'>else</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-476"></a>				  <span class='layout'>)</span>-<a name="line-477"></a>				  <span class='varop'>`mplus`</span>-<a name="line-478"></a>				  <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-479"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>-<a name="line-480"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e2</span>-<a name="line-481"></a>				    <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>a1</span> <span class='varop'>&lt;+&gt;&gt;</span> <span class='varid'>a2</span>-<a name="line-482"></a>				  <span class='layout'>)</span>-<a name="line-483"></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-484"></a>-<a name="line-485"></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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-486"></a><span class='definition'>compPath</span> <span class='varid'>op</span> <span class='varid'>e1</span> <span class='varid'>e2</span>-<a name="line-487"></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-488"></a>				    <span class='varid'>a1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>-<a name="line-489"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e1</span>-<a name="line-490"></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'>&amp;&amp;&amp;</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-491"></a>							      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-492"></a>							      <span class='varid'>eqs</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='keyword'>where</span>-<a name="line-496"></a>				  <span class='varid'>eqs</span>		<span class='keyglyph'>=</span> <span class='varid'>arr2L</span> <span class='varid'>equalNodeSet</span>-<a name="line-497"></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-498"></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-499"></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-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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e2</span>+<a name="line-387"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</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'>&lt;-</span> <span class='varid'>compStringExpr</span>  <span class='varid'>e1</span>+<a name="line-393"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</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'>&gt;&gt;&gt;</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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e2</span>+<a name="line-413"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</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'>&lt;-</span> <span class='varid'>compNumberExpr</span>  <span class='varid'>e1</span>+<a name="line-419"></a>				    <span class='varid'>a</span> <span class='keyglyph'>&lt;-</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span>+<a name="line-429"></a>								    <span class='conid'>Greater</span>   <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;</span><span class='layout'>)</span>+<a name="line-430"></a>								    <span class='conid'>LessEq</span>    <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span><span class='layout'>)</span>+<a name="line-431"></a>								    <span class='conid'>GreaterEq</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varop'>&gt;=</span><span class='layout'>)</span>+<a name="line-432"></a>								    <span class='keyword'>_</span>         <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&lt;-</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'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>+<a name="line-457"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;-</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'>&lt;-</span> <span class='varid'>compGenExpr</span> <span class='varid'>e1</span>+<a name="line-476"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</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'>&lt;+&gt;&gt;</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'>=&gt;</span> <span class='conid'>Op</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>compRelPathExpr</span> <span class='varid'>e2</span>+<a name="line-485"></a>				    <span class='varid'>a2</span> <span class='keyglyph'>&lt;-</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'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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><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-502"></a>-<a name="line-503"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-504"></a>-<a name="line-505"></a><a name="toNumber"></a><span class='definition'>toNumber</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPNumber</span>-<a name="line-506"></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-507"></a>-<a name="line-508"></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'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-509"></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'>&lt;-</span> <span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span> <span class='keyglyph'>&lt;-</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-510"></a>-<a name="line-511"></a><span class='comment'>-- ----------------------------------------</span>+<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'>-&gt;</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'>=&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>s1</span><span class='layout'>,</span> <span class='varid'>y</span> <span class='keyglyph'>&lt;-</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 view
@@ -10,44 +10,44 @@ <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 Uwe Schmidt+<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>   Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>   Basic arrows for processing 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>-<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'>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'>Text</span><span 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-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'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</span>			<span class='comment'>-- 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>-<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'>ListArrow</span>		<span class='comment'>-- arrow types</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'>StateListArrow</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'>IOListArrow</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'>IOStateListArrow</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'>DOM</span><span class='varop'>.</span><span class='conid'>Interface</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'>Unicode</span>-<a name="line-39"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-40"></a>    <span class='layout'>)</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlNode</span> <span class='keyword'>as</span> <span class='conid'>XN</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'>DOM</span><span class='varop'>.</span><span class='conid'>ShowXml</span> <span class='keyword'>as</span> <span class='conid'>XS</span>+<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>@@ -245,21 +245,21 @@ <a name="line-237"></a>    <span class='varid'>mkqelem</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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 tagnames, see also 'mkElement' and 'mkelem'</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>mkSNsName</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-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'>-&gt;</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'>-&gt;</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'>&gt;.</span> <span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='varid'>al</span> <span class='conid'>[]</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'>&gt;.</span> <span class='keyglyph'>\</span> <span class='varid'>al</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;.</span>         <span class='conid'>XN</span><span class='varop'>.</span><span class='varid'>mkElement</span> <span class='layout'>(</span><span class='varid'>mkSNsName</span> <span class='varid'>n</span><span class='layout'>)</span> <span class='conid'>[]</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'>&gt;.</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'>-&gt;</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'>mkSNsName</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-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'>-&gt;</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'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span>@@ -271,7 +271,7 @@ <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'>-&gt;</span> <span class='varid'>a</span> <span class='varid'>n</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>mkSNsName</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>@@ -305,7 +305,7 @@ <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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>mkSNsName</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-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>@@ -315,7 +315,7 @@ <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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>mkSNsName</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-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>
doc/hdoc/src/Text-XML-HXT-Arrow-XmlIOStateArrow.html view
@@ -109,846 +109,855 @@ <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'>traceString</span><span class='layout'>,</span>-<a name="line-105"></a>      <span class='varid'>traceSource</span><span class='layout'>,</span>-<a name="line-106"></a>      <span class='varid'>traceTree</span><span class='layout'>,</span>-<a name="line-107"></a>      <span class='varid'>traceDoc</span><span class='layout'>,</span>-<a name="line-108"></a>      <span class='varid'>traceState</span><span class='layout'>,</span>-<a name="line-109"></a>-<a name="line-110"></a>      <span class='comment'>-- * URI Manipulation</span>-<a name="line-111"></a>      <span class='varid'>expandURIString</span><span class='layout'>,</span>-<a name="line-112"></a>      <span class='varid'>expandURI</span><span class='layout'>,</span>-<a name="line-113"></a>      <span class='varid'>mkAbsURI</span><span class='layout'>,</span>-<a name="line-114"></a>-<a name="line-115"></a>      <span class='varid'>getFragmentFromURI</span><span class='layout'>,</span>-<a name="line-116"></a>      <span class='varid'>getPathFromURI</span><span class='layout'>,</span>-<a name="line-117"></a>      <span class='varid'>getPortFromURI</span><span class='layout'>,</span>-<a name="line-118"></a>      <span class='varid'>getQueryFromURI</span><span class='layout'>,</span>-<a name="line-119"></a>      <span class='varid'>getRegNameFromURI</span><span class='layout'>,</span>-<a name="line-120"></a>      <span class='varid'>getSchemeFromURI</span><span class='layout'>,</span>-<a name="line-121"></a>      <span class='varid'>getUserInfoFromURI</span><span class='layout'>,</span>-<a name="line-122"></a>-<a name="line-123"></a>      <span class='comment'>-- * Mime Type Handling</span>-<a name="line-124"></a>      <span class='varid'>setMimeTypeTable</span><span class='layout'>,</span>-<a name="line-125"></a>      <span class='varid'>setMimeTypeTableFromFile</span>-<a name="line-126"></a>      <span class='layout'>)</span>-<a name="line-127"></a><span class='keyword'>where</span>-<a name="line-128"></a>-<a name="line-129"></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-130"></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-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'>ArrowIf</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'>ArrowTree</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'>ArrowIO</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'>IOStateListArrow</span>-<a name="line-135"></a>-<a name="line-136"></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-137"></a>-<a name="line-138"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-140"></a>-<a name="line-141"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-142"></a>    <span class='layout'>(</span> <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-143"></a>    <span class='layout'>,</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-144"></a>    <span class='layout'>,</span> <span class='varid'>indentDoc</span>-<a name="line-145"></a>    <span class='layout'>)</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'>Maybe</span>-<a name="line-148"></a>-<a name="line-149"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>-<a name="line-150"></a>    <span class='layout'>(</span> <span class='conid'>URI</span>-<a name="line-151"></a>    <span class='layout'>,</span> <span class='varid'>escapeURIChar</span>-<a name="line-152"></a>    <span class='layout'>,</span> <span class='varid'>isUnescapedInURI</span>-<a name="line-153"></a>    <span class='layout'>,</span> <span class='varid'>nonStrictRelativeTo</span>-<a name="line-154"></a>    <span class='layout'>,</span> <span class='varid'>parseURIReference</span>-<a name="line-155"></a>    <span class='layout'>,</span> <span class='varid'>uriAuthority</span>-<a name="line-156"></a>    <span class='layout'>,</span> <span class='varid'>uriFragment</span>-<a name="line-157"></a>    <span class='layout'>,</span> <span class='varid'>uriPath</span>-<a name="line-158"></a>    <span class='layout'>,</span> <span class='varid'>uriPort</span>-<a name="line-159"></a>    <span class='layout'>,</span> <span class='varid'>uriQuery</span>-<a name="line-160"></a>    <span class='layout'>,</span> <span class='varid'>uriRegName</span>-<a name="line-161"></a>    <span class='layout'>,</span> <span class='varid'>uriScheme</span>-<a name="line-162"></a>    <span class='layout'>,</span> <span class='varid'>uriUserInfo</span>-<a name="line-163"></a>    <span class='layout'>)</span>-<a name="line-164"></a>-<a name="line-165"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-166"></a>    <span class='layout'>(</span> <span class='varid'>hPutStrLn</span>-<a name="line-167"></a>    <span class='layout'>,</span> <span class='varid'>hFlush</span>-<a name="line-168"></a>    <span class='layout'>,</span> <span class='varid'>stderr</span>-<a name="line-169"></a>    <span class='layout'>)</span>-<a name="line-170"></a>-<a name="line-171"></a><span class='keyword'>import</span> <span class='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>-<a name="line-172"></a>    <span class='layout'>(</span> <span class='varid'>getCurrentDirectory</span>-<a name="line-173"></a>    <span class='layout'>)</span>-<a name="line-174"></a>-<a name="line-175"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-176"></a><span class='comment'>{- $datatypes -}</span>-<a name="line-177"></a>-<a name="line-178"></a>-<a name="line-179"></a><span class='comment'>-- |</span>-<a name="line-180"></a><span class='comment'>-- predefined system state data type with all components for the</span>-<a name="line-181"></a><span class='comment'>-- system functions, like trace, error handling, ...</span>-<a name="line-182"></a>-<a name="line-183"></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-184"></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-185"></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-186"></a>				  <span class='layout'>,</span> <span class='varid'>xio_errorMsgHandler</span>		<span class='keyglyph'>::</span>   <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span>-<a name="line-187"></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-188"></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-189"></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-190"></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-191"></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-192"></a>				  <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>		<span class='keyglyph'>::</span>   <span class='conid'>MimeTypeTable</span>-<a name="line-193"></a>				  <span class='layout'>}</span>-<a name="line-194"></a>-<a name="line-195"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>XIOSysState</span> <span class='keyword'>where</span>-<a name="line-196"></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-197"></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-198"></a>-<a name="line-199"></a><span class='comment'>-- |</span>-<a name="line-200"></a><span class='comment'>-- state datatype consists of a system state and a user state</span>-<a name="line-201"></a><span class='comment'>-- the user state is not fixed</span>-<a name="line-202"></a>-<a name="line-203"></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-204"></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-205"></a>				   <span class='layout'>}</span>-<a name="line-206"></a>-<a name="line-207"></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'>=&gt;</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-208"></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-209"></a>-<a name="line-210"></a><span class='comment'>-- |</span>-<a name="line-211"></a><span class='comment'>-- The arrow type for stateful arrows</span>-<a name="line-212"></a>-<a name="line-213"></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-214"></a>-<a name="line-215"></a><span class='comment'>-- |</span>-<a name="line-216"></a><span class='comment'>-- The arrow for stateful arrows with no user defined state</span>-<a name="line-217"></a>-<a name="line-218"></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-219"></a>-<a name="line-220"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-221"></a>-<a name="line-222"></a>-<a name="line-223"></a><span class='comment'>-- | the default global state, used as initial state when running an 'IOSArrow' with 'runIOSLA' or</span>-<a name="line-224"></a><span class='comment'>-- 'runX'</span>-<a name="line-225"></a>-<a name="line-226"></a><a name="initialState"></a><span class='definition'>initialState</span>	<span class='keyglyph'>::</span> <span class='varid'>us</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOState</span> <span class='varid'>us</span>-<a name="line-227"></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-228"></a>			   <span class='layout'>,</span> <span class='varid'>xio_userState</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-229"></a>			   <span class='layout'>}</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="initialSysState"></a><span class='definition'>initialSysState</span>	<span class='keyglyph'>::</span> <span class='conid'>XIOSysState</span>-<a name="line-232"></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-233"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorStatus</span>	<span class='keyglyph'>=</span> <span class='varid'>c_ok</span>-<a name="line-234"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorModule</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-235"></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-236"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgCollect</span>	<span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-237"></a>			 <span class='layout'>,</span> <span class='varid'>xio_errorMsgList</span>	<span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-238"></a>			 <span class='layout'>,</span> <span class='varid'>xio_baseURI</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-239"></a>			 <span class='layout'>,</span> <span class='varid'>xio_defaultBaseURI</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-240"></a>			 <span class='layout'>,</span> <span class='varid'>xio_attrList</span>		<span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-241"></a>			 <span class='layout'>,</span> <span class='varid'>xio_mimeTypes</span>	<span class='keyglyph'>=</span> <span class='varid'>defaultMimeTypeTable</span>-<a name="line-242"></a>			 <span class='layout'>}</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'>-- |</span>-<a name="line-247"></a><span class='comment'>-- apply an 'IOSArrow' to an empty root node with 'initialState' () as initial state</span>-<a name="line-248"></a><span class='comment'>--</span>-<a name="line-249"></a><span class='comment'>-- the main entry point for running a state arrow with IO</span>-<a name="line-250"></a><span class='comment'>--</span>-<a name="line-251"></a><span class='comment'>-- when running @ runX f@ an empty XML root node is applied to @f@.</span>-<a name="line-252"></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-253"></a><span class='comment'>--</span>-<a name="line-254"></a><span class='comment'>-- for usage see examples with 'Text.XML.HXT.Arrow.WriteDocument.writeDocument'</span>-<a name="line-255"></a><span class='comment'>--</span>-<a name="line-256"></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-257"></a>-<a name="line-258"></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'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-259"></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-260"></a>-<a name="line-261"></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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='keyglyph'>[</span><span class='varid'>c</span><span class='keyglyph'>]</span>-<a name="line-262"></a><span class='definition'>runXIOState</span> <span class='varid'>s0</span> <span class='varid'>f</span>-<a name="line-263"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-264"></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'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>emptyRoot</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>f</span><span class='layout'>)</span> <span class='varid'>s0</span> <span class='varid'>undefined</span>-<a name="line-265"></a>      <span class='varid'>return</span> <span class='varid'>res</span>-<a name="line-266"></a>    <span class='keyword'>where</span>-<a name="line-267"></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-268"></a>-<a name="line-269"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-270"></a>-<a name="line-271"></a><span class='comment'>{- user state -}</span>-<a name="line-272"></a>-<a name="line-273"></a><span class='comment'>-- | read the user defined part of the state</span>-<a name="line-274"></a>-<a name="line-275"></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-276"></a><span class='definition'>getUserState</span>-<a name="line-277"></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'>-&gt;</span>-<a name="line-278"></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-279"></a>-<a name="line-280"></a><span class='comment'>-- | change the user defined part of the state</span>-<a name="line-281"></a>-<a name="line-282"></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'>-&gt;</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-283"></a><span class='definition'>changeUserState</span> <span class='varid'>cf</span>-<a name="line-284"></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'>-&gt;</span>-<a name="line-285"></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-286"></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-287"></a>-<a name="line-288"></a><span class='comment'>-- | set the user defined part of the state</span>-<a name="line-289"></a>-<a name="line-290"></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-291"></a><span class='definition'>setUserState</span>-<a name="line-292"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeUserState</span> <span class='varid'>const</span>-<a name="line-293"></a>-<a name="line-294"></a><span class='comment'>-- | extend user state</span>-<a name="line-295"></a><span class='comment'>--</span>-<a name="line-296"></a><span class='comment'>-- Run an arrow with an extended user state component, The old component</span>-<a name="line-297"></a><span class='comment'>-- is stored together with a new one in a pair, the arrow is executed with this</span>-<a name="line-298"></a><span class='comment'>-- extended state, and the augmented state component is removed form the state</span>-<a name="line-299"></a><span class='comment'>-- when the arrow has finished its execution</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="withExtendedUserState"></a><span class='definition'>withExtendedUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-302"></a><span class='definition'>withExtendedUserState</span> <span class='varid'>initS1</span> <span class='varid'>f</span>-<a name="line-303"></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'>-&gt;</span>-<a name="line-304"></a>      <span class='keyword'>do</span>-<a name="line-305"></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'>&lt;-</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-306"></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-307"></a>					      <span class='layout'>}</span>-<a name="line-308"></a>				   <span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-309"></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-310"></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-311"></a>			<span class='layout'>}</span>-<a name="line-312"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>-<a name="line-313"></a>	     <span class='layout'>)</span>-<a name="line-314"></a>-<a name="line-315"></a><span class='comment'>-- | change the type of user state</span>-<a name="line-316"></a><span class='comment'>--</span>-<a name="line-317"></a><span class='comment'>-- This conversion is useful, when running a state arrow with another</span>-<a name="line-318"></a><span class='comment'>-- structure of the user state, e.g. with () when executing some IO arrows</span>-<a name="line-319"></a>-<a name="line-320"></a><a name="withOtherUserState"></a><span class='definition'>withOtherUserState</span>	<span class='keyglyph'>::</span> <span class='varid'>s1</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s0</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-321"></a><span class='definition'>withOtherUserState</span> <span class='varid'>s1</span> <span class='varid'>f</span>-<a name="line-322"></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'>-&gt;</span>-<a name="line-323"></a>      <span class='keyword'>do</span>-<a name="line-324"></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'>&lt;-</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-325"></a>					 <span class='layout'>,</span> <span class='varid'>xio_userState</span> <span class='keyglyph'>=</span> <span class='varid'>s1</span>-<a name="line-326"></a>					 <span class='layout'>}</span>-<a name="line-327"></a>			      <span class='layout'>)</span> <span class='varid'>x</span>-<a name="line-328"></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-329"></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-330"></a>			<span class='layout'>}</span>-<a name="line-331"></a>	     <span class='layout'>,</span> <span class='varid'>res</span>-<a name="line-332"></a>	     <span class='layout'>)</span>-<a name="line-333"></a>-<a name="line-334"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-335"></a>-<a name="line-336"></a><span class='comment'>{- $system state params -}</span>-<a name="line-337"></a>-<a name="line-338"></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'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-339"></a><span class='definition'>getSysParam</span> <span class='varid'>f</span>-<a name="line-340"></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'>-&gt;</span>-<a name="line-341"></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-342"></a>-<a name="line-343"></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'>-&gt;</span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-344"></a><span class='definition'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-345"></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'>-&gt;</span>-<a name="line-346"></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-347"></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-348"></a>      <span class='layout'>)</span>-<a name="line-349"></a>    <span class='keyword'>where</span>-<a name="line-350"></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-351"></a>-<a name="line-352"></a><span class='comment'>-- | store a single XML tree in global state under a given attribute name</span>-<a name="line-353"></a>-<a name="line-354"></a><a name="setParam"></a><span class='definition'>setParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-355"></a><span class='definition'>setParam</span> <span class='varid'>n</span>-<a name="line-356"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='conop'>:</span><span class='conid'>[]</span><span class='layout'>)</span> <span class='varop'>^&gt;&gt;</span> <span class='varid'>setParamList</span> <span class='varid'>n</span>-<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- | store a list of XML trees in global system state under a given attribute name</span>-<a name="line-359"></a>-<a name="line-360"></a><a name="setParamList"></a><span class='definition'>setParamList</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTrees</span> <span class='conid'>XmlTree</span>-<a name="line-361"></a><span class='definition'>setParamList</span> <span class='varid'>n</span>-<a name="line-362"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>addE</span>-<a name="line-363"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-364"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>-<a name="line-365"></a>    <span class='keyword'>where</span>-<a name="line-366"></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-367"></a>-<a name="line-368"></a><span class='comment'>-- | remove an entry in global state, arrow input remains unchanged</span>-<a name="line-369"></a>-<a name="line-370"></a><a name="unsetParam"></a><span class='definition'>unsetParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-371"></a><span class='definition'>unsetParam</span> <span class='varid'>n</span>-<a name="line-372"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>delE</span>-<a name="line-373"></a>    <span class='keyword'>where</span>-<a name="line-374"></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-375"></a>-<a name="line-376"></a><span class='comment'>-- | read an attribute value from global state</span>-<a name="line-377"></a>-<a name="line-378"></a><a name="getParam"></a><span class='definition'>getParam</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>XmlTree</span>-<a name="line-379"></a><span class='definition'>getParam</span> <span class='varid'>n</span>-<a name="line-380"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>-<a name="line-381"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-382"></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-383"></a>-<a name="line-384"></a><span class='comment'>-- | read all attributes from global state</span>-<a name="line-385"></a>-<a name="line-386"></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-387"></a><span class='definition'>getAllParams</span>-<a name="line-388"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_attrList</span>-<a name="line-389"></a>-<a name="line-390"></a><span class='comment'>-- | read all attributes from global state</span>-<a name="line-391"></a><span class='comment'>-- and convert the values to strings</span>-<a name="line-392"></a>-<a name="line-393"></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-394"></a><span class='definition'>getAllParamsString</span>-<a name="line-395"></a>    <span class='keyglyph'>=</span> <span class='varid'>getAllParams</span>-<a name="line-396"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-397"></a>      <span class='varid'>listA</span> <span class='layout'>(</span> <span class='varid'>unlistA</span>-<a name="line-398"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-399"></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-400"></a>	    <span class='layout'>)</span>-<a name="line-401"></a>-<a name="line-402"></a><a name="setParamString"></a><span class='definition'>setParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-403"></a><span class='definition'>setParamString</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-404"></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-405"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-406"></a>		<span class='varid'>setParam</span> <span class='varid'>n</span>-<a name="line-407"></a>	      <span class='layout'>)</span>-<a name="line-408"></a>-<a name="line-409"></a><span class='comment'>-- | read a string value from global state,</span>-<a name="line-410"></a><span class='comment'>-- if parameter not set \"\" is returned</span>-<a name="line-411"></a>-<a name="line-412"></a><a name="getParamString"></a><span class='definition'>getParamString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-413"></a><span class='definition'>getParamString</span> <span class='varid'>n</span>-<a name="line-414"></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-415"></a>-<a name="line-416"></a><span class='comment'>-- | store an int value in global state</span>-<a name="line-417"></a>-<a name="line-418"></a><a name="setParamInt"></a><span class='definition'>setParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-419"></a><span class='definition'>setParamInt</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-420"></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-421"></a>-<a name="line-422"></a><span class='comment'>-- | read an int value from global state</span>-<a name="line-423"></a><span class='comment'>-- </span>-<a name="line-424"></a><span class='comment'>-- &gt; getParamInt 0 myIntAttr</span>-<a name="line-425"></a>-<a name="line-426"></a><a name="getParamInt"></a><span class='definition'>getParamInt</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>Int</span>-<a name="line-427"></a><span class='definition'>getParamInt</span> <span class='varid'>def</span> <span class='varid'>n</span>-<a name="line-428"></a>    <span class='keyglyph'>=</span> <span class='varid'>getParamString</span> <span class='varid'>n</span>-<a name="line-429"></a>      <span class='varop'>&gt;&gt;^</span>-<a name="line-430"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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-431"></a>-<a name="line-432"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-433"></a>-<a name="line-434"></a><span class='comment'>-- | reset global error variable</span>-<a name="line-435"></a>-<a name="line-436"></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'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>Int</span> <span class='conid'>Int</span>-<a name="line-437"></a><span class='definition'>changeErrorStatus</span> <span class='varid'>f</span>-<a name="line-438"></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'>-&gt;</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-439"></a>-<a name="line-440"></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-441"></a><span class='definition'>clearErrStatus</span>-<a name="line-442"></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'>&gt;&gt;&gt;</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>min</span><span class='layout'>)</span>-<a name="line-443"></a>-<a name="line-444"></a><span class='comment'>-- | set global error variable</span>-<a name="line-445"></a>-<a name="line-446"></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-447"></a><span class='definition'>setErrStatus</span>-<a name="line-448"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeErrorStatus</span> <span class='varid'>max</span>-<a name="line-449"></a>-<a name="line-450"></a><span class='comment'>-- | read current global error status</span>-<a name="line-451"></a>-<a name="line-452"></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-453"></a><span class='definition'>getErrStatus</span>-<a name="line-454"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_errorStatus</span>-<a name="line-455"></a>-<a name="line-456"></a><span class='comment'>-- | raise the global error status level to that of the input tree</span>-<a name="line-457"></a>-<a name="line-458"></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-459"></a><span class='definition'>setErrMsgStatus</span>-<a name="line-460"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span>-<a name="line-461"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-462"></a>		<span class='varid'>setErrStatus</span>-<a name="line-463"></a>	      <span class='layout'>)</span>-<a name="line-464"></a>-<a name="line-465"></a><span class='comment'>-- | set the error message handler and the flag for collecting the errors</span>-<a name="line-466"></a>-<a name="line-467"></a><a name="setErrorMsgHandler"></a><span class='definition'>setErrorMsgHandler</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-468"></a><span class='definition'>setErrorMsgHandler</span> <span class='varid'>c</span> <span class='varid'>f</span>-<a name="line-469"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-470"></a>    <span class='keyword'>where</span>-<a name="line-471"></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-472"></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-473"></a>-<a name="line-474"></a><span class='comment'>-- | error message handler for output to stderr</span>-<a name="line-475"></a>		  -<a name="line-476"></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-477"></a><span class='definition'>sysErrorMsg</span>-<a name="line-478"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>getErrorLevel</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getErrorMsg</span>-<a name="line-479"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-480"></a>		<span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>-<a name="line-481"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-482"></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'>-&gt;</span>-<a name="line-483"></a>		  <span class='keyword'>do</span>-<a name="line-484"></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-485"></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-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'>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-490"></a>    <span class='varid'>errClass</span> <span class='varid'>l</span>-<a name="line-491"></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-492"></a>	  <span class='keyword'>where</span>-<a name="line-493"></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-494"></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-495"></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-496"></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-497"></a>			  <span class='keyglyph'>]</span>-<a name="line-498"></a>-<a name="line-499"></a>-<a name="line-500"></a><span class='comment'>-- | the default error message handler: error output to stderr</span>-<a name="line-501"></a>-<a name="line-502"></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-503"></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-504"></a>-<a name="line-505"></a><span class='comment'>-- | error message handler for collecting errors</span>-<a name="line-506"></a>-<a name="line-507"></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-508"></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-509"></a>-<a name="line-510"></a><span class='comment'>-- | error message handler for output to stderr and collecting</span>-<a name="line-511"></a>-<a name="line-512"></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-513"></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-514"></a>-<a name="line-515"></a><span class='comment'>-- | error message handler for ignoring errors</span>-<a name="line-516"></a>-<a name="line-517"></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-518"></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-519"></a>-<a name="line-520"></a><span class='comment'>-- |</span>-<a name="line-521"></a><span class='comment'>-- if error messages are collected by the error handler for</span>-<a name="line-522"></a><span class='comment'>-- processing these messages by the calling application,</span>-<a name="line-523"></a><span class='comment'>-- this arrow reads the stored messages and clears the error message store</span>-<a name="line-524"></a>-<a name="line-525"></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-526"></a><span class='definition'>getErrorMessages</span>-<a name="line-527"></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-528"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-529"></a>      <span class='varid'>clearErrorMsgList</span>					<span class='comment'>-- clear the error list in the system state</span>-<a name="line-530"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-531"></a>      <span class='varid'>arrL</span> <span class='varid'>id</span>-<a name="line-532"></a>-<a name="line-533"></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-534"></a><span class='definition'>clearErrorMsgList</span>-<a name="line-535"></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'>-&gt;</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-536"></a>-<a name="line-537"></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-538"></a><span class='definition'>addToErrorMsgList</span>-<a name="line-539"></a>    <span class='keyglyph'>=</span> <span class='varid'>changeSysParam</span> <span class='varid'>cf</span>-<a name="line-540"></a>    <span class='keyword'>where</span>-<a name="line-541"></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-542"></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-543"></a>	     <span class='keyword'>else</span> <span class='varid'>s</span>-<a name="line-544"></a>-<a name="line-545"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-546"></a>-<a name="line-547"></a><span class='comment'>-- |</span>-<a name="line-548"></a><span class='comment'>-- filter error messages from input trees and issue errors</span>-<a name="line-549"></a>-<a name="line-550"></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-551"></a><span class='definition'>filterErrorMsg</span>-<a name="line-552"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>setErrMsgStatus</span>-<a name="line-553"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-554"></a>	<span class='varid'>sysErrorMsg</span>-<a name="line-555"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-556"></a>	<span class='varid'>addToErrorMsgList</span>-<a name="line-557"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-558"></a>	<span class='varid'>none</span>-<a name="line-559"></a>      <span class='layout'>)</span>-<a name="line-560"></a>      <span class='varop'>`when`</span>-<a name="line-561"></a>      <span class='varid'>isError</span>-<a name="line-562"></a>-<a name="line-563"></a><span class='comment'>-- | generate a warnig message</span>-<a name="line-564"></a>-<a name="line-565"></a><a name="issueWarn"></a><span class='definition'>issueWarn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-566"></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'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-567"></a>-<a name="line-568"></a><a name="issueErr"></a><span class='comment'>-- | generate an error message</span>-<a name="line-569"></a><span class='definition'>issueErr</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-570"></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'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-571"></a>-<a name="line-572"></a><span class='comment'>-- | generate a fatal error message, e.g. document not found</span>-<a name="line-573"></a>-<a name="line-574"></a><a name="issueFatal"></a><span class='definition'>issueFatal</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-575"></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'>&gt;&gt;&gt;</span> <span class='varid'>filterErrorMsg</span><span class='layout'>)</span>-<a name="line-576"></a>-<a name="line-577"></a><span class='comment'>-- |</span>-<a name="line-578"></a><span class='comment'>-- add the error level and the module where the error occured</span>-<a name="line-579"></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-580"></a><span class='comment'>-- called by 'setDocumentStatusFromSystemState' when the system state indicates an error</span>-<a name="line-581"></a>-<a name="line-582"></a><a name="setDocumentStatus"></a><span class='definition'>setDocumentStatus</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-583"></a><span class='definition'>setDocumentStatus</span> <span class='varid'>level</span> <span class='varid'>msg</span>-<a name="line-584"></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-585"></a>		   <span class='varop'>&lt;+&gt;</span>-<a name="line-586"></a>		   <span class='varid'>sattr</span> <span class='varid'>a_module</span> <span class='varid'>msg</span>-<a name="line-587"></a>		 <span class='layout'>)</span>-<a name="line-588"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-589"></a>	<span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&gt;=</span> <span class='varid'>c_err</span>-<a name="line-590"></a>	  <span class='keyword'>then</span> <span class='varid'>setChildren</span> <span class='conid'>[]</span>-<a name="line-591"></a>	  <span class='keyword'>else</span> <span class='varid'>this</span>-<a name="line-592"></a>	<span class='layout'>)</span>-<a name="line-593"></a>      <span class='layout'>)</span>-<a name="line-594"></a>      <span class='varop'>`when`</span>-<a name="line-595"></a>      <span class='varid'>isRoot</span>-<a name="line-596"></a>-<a name="line-597"></a><span class='comment'>-- |</span>-<a name="line-598"></a><span class='comment'>-- check whether the error level attribute in the system state</span>-<a name="line-599"></a><span class='comment'>-- is set to error, in this case the children of the document root are</span>-<a name="line-600"></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-601"></a><span class='comment'>-- else nothing is changed</span>-<a name="line-602"></a>-<a name="line-603"></a><a name="setDocumentStatusFromSystemState"></a><span class='definition'>setDocumentStatusFromSystemState</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-604"></a><span class='definition'>setDocumentStatusFromSystemState</span> <span class='varid'>msg</span>-<a name="line-605"></a>    <span class='keyglyph'>=</span> <span class='varid'>setStatus</span> <span class='varop'>$&lt;</span> <span class='varid'>getErrStatus</span>-<a name="line-606"></a>    <span class='keyword'>where</span>-<a name="line-607"></a>    <span class='varid'>setStatus</span> <span class='varid'>level</span>-<a name="line-608"></a>	<span class='keyglyph'>|</span> <span class='varid'>level</span> <span class='varop'>&lt;=</span> <span class='varid'>c_warn</span>	<span class='keyglyph'>=</span> <span class='varid'>this</span>-<a name="line-609"></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-610"></a>-<a name="line-611"></a>-<a name="line-612"></a><span class='comment'>-- |</span>-<a name="line-613"></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-614"></a>-<a name="line-615"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-616"></a><span class='definition'>documentStatusOk</span>-<a name="line-617"></a>    <span class='keyglyph'>=</span> <span class='varid'>isRoot</span>-<a name="line-618"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-619"></a>      <span class='layout'>(</span> <span class='layout'>(</span><span class='varid'>getAttrValue</span> <span class='varid'>a_status</span>-<a name="line-620"></a>	 <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-621"></a>	 <span class='varid'>isA</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</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'>&lt;=</span> <span class='varid'>c_warn</span><span class='layout'>)</span>-<a name="line-622"></a>	<span class='layout'>)</span>-<a name="line-623"></a>	<span class='varop'>`guards`</span>-<a name="line-624"></a>	<span class='varid'>this</span>-<a name="line-625"></a>      <span class='layout'>)</span>-<a name="line-626"></a>-<a name="line-627"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-628"></a>-<a name="line-629"></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-630"></a><span class='comment'>-- the input must be an absolute URI</span>-<a name="line-631"></a>-<a name="line-632"></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-633"></a><span class='definition'>setBaseURI</span>-<a name="line-634"></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'>-&gt;</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-635"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-636"></a>      <span class='varid'>traceString</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-637"></a>-<a name="line-638"></a><span class='comment'>-- | read the base URI from the globale state</span>-<a name="line-639"></a>-<a name="line-640"></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-641"></a><span class='definition'>getBaseURI</span>-<a name="line-642"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_baseURI</span>-<a name="line-643"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-644"></a>      <span class='layout'>(</span> <span class='layout'>(</span> <span class='varid'>getDefaultBaseURI</span>-<a name="line-645"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-646"></a>	  <span class='varid'>setBaseURI</span>		-<a name="line-647"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-648"></a>	  <span class='varid'>getBaseURI</span>-<a name="line-649"></a>	<span class='layout'>)</span>-<a name="line-650"></a>	<span class='varop'>`when`</span>-<a name="line-651"></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-652"></a>      <span class='layout'>)</span>-<a name="line-653"></a>-<a name="line-654"></a><span class='comment'>-- | change the base URI with a possibly relative URI, can be used for</span>-<a name="line-655"></a><span class='comment'>-- evaluating the xml:base attribute. Returns the new absolute base URI.</span>-<a name="line-656"></a><span class='comment'>-- Fails, if input is not parsable with parseURIReference</span>-<a name="line-657"></a><span class='comment'>--</span>-<a name="line-658"></a><span class='comment'>-- see also: 'setBaseURI', 'mkAbsURI'</span>-<a name="line-659"></a>-<a name="line-660"></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-661"></a><span class='definition'>changeBaseURI</span>-<a name="line-662"></a>    <span class='keyglyph'>=</span> <span class='varid'>mkAbsURI</span>-<a name="line-663"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-664"></a>      <span class='varid'>setBaseURI</span>-<a name="line-665"></a>-<a name="line-666"></a><span class='comment'>-- | set the default base URI, if parameter is null, the system base (@ file:\/\/\/\&lt;cwd\&gt;\/ @) is used,</span>-<a name="line-667"></a><span class='comment'>-- else the parameter, must be called before any document is read</span>-<a name="line-668"></a>-<a name="line-669"></a><a name="setDefaultBaseURI"></a><span class='definition'>setDefaultBaseURI</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span>-<a name="line-670"></a><span class='definition'>setDefaultBaseURI</span> <span class='varid'>base</span>-<a name="line-671"></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-672"></a>	<span class='keyword'>then</span> <span class='varid'>arrIO</span> <span class='varid'>getDir</span>-<a name="line-673"></a>	<span class='keyword'>else</span> <span class='varid'>constA</span> <span class='varid'>base</span>-<a name="line-674"></a>      <span class='layout'>)</span>-<a name="line-675"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-676"></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'>-&gt;</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-677"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-678"></a>      <span class='varid'>traceString</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-679"></a>    <span class='keyword'>where</span>-<a name="line-680"></a>    <span class='varid'>getDir</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-681"></a>	       <span class='varid'>cwd</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCurrentDirectory</span>-<a name="line-682"></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-683"></a>-<a name="line-684"></a>    <span class='comment'>-- under Windows getCurrentDirectory returns something like: "c:\path\to\file"</span>-<a name="line-685"></a>    <span class='comment'>-- backslaches are not allowed in URIs and paths must start with a /</span>-<a name="line-686"></a>    <span class='comment'>-- so this is transformed into "/c:/path/to/file"</span>-<a name="line-687"></a>-<a name="line-688"></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-689"></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-690"></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-691"></a>    <span class='varid'>normalize</span> <span class='varid'>wd'</span>-<a name="line-692"></a>	<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>escapeNonUriChar</span> <span class='varid'>wd'</span>-<a name="line-693"></a>				 -<a name="line-694"></a>    <span class='varid'>win32ToUriChar</span> <span class='chr'>'\\'</span> <span class='keyglyph'>=</span> <span class='str'>"/"</span>-<a name="line-695"></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-696"></a>-<a name="line-697"></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-698"></a>-<a name="line-699"></a>-<a name="line-700"></a><span class='comment'>-- | get the default base URI</span>-<a name="line-701"></a>-<a name="line-702"></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-703"></a><span class='definition'>getDefaultBaseURI</span>-<a name="line-704"></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-705"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-706"></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-707"></a>	<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-708"></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-709"></a>-<a name="line-710"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-711"></a>-<a name="line-712"></a><span class='comment'>-- | remember base uri, run an arrow and restore the base URI, used with external entity substitution</span>-<a name="line-713"></a>-<a name="line-714"></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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-715"></a><span class='definition'>runInLocalURIContext</span> <span class='varid'>f</span>-<a name="line-716"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getBaseURI</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-717"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-718"></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-719"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-720"></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-721"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-722"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>-<a name="line-723"></a>-<a name="line-724"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-725"></a>-<a name="line-726"></a><span class='comment'>-- | set the global trace level</span>-<a name="line-727"></a>-<a name="line-728"></a><a name="setTraceLevel"></a><span class='definition'>setTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-729"></a><span class='definition'>setTraceLevel</span> <span class='varid'>l</span>-<a name="line-730"></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'>-&gt;</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-731"></a>-<a name="line-732"></a><span class='comment'>-- | read the global trace level</span>-<a name="line-733"></a>-<a name="line-734"></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-735"></a><span class='definition'>getTraceLevel</span>-<a name="line-736"></a>    <span class='keyglyph'>=</span> <span class='varid'>getSysParam</span> <span class='varid'>xio_trace</span>-<a name="line-737"></a>-<a name="line-738"></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-739"></a>-<a name="line-740"></a><a name="withTraceLevel"></a><span class='definition'>withTraceLevel</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span>-<a name="line-741"></a><span class='definition'>withTraceLevel</span> <span class='varid'>level</span> <span class='varid'>f</span>-<a name="line-742"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>       <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>-<a name="line-743"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-744"></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-745"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-746"></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-747"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-748"></a>      <span class='varid'>arrL</span> <span class='varid'>snd</span>-<a name="line-749"></a>    <span class='keyword'>where</span>-<a name="line-750"></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-751"></a>    <span class='varid'>restoreTraceLevel</span>-<a name="line-752"></a>	<span class='keyglyph'>=</span> <span class='varid'>setTraceLevel</span> <span class='varop'>$&lt;</span> <span class='varid'>this</span>-<a name="line-753"></a>-<a name="line-754"></a><span class='comment'>-- | apply a trace arrow and issue message to stderr</span>-<a name="line-755"></a>-<a name="line-756"></a><a name="trace"></a><span class='definition'>trace</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-757"></a><span class='definition'>trace</span> <span class='varid'>level</span> <span class='varid'>trc</span>-<a name="line-758"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trc</span>-<a name="line-759"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-760"></a>		<span class='varid'>arrIO</span> <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-761"></a>				<span class='varid'>hPutStrLn</span> <span class='varid'>stderr</span> <span class='varid'>s</span>-<a name="line-762"></a>				<span class='varid'>hFlush</span> <span class='varid'>stderr</span>-<a name="line-763"></a>			      <span class='layout'>)</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='varop'>`when`</span> <span class='layout'>(</span> <span class='varid'>getTraceLevel</span>-<a name="line-767"></a>	       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-768"></a>	       <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>&gt;=</span> <span class='varid'>level</span><span class='layout'>)</span>-<a name="line-769"></a>	     <span class='layout'>)</span>-<a name="line-770"></a>-<a name="line-771"></a><a name="traceMsg"></a><span class='comment'>-- | issue a string message as trace </span>-<a name="line-772"></a><span class='definition'>traceMsg</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-773"></a><span class='definition'>traceMsg</span> <span class='varid'>level</span> <span class='varid'>msg</span>-<a name="line-774"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span> <span class='varid'>trace</span> <span class='varid'>level</span> <span class='varop'>$</span>-<a name="line-775"></a>		<span class='varid'>constA</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='varop'>++</span> <span class='varid'>msg</span><span class='layout'>)</span>-<a name="line-776"></a>	      <span class='layout'>)</span>-<a name="line-777"></a>-<a name="line-778"></a><a name="traceString"></a><span class='comment'>-- | issue the string input of an arrow</span>-<a name="line-779"></a><span class='definition'>traceString</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-780"></a><span class='definition'>traceString</span> <span class='varid'>level</span> <span class='varid'>f</span>-<a name="line-781"></a>    <span class='keyglyph'>=</span> <span class='varid'>perform</span> <span class='layout'>(</span><span class='varid'>applyA</span> <span class='layout'>(</span><span class='varid'>arr</span> <span class='varid'>f</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>arr</span> <span class='layout'>(</span><span class='varid'>traceMsg</span> <span class='varid'>level</span><span class='layout'>)</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-782"></a>-<a name="line-783"></a><span class='comment'>-- | issue the source representation of a document if trace level &gt;= 3</span>-<a name="line-784"></a><span class='comment'>--</span>-<a name="line-785"></a><span class='comment'>-- for better readability the source is formated with indentDoc</span>-<a name="line-786"></a>-<a name="line-787"></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-788"></a><span class='definition'>traceSource</span> -<a name="line-789"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>3</span> <span class='varop'>$</span>-<a name="line-790"></a>      <span class='varid'>xshow</span>-<a name="line-791"></a>      <span class='layout'>(</span> <span class='varid'>choiceA</span> <span class='keyglyph'>[</span> <span class='varid'>isRoot</span> <span class='conop'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>indentDoc</span>-<a name="line-792"></a>			       <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-793"></a>			       <span class='varid'>getChildren</span>-<a name="line-794"></a>			     <span class='layout'>)</span>-<a name="line-795"></a>		<span class='layout'>,</span> <span class='varid'>isElem</span> <span class='conop'>:-&gt;</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-796"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>indentDoc</span>-<a name="line-797"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>-<a name="line-798"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>isElem</span>-<a name="line-799"></a>			     <span class='layout'>)</span>-<a name="line-800"></a>		<span class='layout'>,</span> <span class='varid'>this</span>   <span class='conop'>:-&gt;</span> <span class='varid'>this</span>-<a name="line-801"></a>		<span class='keyglyph'>]</span>-<a name="line-802"></a>      <span class='layout'>)</span>-<a name="line-803"></a>-<a name="line-804"></a><a name="traceTree"></a><span class='comment'>-- | issue the tree representation of a document if trace level &gt;= 4</span>-<a name="line-805"></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-806"></a><span class='definition'>traceTree</span>-<a name="line-807"></a>    <span class='keyglyph'>=</span> <span class='varid'>trace</span> <span class='num'>4</span> <span class='varop'>$</span>-<a name="line-808"></a>      <span class='varid'>xshow</span> <span class='layout'>(</span> <span class='varid'>treeRepOfXmlDoc</span>-<a name="line-809"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-810"></a>	      <span class='varid'>addHeadlineToXmlDoc</span>-<a name="line-811"></a>	      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-812"></a>	      <span class='varid'>getChildren</span>-<a name="line-813"></a>	    <span class='layout'>)</span>-<a name="line-814"></a>-<a name="line-815"></a><span class='comment'>-- | trace a main computation step</span>-<a name="line-816"></a><span class='comment'>-- issue a message when trace level &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 4</span>-<a name="line-817"></a>-<a name="line-818"></a><a name="traceDoc"></a><span class='definition'>traceDoc</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>-<a name="line-819"></a><span class='definition'>traceDoc</span> <span class='varid'>msg</span>-<a name="line-820"></a>    <span class='keyglyph'>=</span> <span class='varid'>traceMsg</span> <span class='num'>1</span> <span class='varid'>msg</span>-<a name="line-821"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-822"></a>      <span class='varid'>traceSource</span>-<a name="line-823"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-824"></a>      <span class='varid'>traceTree</span>-<a name="line-825"></a>-<a name="line-826"></a><span class='comment'>-- | trace the global state</span>-<a name="line-827"></a>-<a name="line-828"></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-829"></a><span class='definition'>traceState</span>-<a name="line-830"></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'>&gt;&gt;.</span> <span class='varid'>concat</span><span class='layout'>)</span>-<a name="line-831"></a>			<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-832"></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-833"></a>		      <span class='layout'>)</span>-<a name="line-834"></a>		<span class='varop'>&gt;&gt;&gt;</span>-<a name="line-835"></a>		<span class='varid'>traceString</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-836"></a>	      <span class='layout'>)</span>-<a name="line-837"></a>      <span class='keyword'>where</span>-<a name="line-838"></a>      <span class='comment'>-- formatParam	:: (String, XmlTrees) -&gt; IOStateArrow s b1 XmlTree</span>-<a name="line-839"></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-840"></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'>&lt;+&gt;</span> <span class='varid'>txt</span> <span class='str'>"\n"</span>-<a name="line-841"></a>-<a name="line-842"></a><span class='comment'>-- ----------------------------------------------------------</span>-<a name="line-843"></a>-<a name="line-844"></a><span class='comment'>-- | compute the absolut URI for a given URI and a base URI</span>-<a name="line-845"></a>-<a name="line-846"></a><a name="expandURIString"></a><span class='definition'>expandURIString</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-847"></a><span class='definition'>expandURIString</span> <span class='varid'>uri</span> <span class='varid'>base</span>-<a name="line-848"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-849"></a>      <span class='varid'>base'</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>-<a name="line-850"></a>      <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>-<a name="line-851"></a>      <span class='varid'>abs'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>nonStrictRelativeTo</span> <span class='varid'>uri'</span> <span class='varid'>base'</span>-<a name="line-852"></a>      <span class='varid'>return</span> <span class='varop'>$</span> <span class='varid'>show</span> <span class='varid'>abs'</span>-<a name="line-853"></a>-<a name="line-854"></a><span class='comment'>-- | arrow variant of 'expandURIString', fails if 'expandURIString' returns Nothing</span>-<a name="line-855"></a>-<a name="line-856"></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'>=&gt;</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-857"></a><span class='definition'>expandURI</span>-<a name="line-858"></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-859"></a>-<a name="line-860"></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-861"></a>-<a name="line-862"></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-863"></a><span class='definition'>mkAbsURI</span>-<a name="line-864"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>this</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>expandURI</span>-<a name="line-865"></a>-<a name="line-866"></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-867"></a><span class='comment'>--</span>-<a name="line-868"></a><span class='comment'>-- See Network.URI for URI components</span>-<a name="line-869"></a>-<a name="line-870"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-871"></a><span class='definition'>getSchemeFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>scheme</span>-<a name="line-872"></a>    <span class='keyword'>where</span>-<a name="line-873"></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-874"></a>-<a name="line-875"></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-876"></a>-<a name="line-877"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-878"></a><span class='definition'>getRegNameFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>host</span>-<a name="line-879"></a>    <span class='keyword'>where</span>-<a name="line-880"></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-881"></a>-<a name="line-882"></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-883"></a>-<a name="line-884"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-885"></a><span class='definition'>getPortFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>port</span>-<a name="line-886"></a>    <span class='keyword'>where</span>-<a name="line-887"></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-888"></a>-<a name="line-889"></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-890"></a>-<a name="line-891"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-892"></a><span class='definition'>getUserInfoFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>ui</span>-<a name="line-893"></a>    <span class='keyword'>where</span>-<a name="line-894"></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-895"></a>-<a name="line-896"></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-897"></a>-<a name="line-898"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-899"></a><span class='definition'>getPathFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriPath</span>-<a name="line-900"></a>-<a name="line-901"></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-902"></a>-<a name="line-903"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-904"></a><span class='definition'>getQueryFromURI</span>		<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriQuery</span>-<a name="line-905"></a>-<a name="line-906"></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-907"></a>-<a name="line-908"></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'>=&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-909"></a><span class='definition'>getFragmentFromURI</span>	<span class='keyglyph'>=</span> <span class='varid'>getPartFromURI</span> <span class='varid'>uriFragment</span>-<a name="line-910"></a>-<a name="line-911"></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-912"></a>-<a name="line-913"></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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='conid'>String</span> <span class='conid'>String</span>-<a name="line-914"></a><span class='definition'>getPartFromURI</span> <span class='varid'>sel</span>-<a name="line-915"></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-916"></a>      <span class='keyword'>where</span>-<a name="line-917"></a>      <span class='varid'>getPart</span> <span class='varid'>s</span> <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-918"></a>		  <span class='varid'>uri</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>s</span>-<a name="line-919"></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-920"></a>-<a name="line-921"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-922"></a>-<a name="line-923"></a><span class='comment'>-- | set the table mapping of file extensions to mime types in the system state</span>-<a name="line-924"></a><span class='comment'>--</span>-<a name="line-925"></a><span class='comment'>-- Default table is defined in 'Text.XML.HXT.DOM.MimeTypeDefaults'.</span>-<a name="line-926"></a><span class='comment'>-- This table is used when reading loacl files, (file: protocol) to determine the mime type</span>-<a name="line-927"></a>-<a name="line-928"></a><a name="setMimeTypeTable"></a><span class='definition'>setMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-929"></a><span class='definition'>setMimeTypeTable</span> <span class='varid'>mtt</span>-<a name="line-930"></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'>-&gt;</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-931"></a>-<a name="line-932"></a><span class='comment'>-- | set the table mapping of file extensions to mime types by an external config file</span>-<a name="line-933"></a><span class='comment'>--</span>-<a name="line-934"></a><span class='comment'>-- The config file must follow the conventions of /etc/mime.types on a debian linux system,</span>-<a name="line-935"></a><span class='comment'>-- that means all empty lines and all lines starting with a # are ignored. The other lines</span>-<a name="line-936"></a><span class='comment'>-- must consist of a mime type followed by a possible empty list of extensions.</span>-<a name="line-937"></a><span class='comment'>-- The list of extenstions and mime types overwrites the default list in the system state</span>-<a name="line-938"></a><span class='comment'>-- of the IOStateArrow</span>-<a name="line-939"></a>-<a name="line-940"></a><a name="setMimeTypeTableFromFile"></a><span class='definition'>setMimeTypeTableFromFile</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>b</span>-<a name="line-941"></a><span class='definition'>setMimeTypeTableFromFile</span> <span class='varid'>file</span>-<a name="line-942"></a>    <span class='keyglyph'>=</span> <span class='varid'>setMimeTypeTable</span> <span class='varop'>$&lt;</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-943"></a>-<a name="line-944"></a><span class='comment'>-- ------------------------------------------------------------</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'>-&gt;</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'>=&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='conid'>XmlTree</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>runIOSLA</span> <span class='layout'>(</span><span class='varid'>emptyRoot</span> <span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>s</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>s</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s1</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&lt;-</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'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>XIOSysState</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XIOSysState</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>^&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</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'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;^</span>+<a name="line-431"></a>      <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>()</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;&amp;</span> <span class='varid'>getErrorMsg</span>+<a name="line-480"></a>		<span class='varop'>&gt;&gt;&gt;</span>+<a name="line-481"></a>		<span class='varid'>arr</span> <span class='varid'>formatErrorMsg</span>+<a name="line-482"></a>		<span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-555"></a>	<span class='varid'>sysErrorMsg</span>+<a name="line-556"></a>	<span class='varop'>&gt;&gt;&gt;</span>+<a name="line-557"></a>	<span class='varid'>addToErrorMsgList</span>+<a name="line-558"></a>	<span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&lt;+&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-590"></a>	<span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>level</span> <span class='varop'>&gt;=</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'>-&gt;</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'>$&lt;</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'>&lt;=</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'>=&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&lt;=</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-647"></a>	  <span class='varid'>setBaseURI</span>		+<a name="line-648"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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:\/\/\/\&lt;cwd\&gt;\/ @) 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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>&lt;-</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>+<a name="line-718"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;&amp;</span> <span class='varid'>this</span> <span class='layout'>)</span>+<a name="line-744"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>$&lt;</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'>-&gt;</span> <span class='conid'>IOStateArrow</span> <span class='varid'>s</span> <span class='varid'>b</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-769"></a>	       <span class='varid'>isA</span> <span class='layout'>(</span><span class='varop'>&gt;=</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'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='layout'>(</span><span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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 &gt;= 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'>:-&gt;</span> <span class='layout'>(</span> <span class='varid'>indentDoc</span>+<a name="line-801"></a>			       <span class='varop'>&gt;&gt;&gt;</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'>:-&gt;</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'>&gt;&gt;&gt;</span> <span class='varid'>indentDoc</span>+<a name="line-806"></a>			       <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>getChildren</span>+<a name="line-807"></a>			       <span class='varop'>&gt;&gt;&gt;</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'>:-&gt;</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 &gt;= 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'>&gt;&gt;&gt;</span>+<a name="line-819"></a>	      <span class='varid'>addHeadlineToXmlDoc</span>+<a name="line-820"></a>	      <span class='varop'>&gt;&gt;&gt;</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 &gt;= 1, issue document source if level &gt;= 3, issue tree when level is &gt;= 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'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-831"></a>      <span class='varid'>traceSource</span>+<a name="line-832"></a>      <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;.</span> <span class='varid'>concat</span><span class='layout'>)</span>+<a name="line-840"></a>			<span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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) -&gt; 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'>&lt;+&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>base</span>+<a name="line-859"></a>      <span class='varid'>uri'</span>  <span class='keyglyph'>&lt;-</span> <span class='varid'>parseURIReference</span> <span class='varid'>uri</span>+<a name="line-860"></a>      <span class='varid'>abs'</span>  <span class='keyglyph'>&lt;-</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'>=&gt;</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'>&amp;&amp;&amp;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <span class='varop'>&gt;&gt;&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='conid'>URI</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>$&lt;</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-DOM-Interface.html view
@@ -28,21 +28,19 @@ <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'>NamespacePredicates</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'>Util</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'>XmlOptions</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'>DOM</span><span class='varop'>.</span><span class='conid'>MimeTypes</span>-<a name="line-27"></a>    <span class='layout'>)</span>-<a name="line-28"></a><span class='keyword'>where</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'>XmlKeywords</span>		<span class='comment'>-- constants</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'>TypeDefs</span>		<span class='comment'>-- XML Tree types</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'>NamespacePredicates</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'>Util</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlOptions</span>		<span class='comment'>-- predefined options</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'>MimeTypes</span>		<span class='comment'>-- mime types related stuff</span>-<a name="line-36"></a>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- ------------------------------------------------------------</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-MimeTypes.html view
@@ -26,98 +26,100 @@ <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-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='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-24"></a><span class='keyword'>import</span>           <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<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'>Map</span> <span class='keyword'>as</span> <span class='conid'>M</span>-<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'>IO</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'>MimeTypeDefaults</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><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-35"></a>-<a name="line-36"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- mime types</span>-<a name="line-39"></a><span class='comment'>--</span>-<a name="line-40"></a><span class='comment'>-- see RFC \"http:\/\/www.rfc-editor.org\/rfc\/rfc3023.txt\"</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="application_xhtml"></a><span class='definition'>application_xhtml</span><span class='layout'>,</span>-<a name="line-43"></a> <span class='varid'>application_xml</span><span class='layout'>,</span>-<a name="line-44"></a> <span class='varid'>application_xml_external_parsed_entity</span><span class='layout'>,</span>-<a name="line-45"></a> <span class='varid'>application_xml_dtd</span><span class='layout'>,</span>-<a name="line-46"></a> <span class='varid'>text_html</span><span class='layout'>,</span>-<a name="line-47"></a> <span class='varid'>text_xml</span><span class='layout'>,</span>-<a name="line-48"></a> <span class='varid'>text_xml_external_parsed_entity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='definition'>application_xhtml</span>			<span class='keyglyph'>=</span> <span class='str'>"application/xhtml+xml"</span>-<a name="line-51"></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-52"></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-53"></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-54"></a>-<a name="line-55"></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-56"></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-57"></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-58"></a>-<a name="line-59"></a><a name="isHtmlMimeType"></a><span class='definition'>isHtmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-60"></a><span class='definition'>isHtmlMimeType</span> <span class='varid'>t</span>-<a name="line-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>text_html</span>-<a name="line-62"></a>-<a name="line-63"></a><a name="isXmlMimeType"></a><span class='definition'>isXmlMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-64"></a><span class='definition'>isXmlMimeType</span> <span class='varid'>t</span>-<a name="line-65"></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-66"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml</span>-<a name="line-67"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_external_parsed_entity</span>-<a name="line-68"></a>		 <span class='layout'>,</span> <span class='varid'>application_xml_dtd</span>-<a name="line-69"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml</span>-<a name="line-70"></a>		 <span class='layout'>,</span> <span class='varid'>text_xml_external_parsed_entity</span>-<a name="line-71"></a>		 <span class='keyglyph'>]</span>-<a name="line-72"></a>	<span class='varop'>||</span>-<a name="line-73"></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-74"></a>      <span class='layout'>)</span>					<span class='comment'>-- or image/svg+xml</span>-<a name="line-75"></a>-<a name="line-76"></a><a name="defaultMimeTypeTable"></a><span class='definition'>defaultMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>MimeTypeTable</span>-<a name="line-77"></a><span class='definition'>defaultMimeTypeTable</span>-<a name="line-78"></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-79"></a>-<a name="line-80"></a><a name="extensionToMimeType"></a><span class='definition'>extensionToMimeType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-81"></a><span class='definition'>extensionToMimeType</span> <span class='varid'>e</span>-<a name="line-82"></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-83"></a>    <span class='keyword'>where</span>-<a name="line-84"></a>    <span class='varid'>lookupMime</span> <span class='varid'>t</span>-<a name="line-85"></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-86"></a>	  <span class='varop'>`mplus`</span>-<a name="line-87"></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-88"></a>          <span class='varop'>`mplus`</span>-<a name="line-89"></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-90"></a>-<a name="line-91"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-92"></a>-<a name="line-93"></a><a name="readMimeTypeTable"></a><span class='definition'>readMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>FilePath</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IO</span> <span class='conid'>MimeTypeTable</span>-<a name="line-94"></a><span class='definition'>readMimeTypeTable</span> <span class='varid'>inp</span>-<a name="line-95"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-96"></a>      <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>inp</span> <span class='conid'>ReadMode</span>-<a name="line-97"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>hGetContents</span> <span class='varid'>h</span>-<a name="line-98"></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='varid'>c</span>-<a name="line-99"></a>-<a name="line-100"></a><a name="parseMimeTypeTable"></a><span class='definition'>parseMimeTypeTable</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-101"></a><span class='definition'>parseMimeTypeTable</span>-<a name="line-102"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span>-<a name="line-103"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>buildPairs</span>-<a name="line-104"></a>      <span class='varop'>.</span> <span class='varid'>map</span> <span class='varid'>words</span>-<a name="line-105"></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-106"></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-107"></a>      <span class='varop'>.</span> <span class='varid'>lines</span>-<a name="line-108"></a>    <span class='keyword'>where</span>-<a name="line-109"></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'>-&gt;</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-110"></a>    <span class='varid'>buildPairs</span>	<span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-111"></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'>-&gt;</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-112"></a>-<a name="line-113"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>MimeTypeTable</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&lt;-</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'>-&gt;</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'>-&gt;</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'>-&gt;</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-NamespacePredicates.html
@@ -1,138 +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'>-- basic Namespace and QName predicates and functions</span>-<a name="line-3"></a><span class='comment'>--</span>-<a name="line-4"></a><span class='comment'>-- $Id: NamespacePredicates.hs,v 1.3 2006/11/12 14:53:00 hxml Exp $</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'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</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'>DOM</span><span class='varop'>.</span><span class='conid'>NamespacePredicates</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'>XmlTreeTypes</span>		<span class='comment'>-- NTree and XNode types</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'>XmlKeywords</span>		<span class='comment'>-- keywords for DTD</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'>Unicode</span>-<a name="line-16"></a>    <span class='layout'>(</span> <span class='varid'>isXmlNCNameStartChar</span>-<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>-<a name="line-18"></a>    <span class='layout'>)</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>-<a name="line-23"></a><span class='comment'>-- |</span>-<a name="line-24"></a><span class='comment'>-- Compute the name prefix and the namespace uri for a qualified name.</span>-<a name="line-25"></a><span class='comment'>--</span>-<a name="line-26"></a><span class='comment'>-- This function does not test whether the name is a wellformed qualified name.</span>-<a name="line-27"></a><span class='comment'>-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,</span>-<a name="line-28"></a><span class='comment'>-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="setNamespace"></a><span class='definition'>setNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-31"></a><span class='definition'>setNamespace</span> <span class='varid'>nst</span> <span class='varid'>n</span>-<a name="line-32"></a>    <span class='keyglyph'>=</span> <span class='varid'>uncurry</span> <span class='varid'>ns</span> <span class='varop'>.</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'>qn</span>-<a name="line-33"></a>    <span class='keyword'>where</span>-<a name="line-34"></a>    <span class='varid'>qn</span> <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>n</span>	<span class='comment'>-- using qualifiedName instead of localPart enables recomputing of setNamespace</span>-<a name="line-35"></a>-<a name="line-36"></a>    <span class='varid'>ns</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-37"></a>    <span class='varid'>ns</span> <span class='varid'>lp</span> <span class='str'>""</span>					<span class='comment'>-- no ":" found in name, use default namespace uri</span>-<a name="line-38"></a>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>lp</span> <span class='layout'>(</span><span class='varid'>lookup1</span> <span class='str'>""</span> <span class='varid'>nst</span><span class='layout'>)</span>-<a name="line-39"></a>-<a name="line-40"></a>    <span class='varid'>ns</span> <span class='varid'>px</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span> <span class='layout'>(</span><span class='chr'>':'</span> <span class='conop'>:</span> <span class='varid'>lp</span><span class='keyglyph'>@</span><span class='layout'>(</span><span class='keyword'>_</span><span class='conop'>:</span><span class='keyword'>_</span><span class='layout'>)</span><span class='layout'>)</span>		<span class='comment'>-- non empty prefix and non empty local part found</span>-<a name="line-41"></a>	<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'>lookup1</span> <span class='varid'>px</span> <span class='varid'>nst</span><span class='layout'>)</span>-<a name="line-42"></a>-<a name="line-43"></a>    <span class='varid'>ns</span> <span class='keyword'>_</span> <span class='keyword'>_</span>					<span class='comment'>-- not a legal qualified name, don't change name</span>-<a name="line-44"></a>	<span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="xmlnsQN"></a><span class='definition'>xmlnsQN</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-47"></a><span class='definition'>xmlnsQN</span>	<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>a_xmlns</span> <span class='varid'>xmlnsNamespace</span>-<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>-<a name="line-52"></a><span class='comment'>-- |</span>-<a name="line-53"></a><span class='comment'>-- test for wellformed NCName, rule [4] XML Namespaces</span>-<a name="line-54"></a>-<a name="line-55"></a><a name="isNCName"></a><span class='definition'>isNCName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-56"></a><span class='definition'>isNCName</span> <span class='conid'>[]</span>-<a name="line-57"></a>    <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-58"></a><span class='definition'>isNCName</span> <span class='varid'>n</span>-<a name="line-59"></a>    <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-60"></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-61"></a>	    <span class='varid'>n</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><span class='comment'>-- test for wellformed QName, rule [6] XML Namespaces</span>-<a name="line-66"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-67"></a>-<a name="line-68"></a><a name="isWellformedQualifiedName"></a><span class='definition'>isWellformedQualifiedName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-69"></a><span class='definition'>isWellformedQualifiedName</span> <span class='varid'>s</span>-<a name="line-70"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>lp</span>-<a name="line-71"></a>	<span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span>-<a name="line-72"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-73"></a>	<span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>px</span> <span class='varop'>&amp;&amp;</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-74"></a>    <span class='keyword'>where</span>-<a name="line-75"></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-76"></a>-<a name="line-77"></a><span class='comment'>-- |</span>-<a name="line-78"></a><span class='comment'>-- test for wellformed QName values.</span>-<a name="line-79"></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-80"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-81"></a>-<a name="line-82"></a><a name="isWellformedQName"></a><span class='definition'>isWellformedQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-83"></a><span class='definition'>isWellformedQName</span> <span class='varid'>n</span>-<a name="line-84"></a>    <span class='keyglyph'>=</span> <span class='varid'>isNCName</span> <span class='varid'>lp</span>				<span class='comment'>-- rule [8] XML Namespaces</span>-<a name="line-85"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-86"></a>      <span class='layout'>(</span> <span class='varid'>null</span> <span class='varid'>px</span>					<span class='comment'>-- rule [6] XML Namespaces</span>-<a name="line-87"></a>	<span class='varop'>||</span>-<a name="line-88"></a>	<span class='varid'>isNCName</span> <span class='varid'>px</span>				<span class='comment'>-- rule [7] XML Namespaces</span>-<a name="line-89"></a>      <span class='layout'>)</span>-<a name="line-90"></a>    <span class='keyword'>where</span>-<a name="line-91"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>-<a name="line-92"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span> <span class='varid'>n</span>-<a name="line-93"></a>-<a name="line-94"></a><span class='comment'>-- |</span>-<a name="line-95"></a><span class='comment'>-- test for a wellformed namespace declaration</span>-<a name="line-96"></a><span class='comment'>-- all namespace prefixes starting with \"xml\" are reserved for XML related definitions.</span>-<a name="line-97"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-98"></a>-<a name="line-99"></a><a name="isWellformedNSDecl"></a><span class='definition'>isWellformedNSDecl</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-100"></a><span class='definition'>isWellformedNSDecl</span> <span class='varid'>n</span>-<a name="line-101"></a>    <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>px</span>-<a name="line-102"></a>      <span class='varop'>||</span>-<a name="line-103"></a>      <span class='varid'>px</span> <span class='varop'>/=</span> <span class='varid'>a_xmlns</span>-<a name="line-104"></a>      <span class='varop'>||</span>-<a name="line-105"></a>      <span class='layout'>(</span><span class='varid'>take</span> <span class='num'>3</span> <span class='varid'>lp</span><span class='layout'>)</span> <span class='varop'>/=</span> <span class='varid'>a_xml</span>-<a name="line-106"></a>    <span class='keyword'>where</span>-<a name="line-107"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</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><span class='comment'>-- </span>-<a name="line-112"></a><span class='comment'>-- predicate is used in filter 'valdateNamespaces'.</span>-<a name="line-113"></a>-<a name="line-114"></a><a name="isDeclaredNamespace"></a><span class='definition'>isDeclaredNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-115"></a><span class='definition'>isDeclaredNamespace</span> <span class='varid'>n</span>-<a name="line-116"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>					<span class='comment'>-- no namespace used</span>-<a name="line-117"></a>	<span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-118"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>				<span class='comment'>-- "xmlns" has a predefined namespace uri</span>-<a name="line-119"></a>	<span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-120"></a>    <span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xml</span>				<span class='comment'>-- "xml" has a predefiend namespace"</span>-<a name="line-121"></a>	<span class='keyglyph'>=</span> <span class='varid'>ns</span> <span class='varop'>==</span> <span class='varid'>xmlNamespace</span>-<a name="line-122"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- namespace values are not empty</span>-<a name="line-123"></a>	<span class='keyglyph'>=</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'>ns</span>-<a name="line-124"></a>    <span class='keyword'>where</span>-<a name="line-125"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span>   <span class='varid'>n</span>-<a name="line-126"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-127"></a>-<a name="line-128"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-</pre></body>-</html>
doc/hdoc/src/Text-XML-HXT-DOM-QualifiedName.html view
@@ -24,201 +24,524 @@ <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='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-20"></a>    <span class='layout'>)</span>-<a name="line-21"></a>-<a name="line-22"></a><span class='keyword'>where</span>-<a name="line-23"></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-24"></a>-<a name="line-25"></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-26"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Typeable</span>-<a name="line-27"></a>-<a name="line-28"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<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'>-- Namespace support for element and attribute names.</span>-<a name="line-32"></a><span class='comment'>--</span>-<a name="line-33"></a><span class='comment'>-- A qualified name consists of a name prefix, a local name</span>-<a name="line-34"></a><span class='comment'>-- and a namespace uri.</span>-<a name="line-35"></a><span class='comment'>-- All modules, which are not namespace aware, use only the 'localPart' component.</span>-<a name="line-36"></a><span class='comment'>-- When dealing with namespaces, the document tree must be processed by "propagateNamespaces"</span>-<a name="line-37"></a><span class='comment'>-- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="QName"></a><span class='keyword'>data</span> <span class='conid'>QName</span> <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"</span>-<a name="line-40"></a>		<span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the local part of a qualified name \"namePrefix:localPart\"</span>-<a name="line-41"></a>		<span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>	<span class='comment'>-- ^ the associated namespace uri</span>-<a name="line-42"></a>		<span class='layout'>}</span>-<a name="line-43"></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-44"></a>-<a name="line-45"></a><span class='comment'>-- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names</span>-<a name="line-46"></a><span class='comment'>-- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and</span>-<a name="line-47"></a><span class='comment'>-- local parts both are equal</span>-<a name="line-48"></a>    -<a name="line-49"></a><span class='keyword'>instance</span> <span class='conid'>Eq</span> <span class='conid'>QName</span> <span class='keyword'>where</span>-<a name="line-50"></a>    <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>q2</span>-<a name="line-51"></a>	<span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>null</span> <span class='varid'>ns2</span>-<a name="line-52"></a>	    <span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span> <span class='varid'>q1</span> <span class='varop'>==</span> <span class='varid'>qualifiedName</span> <span class='varid'>q2</span>-<a name="line-53"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-54"></a>	    <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-55"></a>	      <span class='varop'>&amp;&amp;</span>-<a name="line-56"></a>	      <span class='varid'>ns1</span> <span class='varop'>==</span> <span class='varid'>ns2</span>-<a name="line-57"></a>	<span class='keyword'>where</span>-<a name="line-58"></a>	<span class='varid'>ns1</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>q1</span>-<a name="line-59"></a>	<span class='varid'>ns2</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>q2</span>-<a name="line-60"></a>-<a name="line-61"></a><span class='keyword'>instance</span> <span class='conid'>NFData</span> <span class='conid'>QName</span> <span class='keyword'>where</span>-<a name="line-62"></a>    <span class='varid'>rnf</span> <span class='layout'>(</span><span class='conid'>QN</span> <span class='varid'>np</span> <span class='varid'>lp</span> <span class='varid'>ns</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>rnf</span> <span class='varid'>np</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>lp</span> <span class='varop'>`seq`</span> <span class='varid'>rnf</span> <span class='varid'>ns</span>-<a name="line-63"></a>-<a name="line-64"></a>-<a name="line-65"></a><span class='comment'>-- just for adding the module to the lib</span>-<a name="line-66"></a><span class='comment'>-- |</span>-<a name="line-67"></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-68"></a>-<a name="line-69"></a><a name="qualifiedName"></a><span class='definition'>qualifiedName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-70"></a><span class='definition'>qualifiedName</span> <span class='varid'>n</span>-<a name="line-71"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>px</span>-<a name="line-72"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>-<a name="line-73"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-74"></a>	<span class='keyglyph'>=</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'>lp</span><span class='layout'>)</span>-<a name="line-75"></a>    <span class='keyword'>where</span>-<a name="line-76"></a>    <span class='varid'>px</span> <span class='keyglyph'>=</span> <span class='varid'>namePrefix</span> <span class='varid'>n</span>-<a name="line-77"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>  <span class='varid'>n</span>-<a name="line-78"></a>-<a name="line-79"></a><span class='comment'>-- |</span>-<a name="line-80"></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-81"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</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><a name="universalName"></a><span class='definition'>universalName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-84"></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'>-&gt;</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-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='comment'>-- |</span>-<a name="line-87"></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-88"></a><span class='comment'>-- where the subject, predicate and object often are concatenated from namespace uri and local part</span>-<a name="line-89"></a><span class='comment'>-- (specialisation of 'buildUniversalName')</span>-<a name="line-90"></a>-<a name="line-91"></a><a name="universalUri"></a><span class='definition'>universalUri</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-92"></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-93"></a>-<a name="line-94"></a><span class='comment'>-- |</span>-<a name="line-95"></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-96"></a><span class='comment'>-- namespace uri and local part are combined with the combining function given by the first parameter</span>-<a name="line-97"></a>-<a name="line-98"></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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-99"></a><span class='definition'>buildUniversalName</span> <span class='varid'>bf</span> <span class='varid'>n</span>-<a name="line-100"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>ns</span>-<a name="line-101"></a>	<span class='keyglyph'>=</span> <span class='varid'>lp</span>-<a name="line-102"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-103"></a>	<span class='keyglyph'>=</span> <span class='varid'>bf</span> <span class='varid'>ns</span> <span class='varid'>lp</span>-<a name="line-104"></a>    <span class='keyword'>where</span>-<a name="line-105"></a>    <span class='varid'>ns</span> <span class='keyglyph'>=</span> <span class='varid'>namespaceUri</span> <span class='varid'>n</span>-<a name="line-106"></a>    <span class='varid'>lp</span> <span class='keyglyph'>=</span> <span class='varid'>localPart</span>    <span class='varid'>n</span>-<a name="line-107"></a>-<a name="line-108"></a><span class='comment'>-- |</span>-<a name="line-109"></a><span class='comment'>-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.</span>+<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="mkQName"></a><span class='definition'>mkQName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-112"></a><span class='definition'>mkQName</span> <span class='varid'>p</span> <span class='varid'>l</span> <span class='varid'>n</span>-<a name="line-113"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-114"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>-<a name="line-115"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>n</span>-<a name="line-116"></a>	 <span class='layout'>}</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='comment'>-- |</span>-<a name="line-119"></a><span class='comment'>-- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.</span>-<a name="line-120"></a>-<a name="line-121"></a><a name="mkName"></a><span class='definition'>mkName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-122"></a><span class='definition'>mkName</span> <span class='varid'>s</span>-<a name="line-123"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-124"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>-<a name="line-125"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</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'>-- constructs a simple name, with prefix and localPart but without a namespace uri.</span>-<a name="line-130"></a><span class='comment'>--</span>-<a name="line-131"></a><span class='comment'>-- see also 'mkName', 'mkNsName', 'mkSNsName'</span>+<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><a name="mkPrefixLocalPart"></a><span class='definition'>mkPrefixLocalPart</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-134"></a><span class='definition'>mkPrefixLocalPart</span> <span class='varid'>p</span> <span class='varid'>l</span>-<a name="line-135"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-136"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>-<a name="line-137"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-138"></a>	 <span class='layout'>}</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- |</span>-<a name="line-141"></a><span class='comment'>-- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.</span>-<a name="line-142"></a><span class='comment'>--</span>-<a name="line-143"></a><span class='comment'>-- see also 'mkName', 'mkPrefixLocalPart'</span>-<a name="line-144"></a>-<a name="line-145"></a><a name="mkNsName"></a><span class='definition'>mkNsName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-146"></a><span class='definition'>mkNsName</span> <span class='varid'>n</span> <span class='varid'>ns</span>-<a name="line-147"></a>    <span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='layout'>{</span> <span class='varid'>namePrefix</span>	<span class='keyglyph'>=</span> <span class='varid'>p</span>-<a name="line-148"></a>	 <span class='layout'>,</span> <span class='varid'>localPart</span>	<span class='keyglyph'>=</span> <span class='varid'>l</span>-<a name="line-149"></a>	 <span class='layout'>,</span> <span class='varid'>namespaceUri</span>	<span class='keyglyph'>=</span> <span class='varid'>ns</span>-<a name="line-150"></a>	 <span class='layout'>}</span>-<a name="line-151"></a>      <span class='keyword'>where</span>-<a name="line-152"></a>      <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'>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-153"></a>      <span class='layout'>(</span><span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>l</span><span class='layout'>)</span>-<a name="line-154"></a>	  <span class='keyglyph'>|</span> <span class='varid'>null</span> <span class='varid'>x2</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='str'>""</span><span class='layout'>,</span> <span class='varid'>x1</span><span class='layout'>)</span>-<a name="line-155"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>x1</span><span class='layout'>,</span> <span class='varid'>tail</span> <span class='varid'>x2</span><span class='layout'>)</span>-<a name="line-156"></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'>&amp;&amp;</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'>&amp;&amp;</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'>-&gt;</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><span class='comment'>-- |</span>-<a name="line-159"></a><span class='comment'>-- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter</span>-<a name="line-160"></a><span class='comment'>--</span>-<a name="line-161"></a><span class='comment'>-- see also 'mkNsName', 'mkPrefixLocalPart'</span>-<a name="line-162"></a>-<a name="line-163"></a><a name="mkSNsName"></a><span class='definition'>mkSNsName</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-164"></a><span class='definition'>mkSNsName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='varid'>mkNsName</span> <span class='varid'>n</span> <span class='str'>""</span>+<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'>-&gt;</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><span class='comment'>-- | Empty QName</span>-<a name="line-167"></a>-<a name="line-168"></a><a name="nullQName"></a><span class='definition'>nullQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span>-<a name="line-169"></a><span class='definition'>nullQName</span>	<span class='keyglyph'>=</span> <span class='conid'>QN</span> <span class='str'>""</span> <span class='str'>""</span> <span class='str'>""</span>+<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'>-&gt;</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'>-- | Equality of QNames: Two QNames are equal, if the local parts are equal</span>-<a name="line-172"></a><span class='comment'>-- and the namespace URIs are equal.</span>-<a name="line-173"></a><span class='comment'>-- The comparison works with and without namespace propagation.</span>-<a name="line-174"></a><span class='comment'>-- If namespaces have been propagated, the name is split into prefix and local part</span>-<a name="line-175"></a><span class='comment'>-- and the namespace uri is set. In this case the prefix is not significant for equality test.</span>-<a name="line-176"></a><span class='comment'>-- If namespaces have not been propagated, the local part contains the full name, prefix</span>-<a name="line-177"></a><span class='comment'>-- and namespace URI are empty. The full name (prefix and local part) is used for comparison.</span>-<a name="line-178"></a>-<a name="line-179"></a><a name="equalQName"></a><span class='definition'>equalQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-180"></a><span class='definition'>equalQName</span> 	<span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='layout'>(</span><span class='varop'>==</span><span class='layout'>)</span>-<a name="line-181"></a>-<a name="line-182"></a><span class='comment'>-- | Equivalent QNames are defined as follows: The URIs are normalized before comparison.</span>-<a name="line-183"></a><span class='comment'>-- Comparison is done with 'equalQNameBy' and 'equivUri'</span>-<a name="line-184"></a>-<a name="line-185"></a><a name="equivQName"></a><span class='definition'>equivQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-186"></a><span class='definition'>equivQName</span>	<span class='keyglyph'>=</span> <span class='varid'>equalQNameBy</span> <span class='varid'>equivUri</span>-<a name="line-187"></a>-<a name="line-188"></a><span class='comment'>-- | Comparison of normalized namespace URIs using 'normalizeNsUri'</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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="equivUri"></a><span class='definition'>equivUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-191"></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-190"></a><a name="namespaceUri"></a><span class='definition'>namespaceUri</span>            <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ...</span>-<a name="line-194"></a><span class='comment'>-- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and</span>-<a name="line-195"></a><span class='comment'>-- 'equivQName'</span>+<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="equalQNameBy"></a><span class='definition'>equalQNameBy</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-198"></a><span class='definition'>equalQNameBy</span> <span class='varid'>equiv</span> <span class='varid'>q1</span> <span class='varid'>q2</span>-<a name="line-199"></a>    <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-200"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-201"></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-202"></a>-<a name="line-203"></a><span class='comment'>-- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored</span>+<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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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><a name="normalizeNsUri"></a><span class='definition'>normalizeNsUri</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-206"></a><span class='definition'>normalizeNsUri</span>-<a name="line-207"></a>    <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-208"></a>    <span class='keyword'>where</span>-<a name="line-209"></a>    <span class='varid'>stripSlash</span> <span class='str'>""</span>	<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-210"></a>    <span class='varid'>stripSlash</span> <span class='varid'>s</span>-<a name="line-211"></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-212"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='varid'>s</span>+<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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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><span class='comment'>-- -----------------------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Atoms</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;-</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 view
@@ -10,7 +10,7 @@ <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 Uwe Schmidt+<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)@@ -29,388 +29,387 @@ <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'>Tree</span><span class='varop'>.</span><span class='conid'>NTree</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'>Text</span><span 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-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'>XmlKeywords</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'>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'>getDTDAttrl</span>-<a name="line-31"></a>    <span class='layout'>)</span>-<a name="line-32"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</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'>-- the toString conversion functions</span>-<a name="line-37"></a>-<a name="line-38"></a><span class='comment'>-- |</span>-<a name="line-39"></a><span class='comment'>-- convert the result of a filter into a string</span>-<a name="line-40"></a><span class='comment'>--</span>-<a name="line-41"></a><span class='comment'>-- see also : 'xmlTreesToText' for filter version, 'Text.XML.HXT.Parser.XmlParsec.xread' for the inverse operation </span>-<a name="line-42"></a>-<a name="line-43"></a><a name="xshow"></a><span class='definition'>xshow</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-44"></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-45"></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-46"></a>-<a name="line-47"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-48"></a>-<a name="line-49"></a><a name="showXmlTree"></a><span class='definition'>showXmlTree</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span>  <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-50"></a>-<a name="line-51"></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-52"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>s</span>-<a name="line-53"></a>-<a name="line-54"></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-55"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;#"</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-56"></a>-<a name="line-57"></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-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&amp;"</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-59"></a>-<a name="line-60"></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-61"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!--"</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'>"--&gt;"</span>-<a name="line-62"></a>-<a name="line-63"></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-64"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![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'>"]]&gt;"</span>-<a name="line-65"></a>-<a name="line-66"></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-67"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;?"</span>-<a name="line-68"></a>      <span class='varop'>.</span>-<a name="line-69"></a>      <span class='varid'>showQName</span> <span class='varid'>n</span>-<a name="line-70"></a>      <span class='varop'>.</span>-<a name="line-71"></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-72"></a>      <span class='varop'>.</span>-<a name="line-73"></a>      <span class='varid'>showString</span> <span class='str'>"?&gt;"</span>-<a name="line-74"></a>      <span class='keyword'>where</span>-<a name="line-75"></a>      <span class='varid'>showPiAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-76"></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-77"></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-78"></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-79"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-80"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>a</span>-<a name="line-81"></a>      <span class='varid'>showPiAttr</span> <span class='keyword'>_</span>-<a name="line-82"></a>	  <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-83"></a>-<a name="line-84"></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-85"></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-86"></a>-<a name="line-87"></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-88"></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-89"></a>      <span class='varop'>.</span> <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-90"></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-91"></a>-<a name="line-92"></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-93"></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-94"></a>-<a name="line-95"></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-96"></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-97"></a>-<a name="line-98"></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-99"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!-- 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--&gt;"</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="showXmlTrees"></a><span class='definition'>showXmlTrees</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-104"></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-105"></a>-<a name="line-106"></a><a name="showXmlTrees'"></a><span class='definition'>showXmlTrees'</span>		<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-107"></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'>-&gt;</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-108"></a>-<a name="line-109"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-110"></a>-<a name="line-111"></a><a name="showQName"></a><span class='definition'>showQName</span>		<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-112"></a><span class='definition'>showQName</span>-<a name="line-113"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varop'>.</span> <span class='varid'>qualifiedName</span>-<a name="line-114"></a>-<a name="line-115"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-116"></a>-<a name="line-117"></a><a name="showQuoteString"></a><span class='definition'>showQuoteString</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-118"></a><span class='definition'>showQuoteString</span> <span class='varid'>s</span>-<a name="line-119"></a>    <span class='keyglyph'>|</span> <span class='chr'>'\"'</span> <span class='varop'>`elem`</span> <span class='varid'>s</span>-<a name="line-120"></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-121"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-122"></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-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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>"&amp;#"</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'>"&amp;"</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'>"&lt;!--"</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'>"--&gt;"</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'>"&lt;![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'>"]]&gt;"</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'>"&lt;?"</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'>"?&gt;"</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>"&lt;!-- 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--&gt;"</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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>-<a name="line-125"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-126"></a>-<a name="line-127"></a><a name="showAttr"></a><span class='definition'>showAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-128"></a><span class='definition'>showAttr</span> <span class='varid'>k</span> <span class='varid'>al</span>-<a name="line-129"></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-130"></a>-<a name="line-131"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-132"></a>-<a name="line-133"></a><a name="showPEAttr"></a><span class='definition'>showPEAttr</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-134"></a><span class='definition'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-135"></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-136"></a>      <span class='keyword'>where</span>-<a name="line-137"></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-138"></a>      <span class='varid'>showPE</span> <span class='conid'>Nothing</span>   <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-139"></a>-<a name="line-140"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-141"></a>-<a name="line-142"></a><a name="showExternalId"></a><span class='definition'>showExternalId</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-143"></a><span class='definition'>showExternalId</span> <span class='varid'>al</span>-<a name="line-144"></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-145"></a>      <span class='keyword'>where</span>-<a name="line-146"></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-147"></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-148"></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-149"></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-150"></a>-<a name="line-151"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-152"></a>-<a name="line-153"></a><a name="showNData"></a><span class='definition'>showNData</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-154"></a><span class='definition'>showNData</span> <span class='varid'>al</span>-<a name="line-155"></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-156"></a>      <span class='keyword'>where</span>-<a name="line-157"></a>      <span class='varid'>nd2Str</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-158"></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-159"></a>-<a name="line-160"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-161"></a>-<a name="line-162"></a><a name="showXmlDTD"></a><span class='definition'>showXmlDTD</span>		<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-163"></a>-<a name="line-164"></a><span class='definition'>showXmlDTD</span> <span class='conid'>DOCTYPE</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-165"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!DOCTYPE "</span>-<a name="line-166"></a>      <span class='varop'>.</span>-<a name="line-167"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-168"></a>      <span class='varop'>.</span>-<a name="line-169"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-170"></a>      <span class='varop'>.</span>-<a name="line-171"></a>      <span class='varid'>showInternalDTD</span> <span class='varid'>cs</span>-<a name="line-172"></a>      <span class='varop'>.</span>-<a name="line-173"></a>      <span class='varid'>showString</span> <span class='str'>"&gt;"</span>-<a name="line-174"></a>      <span class='keyword'>where</span>-<a name="line-175"></a>      <span class='varid'>showInternalDTD</span> <span class='conid'>[]</span> <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-176"></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-177"></a>-<a name="line-178"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ELEMENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-179"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ELEMENT "</span>-<a name="line-180"></a>      <span class='varop'>.</span>-<a name="line-181"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-182"></a>      <span class='varop'>.</span>-<a name="line-183"></a>      <span class='varid'>showBlank</span>-<a name="line-184"></a>      <span class='varop'>.</span>-<a name="line-185"></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-186"></a>      <span class='varop'>.</span>-<a name="line-187"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>-<a name="line-188"></a>-<a name="line-189"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ATTLIST</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-190"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ATTLIST "</span>-<a name="line-191"></a>      <span class='varop'>.</span>-<a name="line-192"></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-193"></a>	<span class='keyword'>then</span>-<a name="line-194"></a>	<span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-195"></a>	<span class='keyword'>else</span>-<a name="line-196"></a>	<span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-197"></a>	<span class='varop'>.</span>-<a name="line-198"></a>	<span class='varid'>showBlank</span>-<a name="line-199"></a>	<span class='varop'>.</span>-<a name="line-200"></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-201"></a>	  <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showPEAttr</span>-<a name="line-202"></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-203"></a>		       <span class='varop'>.</span> <span class='varid'>head</span>-<a name="line-204"></a>		     <span class='layout'>)</span> <span class='varid'>cs</span>-<a name="line-205"></a>	  <span class='conid'>Just</span> <span class='varid'>a</span>  <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='varid'>showString</span> <span class='varid'>a</span>-<a name="line-206"></a>	               <span class='varop'>.</span>-<a name="line-207"></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-208"></a>                       <span class='varop'>.</span>-<a name="line-209"></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-210"></a>		     <span class='layout'>)</span>-<a name="line-211"></a>	<span class='layout'>)</span>-<a name="line-212"></a>      <span class='layout'>)</span>-<a name="line-213"></a>      <span class='varop'>.</span>-<a name="line-214"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>-<a name="line-215"></a>      <span class='keyword'>where</span>-<a name="line-216"></a>      <span class='varid'>showAttrType</span> <span class='varid'>t</span>-<a name="line-217"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>-<a name="line-218"></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-219"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_enumeration</span>-<a name="line-220"></a>	      <span class='keyglyph'>=</span> <span class='varid'>showAttrEnum</span>-<a name="line-221"></a>	  <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_notation</span>-<a name="line-222"></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-223"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-224"></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-225"></a>-<a name="line-226"></a>      <span class='varid'>showAttrEnum</span>-<a name="line-227"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>" ("</span>-<a name="line-228"></a>	    <span class='varop'>.</span>-<a name="line-229"></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'>-&gt;</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-230"></a>	    <span class='varop'>.</span>-<a name="line-231"></a>	    <span class='varid'>showString</span> <span class='str'>")"</span>-<a name="line-232"></a>	    <span class='keyword'>where</span>-<a name="line-233"></a>	    <span class='varid'>getEnum</span>	<span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-234"></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-235"></a>-<a name="line-236"></a>      <span class='varid'>showAttrKind</span> <span class='varid'>k</span>-<a name="line-237"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_default</span>-<a name="line-238"></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-239"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='varid'>k_fixed</span>-<a name="line-240"></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-241"></a>		<span class='varop'>.</span>-<a name="line-242"></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-243"></a>	  <span class='keyglyph'>|</span> <span class='varid'>k</span> <span class='varop'>==</span> <span class='str'>""</span>-<a name="line-244"></a>	      <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-245"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-246"></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-247"></a>-<a name="line-248"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NOTATION</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-249"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!NOTATION "</span>-<a name="line-250"></a>      <span class='varop'>.</span>-<a name="line-251"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-252"></a>      <span class='varop'>.</span>-<a name="line-253"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-254"></a>      <span class='varop'>.</span>-<a name="line-255"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</span>-<a name="line-256"></a>-<a name="line-257"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-258"></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-259"></a>-<a name="line-260"></a><span class='definition'>showXmlDTD</span> <span class='conid'>ENTITY</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-261"></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-262"></a>-<a name="line-263"></a><span class='definition'>showXmlDTD</span> <span class='conid'>PEREF</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-264"></a>    <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-265"></a>-<a name="line-266"></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-267"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;![ "</span>-<a name="line-268"></a>      <span class='varop'>.</span>-<a name="line-269"></a>      <span class='varid'>showXmlTree</span> <span class='varid'>c1</span>-<a name="line-270"></a>      <span class='varop'>.</span>-<a name="line-271"></a>      <span class='varid'>showString</span> <span class='str'>" [\n"</span>-<a name="line-272"></a>      <span class='varop'>.</span>-<a name="line-273"></a>      <span class='varid'>showXmlTrees</span> <span class='varid'>cs</span>-<a name="line-274"></a>      <span class='varop'>.</span>-<a name="line-275"></a>      <span class='varid'>showString</span> <span class='str'>"]]&gt;"</span>-<a name="line-276"></a>-<a name="line-277"></a><span class='definition'>showXmlDTD</span> <span class='conid'>CONTENT</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-278"></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-279"></a>-<a name="line-280"></a><span class='definition'>showXmlDTD</span> <span class='conid'>NAME</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-281"></a>    <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-282"></a>-<a name="line-283"></a><span class='definition'>showXmlDTD</span> <span class='varid'>de</span> <span class='varid'>al</span> <span class='sel'>_cs</span>-<a name="line-284"></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-285"></a>-<a name="line-286"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-287"></a>-<a name="line-288"></a><a name="showElemType"></a><span class='definition'>showElemType</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-289"></a><span class='definition'>showElemType</span> <span class='varid'>t</span> <span class='varid'>cs</span>-<a name="line-290"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_pcdata</span>-<a name="line-291"></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-292"></a>-<a name="line-293"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_mixed</span> <span class='varop'>&amp;&amp;</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-294"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-295"></a>	  <span class='varop'>.</span>-<a name="line-296"></a>	  <span class='varid'>showString</span> <span class='varid'>v_pcdata</span>-<a name="line-297"></a>	  <span class='varop'>.</span>-<a name="line-298"></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-299"></a>	  <span class='varop'>.</span>-<a name="line-300"></a>          <span class='varid'>showRpar</span>-<a name="line-301"></a>	  <span class='varop'>.</span>-<a name="line-302"></a>	  <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al1</span>-<a name="line-303"></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-304"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-305"></a>	  <span class='varop'>.</span>-<a name="line-306"></a>	  <span class='varid'>showRpar</span>-<a name="line-307"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span> <span class='varop'>&amp;&amp;</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-308"></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-309"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>v_children</span>-<a name="line-310"></a>	<span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-311"></a>	  <span class='varop'>.</span> <span class='varid'>showRpar</span>-<a name="line-312"></a>    <span class='keyglyph'>|</span> <span class='varid'>t</span> <span class='varop'>==</span> <span class='varid'>k_peref</span>-<a name="line-313"></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-314"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-315"></a>	<span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='varid'>t</span>-<a name="line-316"></a>    <span class='keyword'>where</span>-<a name="line-317"></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-318"></a>-<a name="line-319"></a>    <span class='varid'>mixedContent</span> <span class='keyglyph'>::</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-320"></a>    <span class='varid'>mixedContent</span> <span class='varid'>l</span>-<a name="line-321"></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-322"></a>-<a name="line-323"></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-324"></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-325"></a>    <span class='varid'>selAttrl</span> <span class='keyword'>_</span>           <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-326"></a>-<a name="line-327"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-328"></a>-<a name="line-329"></a><a name="showContent"></a><span class='definition'>showContent</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-330"></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-331"></a>    <span class='keyglyph'>=</span> <span class='varid'>cont2String</span> <span class='varid'>de</span>-<a name="line-332"></a>      <span class='keyword'>where</span>-<a name="line-333"></a>      <span class='varid'>cont2String</span>	<span class='keyglyph'>::</span> <span class='conid'>DTDElem</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-334"></a>      <span class='varid'>cont2String</span> <span class='conid'>NAME</span>-<a name="line-335"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-336"></a>      <span class='varid'>cont2String</span> <span class='conid'>PEREF</span>-<a name="line-337"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showPEAttr</span> <span class='varid'>al</span>-<a name="line-338"></a>      <span class='varid'>cont2String</span> <span class='conid'>CONTENT</span>-<a name="line-339"></a>	  <span class='keyglyph'>=</span> <span class='varid'>showLpar</span>-<a name="line-340"></a>	    <span class='varop'>.</span>-<a name="line-341"></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-342"></a>            <span class='varop'>.</span>-<a name="line-343"></a>            <span class='varid'>showRpar</span>-<a name="line-344"></a>            <span class='varop'>.</span>-<a name="line-345"></a>            <span class='varid'>showAttr</span> <span class='varid'>a_modifier</span> <span class='varid'>al</span>-<a name="line-346"></a>      <span class='varid'>cont2String</span> <span class='varid'>n</span>-<a name="line-347"></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-348"></a>      <span class='varid'>combine</span> <span class='varid'>k</span> <span class='varid'>s1</span> <span class='varid'>s2</span>-<a name="line-349"></a>	  <span class='keyglyph'>=</span> <span class='varid'>s1</span>-<a name="line-350"></a>	    <span class='varop'>.</span>-<a name="line-351"></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-352"></a>			 <span class='keyword'>then</span> <span class='str'>", "</span>-<a name="line-353"></a>			 <span class='keyword'>else</span> <span class='str'>" | "</span>-<a name="line-354"></a>		       <span class='layout'>)</span>-<a name="line-355"></a>            <span class='varop'>.</span>-<a name="line-356"></a>            <span class='varid'>s2</span>-<a name="line-357"></a>-<a name="line-358"></a><span class='definition'>showContent</span> <span class='varid'>n</span>-<a name="line-359"></a>    <span class='keyglyph'>=</span> <span class='varid'>showXmlTree</span> <span class='varid'>n</span>-<a name="line-360"></a>-<a name="line-361"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-362"></a>-<a name="line-363"></a><a name="showEntity"></a><span class='definition'>showEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-364"></a>-<a name="line-365"></a><span class='definition'>showEntity</span> <span class='varid'>kind</span> <span class='varid'>al</span> <span class='varid'>cs</span>-<a name="line-366"></a>    <span class='keyglyph'>=</span> <span class='varid'>showString</span> <span class='str'>"&lt;!ENTITY "</span>-<a name="line-367"></a>      <span class='varop'>.</span>-<a name="line-368"></a>      <span class='varid'>showString</span> <span class='varid'>kind</span>-<a name="line-369"></a>      <span class='varop'>.</span>-<a name="line-370"></a>      <span class='varid'>showAttr</span> <span class='varid'>a_name</span> <span class='varid'>al</span>-<a name="line-371"></a>      <span class='varop'>.</span>-<a name="line-372"></a>      <span class='varid'>showExternalId</span> <span class='varid'>al</span>-<a name="line-373"></a>      <span class='varop'>.</span>-<a name="line-374"></a>      <span class='varid'>showNData</span> <span class='varid'>al</span>-<a name="line-375"></a>      <span class='varop'>.</span>-<a name="line-376"></a>      <span class='varid'>showEntityValue</span> <span class='varid'>cs</span>-<a name="line-377"></a>      <span class='varop'>.</span>-<a name="line-378"></a>      <span class='varid'>showString</span> <span class='str'>" &gt;"</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="showEntityValue"></a><span class='definition'>showEntityValue</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-383"></a>-<a name="line-384"></a><span class='definition'>showEntityValue</span> <span class='conid'>[]</span>-<a name="line-385"></a>    <span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-386"></a>-<a name="line-387"></a><span class='definition'>showEntityValue</span> <span class='varid'>cs</span>-<a name="line-388"></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-389"></a>-<a name="line-390"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-391"></a>-<a name="line-392"></a><a name="showBlank"></a><span class='definition'>showBlank</span><span class='layout'>,</span>-<a name="line-393"></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'>-&gt;</span> <span class='conid'>String</span>-<a name="line-394"></a>-<a name="line-395"></a><span class='definition'>showBlank</span>	<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>' '</span>-<a name="line-396"></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-397"></a><a name="showLt"></a><span class='definition'>showLt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&lt;'</span>-<a name="line-398"></a><a name="showGt"></a><span class='definition'>showGt</span>		<span class='keyglyph'>=</span> <span class='varid'>showChar</span> <span class='chr'>'&gt;'</span>-<a name="line-399"></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-400"></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-401"></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-402"></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-403"></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-404"></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-405"></a>-<a name="line-406"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>"&lt;!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'>"&gt;"</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'>"&lt;!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'>" &gt;"</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'>"&lt;!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'>-&gt;</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'>-&gt;</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'>" &gt;"</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>"&lt;!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'>" &gt;"</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'>"&lt;![ "</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'>"]]&gt;"</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'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>&amp;&amp;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>"&lt;!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'>" &gt;"</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>'&lt;'</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'>'&gt;'</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 view
@@ -37,7 +37,7 @@ <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> <span class='varid'>hiding</span> <span class='layout'>(</span> <span class='conid'>QN</span> <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'>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>@@ -137,49 +137,40 @@ <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>-<a name="line-133"></a><span class='comment'>-- |</span>-<a name="line-134"></a><span class='comment'>-- Type for the namespace association list, used when propagating namespaces by</span>-<a name="line-135"></a><span class='comment'>-- modifying the 'QName' values in a tree</span>-<a name="line-136"></a>-<a name="line-137"></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'>String</span> <span class='conid'>String</span>-<a name="line-138"></a>-<a name="line-139"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-140"></a><span class='comment'>--</span>-<a name="line-141"></a><span class='comment'>-- Constants for error levels</span>-<a name="line-142"></a>-<a name="line-143"></a><a name="c_ok"></a><span class='comment'>-- | no error, everything is ok</span>-<a name="line-144"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-145"></a><span class='definition'>c_ok</span>	<span class='keyglyph'>=</span> <span class='num'>0</span>-<a name="line-146"></a>-<a name="line-147"></a><a name="c_warn"></a><span class='comment'>-- | Error level for XError, type warning</span>-<a name="line-148"></a><span class='definition'>c_warn</span>  <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-149"></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-150"></a>-<a name="line-151"></a><a name="c_err"></a><span class='comment'>-- | Error level for XError, type error</span>-<a name="line-152"></a><span class='definition'>c_err</span>   <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-153"></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-154"></a>-<a name="line-155"></a><a name="c_fatal"></a><span class='comment'>-- | Error level for XError, type fatal error</span>-<a name="line-156"></a><span class='definition'>c_fatal</span> <span class='keyglyph'>::</span> <span class='conid'>Int</span>-<a name="line-157"></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-158"></a>-<a name="line-159"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-160"></a>-<a name="line-161"></a><span class='comment'>-- | data type for representing a set of nodes as a tree structure</span>-<a name="line-162"></a><span class='comment'>--</span>-<a name="line-163"></a><span class='comment'>-- this structure is e.g. used to repesent the result of an XPath query</span>-<a name="line-164"></a><span class='comment'>-- such that the selected nodes can be processed or selected later in</span>-<a name="line-165"></a><span class='comment'>-- processing a document tree</span>-<a name="line-166"></a>-<a name="line-167"></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-168"></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-169"></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-170"></a>		      <span class='layout'>}</span>-<a name="line-171"></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-172"></a>-<a name="line-173"></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-174"></a>-<a name="line-175"></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-Unicode.html view
@@ -10,1106 +10,1105 @@ <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 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 and UTF-8 Conversion Functions-<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'>Unicode</span>-<a name="line-20"></a>    <span class='layout'>(</span>-<a name="line-21"></a>     <span class='comment'>-- * Unicode Type declarations</span>-<a name="line-22"></a>     <span class='conid'>Unicode</span><span class='layout'>,</span>-<a name="line-23"></a>     <span class='conid'>UString</span><span class='layout'>,</span>-<a name="line-24"></a>     <span class='conid'>UTF8Char</span><span class='layout'>,</span>-<a name="line-25"></a>     <span class='conid'>UTF8String</span><span class='layout'>,</span>-<a name="line-26"></a>     <span class='conid'>UStringWithErrors</span><span class='layout'>,</span>-<a name="line-27"></a>     <span class='conid'>DecodingFct</span><span class='layout'>,</span>-<a name="line-28"></a>     <span class='conid'>DecodingFctEmbedErrors</span><span class='layout'>,</span>-<a name="line-29"></a>-<a name="line-30"></a>      <span class='comment'>-- * XML char predicates</span>-<a name="line-31"></a>-<a name="line-32"></a>      <span class='varid'>isXmlChar</span>-<a name="line-33"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLatin1Char</span>-<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>isXml11SpaceChar</span>-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameChar</span>-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNameStartChar</span>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameChar</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>isXmlNCNameStartChar</span>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>isXmlPubidChar</span>-<a name="line-41"></a>    <span class='layout'>,</span> <span class='varid'>isXmlLetter</span>-<a name="line-42"></a>    <span class='layout'>,</span> <span class='varid'>isXmlBaseChar</span>-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isXmlIdeographicChar</span>-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isXmlCombiningChar</span>-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isXmlDigit</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>isXmlExtender</span>-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>isXmlControlOrPermanentlyUndefined</span>-<a name="line-48"></a>-<a name="line-49"></a>      <span class='comment'>-- * UTF-8 and Unicode conversion functions</span>-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicode</span>-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>utf8ToUnicodeEmbedErrors</span>-<a name="line-52"></a>    <span class='layout'>,</span> <span class='varid'>latin1ToUnicode</span>-<a name="line-53"></a>    <span class='layout'>,</span> <span class='varid'>ucs2ToUnicode</span>-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>ucs2BigEndianToUnicode</span>-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>ucs2LittleEndianToUnicode</span>-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>utf16beToUnicode</span>-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>utf16leToUnicode</span>-<a name="line-58"></a>-<a name="line-59"></a>    <span class='layout'>,</span> <span class='varid'>unicodeCharToUtf8</span>-<a name="line-60"></a>-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToUtf8</span>-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToXmlEntity</span>-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>unicodeToLatin1</span>-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneAscii</span>-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>unicodeRemoveNoneLatin1</span>-<a name="line-66"></a>-<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRef</span>-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>intToCharRefHex</span>-<a name="line-69"></a>-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFct</span>-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>getDecodingFctEmbedErrors</span>-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>getOutputEncodingFct</span>-<a name="line-73"></a>-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>normalizeNL</span>-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>guessEncoding</span>-<a name="line-76"></a>    <span class='layout'>)</span>-<a name="line-77"></a><span class='keyword'>where</span>-<a name="line-78"></a>-<a name="line-79"></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-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'>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-82"></a>-<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'>IsoLatinTables</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'>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-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'>Util</span>		<span class='layout'>(</span> <span class='varid'>intToHexString</span> <span class='layout'>)</span>-<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'>XmlKeywords</span>-<a name="line-87"></a>-<a name="line-88"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-89"></a>-<a name="line-90"></a><span class='comment'>-- | Unicode is represented as the Char type</span>-<a name="line-91"></a><span class='comment'>--   Precondition for this is the support of Unicode character range</span>-<a name="line-92"></a><span class='comment'>--   in the compiler (e.g. ghc but not hugs)</span>-<a name="line-93"></a>-<a name="line-94"></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-95"></a>-<a name="line-96"></a><span class='comment'>-- | the type for Unicode strings</span>-<a name="line-97"></a>-<a name="line-98"></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-99"></a>-<a name="line-100"></a><span class='comment'>-- | UTF-8 charachters are represented by the Char type</span>-<a name="line-101"></a>-<a name="line-102"></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-103"></a>-<a name="line-104"></a><span class='comment'>-- | UTF-8 strings are implemented as Haskell strings</span>-<a name="line-105"></a>-<a name="line-106"></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-107"></a>-<a name="line-108"></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-109"></a>-<a name="line-110"></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'>-&gt;</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-111"></a>-<a name="line-112"></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-113"></a>-<a name="line-114"></a><span class='comment'>-- | Decoding function where decoding errors are interleaved with decoded characters</span>-<a name="line-115"></a>-<a name="line-116"></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'>-&gt;</span> <span class='conid'>UStringWithErrors</span>-<a name="line-117"></a>-<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'>-- Unicode predicates</span>-<a name="line-121"></a>-<a name="line-122"></a><span class='comment'>-- |</span>-<a name="line-123"></a><span class='comment'>-- test for a legal 1 byte XML char</span>-<a name="line-124"></a>-<a name="line-125"></a><a name="is1ByteXmlChar"></a><span class='definition'>is1ByteXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-126"></a><span class='definition'>is1ByteXmlChar</span> <span class='varid'>c</span>-<a name="line-127"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>-<a name="line-128"></a>      <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span>-<a name="line-129"></a>	   <span class='varop'>||</span>-<a name="line-130"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\n'</span>-<a name="line-131"></a>	   <span class='varop'>||</span>-<a name="line-132"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\t'</span>-<a name="line-133"></a>	   <span class='varop'>||</span>-<a name="line-134"></a>	   <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'\r'</span>-<a name="line-135"></a>	 <span class='layout'>)</span>-<a name="line-136"></a>-<a name="line-137"></a><span class='comment'>-- |</span>-<a name="line-138"></a><span class='comment'>-- test for a legal latin1 XML char</span>-<a name="line-139"></a>-<a name="line-140"></a><a name="isXmlLatin1Char"></a><span class='definition'>isXmlLatin1Char</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-141"></a><span class='definition'>isXmlLatin1Char</span> <span class='varid'>i</span>-<a name="line-142"></a>    <span class='keyglyph'>=</span> <span class='varid'>is1ByteXmlChar</span> <span class='varid'>i</span>-<a name="line-143"></a>      <span class='varop'>||</span>-<a name="line-144"></a>      <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='chr'>'\x80'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='chr'>'\xff'</span><span class='layout'>)</span>-<a name="line-145"></a>-<a name="line-146"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-147"></a>-<a name="line-148"></a><span class='comment'>-- |</span>-<a name="line-149"></a><span class='comment'>-- conversion from Unicode strings (UString) to UTF8 encoded strings.</span>-<a name="line-150"></a>-<a name="line-151"></a><a name="unicodeToUtf8"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>-<a name="line-152"></a><span class='definition'>unicodeToUtf8</span>		<span class='keyglyph'>=</span> <span class='varid'>concatMap</span> <span class='varid'>unicodeCharToUtf8</span>-<a name="line-153"></a>-<a name="line-154"></a><span class='comment'>-- |</span>-<a name="line-155"></a><span class='comment'>-- conversion from Unicode (Char) to a UTF8 encoded string.</span>-<a name="line-156"></a>-<a name="line-157"></a><a name="unicodeCharToUtf8"></a><span class='definition'>unicodeCharToUtf8</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UTF8String</span>-<a name="line-158"></a><span class='definition'>unicodeCharToUtf8</span> <span class='varid'>c</span>-<a name="line-159"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0</span>          <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000007F</span>	<span class='comment'>-- 1 byte UTF8 (7 bits)</span>-<a name="line-160"></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-161"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000080</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x000007FF</span>	<span class='comment'>-- 2 byte UTF8 (5 + 6 bits)</span>-<a name="line-162"></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-163"></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-164"></a>	  <span class='keyglyph'>]</span>-<a name="line-165"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00000800</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x0000FFFF</span>	<span class='comment'>-- 3 byte UTF8 (4 + 6 + 6 bits)</span>-<a name="line-166"></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-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='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-168"></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-169"></a>	  <span class='keyglyph'>]</span>-<a name="line-170"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00010000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x001FFFFF</span>	<span class='comment'>-- 4 byte UTF8 (3 + 6 + 6 + 6 bits)</span>-<a name="line-171"></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-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'>0x1000</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='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-174"></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-175"></a>	  <span class='keyglyph'>]</span>-<a name="line-176"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x00200000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x03FFFFFF</span>	<span class='comment'>-- 5 byte UTF8 (2 + 6 + 6 + 6 + 6 bits)</span>-<a name="line-177"></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-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'>0x40000</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'>0x1000</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='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-181"></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-182"></a>	  <span class='keyglyph'>]</span>-<a name="line-183"></a>    <span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='num'>0x04000000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</span> <span class='num'>0x7FFFFFFF</span>	<span class='comment'>-- 6 byte UTF8 (1 + 6 + 6 + 6 + 6 + 6 bits)</span>-<a name="line-184"></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-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'>0x1000000</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'>0x40000</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'>0x1000</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='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-189"></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-190"></a>	  <span class='keyglyph'>]</span>-<a name="line-191"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>					<span class='comment'>-- other values not supported</span>-<a name="line-192"></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-193"></a>    <span class='keyword'>where</span>-<a name="line-194"></a>    <span class='varid'>i</span> <span class='keyglyph'>=</span> <span class='varid'>fromEnum</span> <span class='varid'>c</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'>-- |</span>-<a name="line-199"></a><span class='comment'>-- checking for valid XML characters</span>-<a name="line-200"></a>-<a name="line-201"></a><a name="isXmlChar"></a><span class='definition'>isXmlChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-202"></a><span class='definition'>isXmlChar</span> <span class='varid'>c</span>-<a name="line-203"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-204"></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-205"></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-206"></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-207"></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-208"></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-209"></a>      <span class='keyglyph'>]</span>-<a name="line-210"></a>-<a name="line-211"></a><span class='comment'>-- |</span>-<a name="line-212"></a><span class='comment'>-- checking for XML space character: \\\n, \\\r, \\\t and \" \"</span>-<a name="line-213"></a>-<a name="line-214"></a><a name="isXmlSpaceChar"></a><span class='definition'>isXmlSpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-215"></a><span class='definition'>isXmlSpaceChar</span> <span class='varid'>c</span>-<a name="line-216"></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-217"></a>-<a name="line-218"></a><span class='comment'>-- |</span>-<a name="line-219"></a><span class='comment'>-- checking for XML1.1 space character: additional space 0x85 and 0x2028</span>-<a name="line-220"></a><span class='comment'>--</span>-<a name="line-221"></a><span class='comment'>-- see also : 'isXmlSpaceChar'</span>-<a name="line-222"></a>-<a name="line-223"></a><a name="isXml11SpaceChar"></a><span class='definition'>isXml11SpaceChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-224"></a><span class='definition'>isXml11SpaceChar</span> <span class='varid'>c</span>-<a name="line-225"></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-226"></a>-<a name="line-227"></a><span class='comment'>-- |</span>-<a name="line-228"></a><span class='comment'>-- checking for XML name character</span>-<a name="line-229"></a>-<a name="line-230"></a><a name="isXmlNameChar"></a><span class='definition'>isXmlNameChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-231"></a><span class='definition'>isXmlNameChar</span> <span class='varid'>c</span>-<a name="line-232"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-233"></a>      <span class='varop'>||</span>-<a name="line-234"></a>      <span class='varid'>isXmlDigit</span> <span class='varid'>c</span>-<a name="line-235"></a>      <span class='varop'>||</span>-<a name="line-236"></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-237"></a>      <span class='varop'>||</span>-<a name="line-238"></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-239"></a>      <span class='varop'>||</span>-<a name="line-240"></a>      <span class='varid'>isXmlCombiningChar</span> <span class='varid'>c</span>-<a name="line-241"></a>      <span class='varop'>||</span>-<a name="line-242"></a>      <span class='varid'>isXmlExtender</span> <span class='varid'>c</span>-<a name="line-243"></a>-<a name="line-244"></a><span class='comment'>-- |</span>-<a name="line-245"></a><span class='comment'>-- checking for XML name start character</span>-<a name="line-246"></a><span class='comment'>--</span>-<a name="line-247"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>-<a name="line-248"></a>-<a name="line-249"></a><a name="isXmlNameStartChar"></a><span class='definition'>isXmlNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-250"></a><span class='definition'>isXmlNameStartChar</span> <span class='varid'>c</span>-<a name="line-251"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-252"></a>      <span class='varop'>||</span>-<a name="line-253"></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-254"></a>-<a name="line-255"></a><span class='comment'>-- |</span>-<a name="line-256"></a><span class='comment'>-- checking for XML NCName character: no \":\" allowed</span>-<a name="line-257"></a><span class='comment'>--</span>-<a name="line-258"></a><span class='comment'>-- see also : 'isXmlNameChar'</span>-<a name="line-259"></a>-<a name="line-260"></a><a name="isXmlNCNameChar"></a><span class='definition'>isXmlNCNameChar</span>			<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-261"></a><span class='definition'>isXmlNCNameChar</span> <span class='varid'>c</span>-<a name="line-262"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>-<a name="line-263"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-264"></a>      <span class='varid'>isXmlNameChar</span> <span class='varid'>c</span>-<a name="line-265"></a>-<a name="line-266"></a><span class='comment'>-- |</span>-<a name="line-267"></a><span class='comment'>-- checking for XML NCName start character: no \":\" allowed</span>-<a name="line-268"></a><span class='comment'>--</span>-<a name="line-269"></a><span class='comment'>-- see also : 'isXmlNameChar', 'isXmlNCNameChar'</span>-<a name="line-270"></a>-<a name="line-271"></a><a name="isXmlNCNameStartChar"></a><span class='definition'>isXmlNCNameStartChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-272"></a><span class='definition'>isXmlNCNameStartChar</span> <span class='varid'>c</span>-<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>c</span> <span class='varop'>/=</span> <span class='chr'>'\x3A'</span>-<a name="line-274"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-275"></a>      <span class='varid'>isXmlNameStartChar</span> <span class='varid'>c</span>-<a name="line-276"></a>-<a name="line-277"></a><span class='comment'>-- |</span>-<a name="line-278"></a><span class='comment'>-- checking for XML public id character</span>-<a name="line-279"></a>-<a name="line-280"></a><a name="isXmlPubidChar"></a><span class='definition'>isXmlPubidChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-281"></a><span class='definition'>isXmlPubidChar</span> <span class='varid'>c</span>-<a name="line-282"></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'>'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='layout'>,</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-285"></a>		 <span class='keyglyph'>]</span>-<a name="line-286"></a>      <span class='varop'>||</span>-<a name="line-287"></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-288"></a>-<a name="line-289"></a><span class='comment'>-- |</span>-<a name="line-290"></a><span class='comment'>-- checking for XML letter</span>-<a name="line-291"></a>-<a name="line-292"></a><a name="isXmlLetter"></a><span class='definition'>isXmlLetter</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-293"></a><span class='definition'>isXmlLetter</span> <span class='varid'>c</span>-<a name="line-294"></a>    <span class='keyglyph'>=</span> <span class='varid'>isXmlBaseChar</span> <span class='varid'>c</span>-<a name="line-295"></a>      <span class='varop'>||</span>-<a name="line-296"></a>      <span class='varid'>isXmlIdeographicChar</span> <span class='varid'>c</span>-<a name="line-297"></a>-<a name="line-298"></a><span class='comment'>-- |</span>-<a name="line-299"></a><span class='comment'>-- checking for XML base charater</span>-<a name="line-300"></a>-<a name="line-301"></a><a name="isXmlBaseChar"></a><span class='definition'>isXmlBaseChar</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-302"></a><span class='definition'>isXmlBaseChar</span> <span class='varid'>c</span>-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-304"></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-305"></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-306"></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-307"></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-308"></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-309"></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-310"></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-311"></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-312"></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-313"></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-314"></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-315"></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-316"></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-317"></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-318"></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-319"></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-320"></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-321"></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-322"></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-323"></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-324"></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-325"></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-326"></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-327"></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-328"></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-329"></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-330"></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-331"></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-332"></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-333"></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-334"></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-335"></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-336"></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-337"></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-338"></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-339"></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-340"></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-341"></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-342"></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-343"></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-344"></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-345"></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-346"></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-347"></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-348"></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-349"></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-350"></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-351"></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-352"></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-353"></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-354"></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-355"></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-356"></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-357"></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-358"></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-359"></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-360"></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-361"></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-362"></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-363"></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-364"></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-365"></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-366"></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-367"></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-368"></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-369"></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-370"></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-371"></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-372"></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-373"></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-374"></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-375"></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-376"></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-377"></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-378"></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-379"></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-380"></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-381"></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-382"></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-383"></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-384"></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-385"></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-386"></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-387"></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-388"></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-389"></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-390"></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-391"></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-392"></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-393"></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-394"></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-395"></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-396"></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-397"></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-398"></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-399"></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-400"></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-401"></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-402"></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-403"></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-404"></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-405"></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-406"></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-407"></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-408"></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-409"></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-410"></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-411"></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-412"></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-413"></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-414"></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-415"></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-416"></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-417"></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-418"></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-419"></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-420"></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-421"></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-422"></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-423"></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-424"></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-425"></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-426"></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-427"></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-428"></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-429"></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-430"></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-431"></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-432"></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-433"></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-434"></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-435"></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-436"></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-437"></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-438"></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-439"></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-440"></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-441"></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-442"></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-443"></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-444"></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-445"></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-446"></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-447"></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-448"></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-449"></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-450"></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-451"></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-452"></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-453"></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-454"></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-455"></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-456"></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-457"></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-458"></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-459"></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-460"></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-461"></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-462"></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-463"></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-464"></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-465"></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-466"></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-467"></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-468"></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-469"></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-470"></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-471"></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-472"></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-473"></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-474"></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-475"></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-476"></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-477"></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-478"></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-479"></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-480"></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-481"></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-482"></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-483"></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-484"></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-485"></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-486"></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-487"></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-488"></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-489"></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-490"></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-491"></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-492"></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-493"></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-494"></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-495"></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-496"></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-497"></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-498"></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-499"></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-500"></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-501"></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-502"></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-503"></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-504"></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-505"></a>      <span class='keyglyph'>]</span>-<a name="line-506"></a>-<a name="line-507"></a><span class='comment'>-- |</span>-<a name="line-508"></a><span class='comment'>-- checking for XML ideographic charater</span>-<a name="line-509"></a>-<a name="line-510"></a><a name="isXmlIdeographicChar"></a><span class='definition'>isXmlIdeographicChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-511"></a><span class='definition'>isXmlIdeographicChar</span> <span class='varid'>c</span>-<a name="line-512"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-513"></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-514"></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-515"></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-516"></a>      <span class='keyglyph'>]</span>-<a name="line-517"></a>-<a name="line-518"></a><span class='comment'>-- |</span>-<a name="line-519"></a><span class='comment'>-- checking for XML combining charater</span>-<a name="line-520"></a>-<a name="line-521"></a><a name="isXmlCombiningChar"></a><span class='definition'>isXmlCombiningChar</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-522"></a><span class='definition'>isXmlCombiningChar</span> <span class='varid'>c</span>-<a name="line-523"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-524"></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-525"></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-526"></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-527"></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-528"></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-529"></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-530"></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-531"></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-532"></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-533"></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-534"></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-535"></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-536"></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-537"></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-538"></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-539"></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-540"></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-541"></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-542"></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-543"></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-544"></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-545"></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-546"></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-547"></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-548"></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-549"></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-550"></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-551"></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-552"></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-553"></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-554"></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-555"></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-556"></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-557"></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-558"></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-559"></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-560"></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-561"></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-562"></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-563"></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-564"></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-565"></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-566"></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-567"></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-568"></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-569"></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-570"></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-571"></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-572"></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-573"></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-574"></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-575"></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-576"></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-577"></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-578"></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-579"></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-580"></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-581"></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-582"></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-583"></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-584"></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-585"></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-586"></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-587"></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-588"></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-589"></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-590"></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-591"></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-592"></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-593"></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-594"></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-595"></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-596"></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-597"></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-598"></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-599"></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-600"></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-601"></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-602"></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-603"></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-604"></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-605"></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-606"></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-607"></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-608"></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-609"></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-610"></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-611"></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-612"></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-613"></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-614"></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-615"></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-616"></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-617"></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-618"></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-619"></a>      <span class='keyglyph'>]</span>-<a name="line-620"></a>-<a name="line-621"></a><span class='comment'>-- |</span>-<a name="line-622"></a><span class='comment'>-- checking for XML digit</span>-<a name="line-623"></a>-<a name="line-624"></a><a name="isXmlDigit"></a><span class='definition'>isXmlDigit</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-625"></a><span class='definition'>isXmlDigit</span> <span class='varid'>c</span>-<a name="line-626"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-627"></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-628"></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-629"></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-630"></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-631"></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-632"></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-633"></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-634"></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-635"></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-636"></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-637"></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-638"></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-639"></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-640"></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-641"></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-642"></a>      <span class='keyglyph'>]</span>-<a name="line-643"></a>-<a name="line-644"></a><span class='comment'>-- |</span>-<a name="line-645"></a><span class='comment'>-- checking for XML extender</span>-<a name="line-646"></a>-<a name="line-647"></a><a name="isXmlExtender"></a><span class='definition'>isXmlExtender</span>		<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-648"></a><span class='definition'>isXmlExtender</span> <span class='varid'>c</span>-<a name="line-649"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-650"></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-651"></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-652"></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-653"></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-654"></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-655"></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-656"></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-657"></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-658"></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-659"></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-660"></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-661"></a>      <span class='keyglyph'>]</span>-<a name="line-662"></a>-<a name="line-663"></a><span class='comment'>-- |</span>-<a name="line-664"></a><span class='comment'>-- checking for XML control or permanently discouraged char</span>-<a name="line-665"></a><span class='comment'>--</span>-<a name="line-666"></a><span class='comment'>-- see Errata to XML1.0 (http:\/\/www.w3.org\/XML\/xml-V10-2e-errata) No 46</span>-<a name="line-667"></a><span class='comment'>--</span>-<a name="line-668"></a><span class='comment'>-- Document authors are encouraged to avoid "compatibility characters",</span>-<a name="line-669"></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-670"></a><span class='comment'>-- The characters defined in the following ranges are also discouraged.</span>-<a name="line-671"></a><span class='comment'>-- They are either control characters or permanently undefined Unicode characters:</span>-<a name="line-672"></a>-<a name="line-673"></a>-<a name="line-674"></a><a name="isXmlControlOrPermanentlyUndefined"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-675"></a><span class='definition'>isXmlControlOrPermanentlyUndefined</span> <span class='varid'>c</span>-<a name="line-676"></a>    <span class='keyglyph'>=</span> <span class='varid'>isInList</span> <span class='varid'>c</span>-<a name="line-677"></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-678"></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-679"></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-680"></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-681"></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-682"></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-683"></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-684"></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-685"></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-686"></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-687"></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-688"></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-689"></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-690"></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-691"></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-692"></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-693"></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-694"></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-695"></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-696"></a>      <span class='keyglyph'>]</span>-<a name="line-697"></a>-<a name="line-698"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-699"></a>-<a name="line-700"></a><a name="isInList"></a><span class='definition'>isInList</span>	<span class='keyglyph'>::</span> <span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-701"></a><span class='definition'>isInList</span> <span class='varid'>i</span> <span class='keyglyph'>=</span>-<a name="line-702"></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'>-&gt;</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='varid'>lb</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&lt;=</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-703"></a>   <span class='comment'>{- The expression (i&gt;=lb &amp;&amp; i&lt;=ub) || b would work more generally,-<a name="line-704"></a>      but in a sorted list, the above one aborts the computation as early as possible. -}</span>-<a name="line-705"></a>-<a name="line-706"></a><span class='comment'>{--<a name="line-707"></a>isInList'	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool-<a name="line-708"></a>isInList' i ((lb, ub) : l)-<a name="line-709"></a>    | i &lt;  lb	= False-<a name="line-710"></a>    | i &lt;= ub	= True-<a name="line-711"></a>    | otherwise = isInList' i l-<a name="line-712"></a>-<a name="line-713"></a>isInList' _ []-<a name="line-714"></a>    = False-<a name="line-715"></a>-<a name="line-716"></a>{- works, but is not so fast -}-<a name="line-717"></a>isInList''	:: Unicode -&gt; [(Unicode, Unicode)] -&gt; Bool-<a name="line-718"></a>isInList'' i = any (flip isInRange i)-<a name="line-719"></a>-<a name="line-720"></a>-- move to an Utility module?-<a name="line-721"></a>isInRange	:: Ord a =&gt; (a,a) -&gt; a -&gt; Bool-<a name="line-722"></a>isInRange (l,r) x = l&lt;=x &amp;&amp; x&lt;=r-<a name="line-723"></a>-<a name="line-724"></a>propIsInList :: Bool-<a name="line-725"></a>propIsInList =-<a name="line-726"></a>   all-<a name="line-727"></a>     (\c -&gt; let dict = [ ('\x0041', '\x005A'), ('\x0061', '\x007A') ]-<a name="line-728"></a>                b0 = isInList c dict-<a name="line-729"></a>                b1 = isInList' c dict-<a name="line-730"></a>                b2 = isInList'' c dict-<a name="line-731"></a>            in  b0 == b1 &amp;&amp; b0 == b2)-<a name="line-732"></a>     ['\x00'..'\x100']-<a name="line-733"></a>-}</span>-<a name="line-734"></a>-<a name="line-735"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-736"></a>-<a name="line-737"></a><span class='comment'>-- |</span>-<a name="line-738"></a><span class='comment'>-- code conversion from latin1 to Unicode</span>-<a name="line-739"></a>-<a name="line-740"></a><a name="latin1ToUnicode"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-741"></a><span class='definition'>latin1ToUnicode</span>	<span class='keyglyph'>=</span> <span class='varid'>id</span>-<a name="line-742"></a>-<a name="line-743"></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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-744"></a><span class='definition'>latinToUnicode</span> <span class='varid'>tt</span>-<a name="line-745"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>charToUni</span>-<a name="line-746"></a>    <span class='keyword'>where</span>-<a name="line-747"></a>    <span class='varid'>charToUni</span> <span class='varid'>c</span> <span class='keyglyph'>=</span>-<a name="line-748"></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'>-&gt;</span>-<a name="line-749"></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-750"></a>             <span class='conid'>EQ</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>dst</span>-<a name="line-751"></a>             <span class='conid'>LT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span> <span class='comment'>{- not found in table -}</span>-<a name="line-752"></a>             <span class='conid'>GT</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>r</span><span class='layout'>)</span> <span class='varid'>c</span> <span class='varid'>tt</span>-<a name="line-753"></a>-<a name="line-754"></a><span class='comment'>-- | conversion from ASCII to unicode with check for legal ASCII char set</span>-<a name="line-755"></a><span class='comment'>--</span>-<a name="line-756"></a><span class='comment'>-- Structure of decoding function copied from 'Data.Char.UTF8.decode'.</span>-<a name="line-757"></a>-<a name="line-758"></a><a name="decodeAscii"></a><span class='definition'>decodeAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>-<a name="line-759"></a><span class='definition'>decodeAscii</span>-<a name="line-760"></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-761"></a>-<a name="line-762"></a><a name="decodeAsciiEmbedErrors"></a><span class='definition'>decodeAsciiEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UStringWithErrors</span>-<a name="line-763"></a><span class='definition'>decodeAsciiEmbedErrors</span> <span class='varid'>str</span>-<a name="line-764"></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'>-&gt;</span> <span class='keyword'>if</span> <span class='varid'>isValid</span> <span class='varid'>c</span>-<a name="line-765"></a>                         <span class='keyword'>then</span> <span class='conid'>Right</span> <span class='varid'>c</span>-<a name="line-766"></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-767"></a>    <span class='keyword'>where</span>-<a name="line-768"></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-769"></a>    <span class='varid'>toErrStr</span> <span class='varid'>errChr</span> <span class='varid'>pos</span>-<a name="line-770"></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-771"></a>    <span class='varid'>isValid</span> <span class='varid'>x</span> <span class='keyglyph'>=</span> <span class='varid'>x</span> <span class='varop'>&lt;</span> <span class='chr'>'\x80'</span>-<a name="line-772"></a>-<a name="line-773"></a><span class='comment'>-- |</span>-<a name="line-774"></a><span class='comment'>-- UCS-2 big endian to Unicode conversion</span>-<a name="line-775"></a>-<a name="line-776"></a><a name="ucs2BigEndianToUnicode"></a><span class='definition'>ucs2BigEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-777"></a>-<a name="line-778"></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-779"></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-780"></a>-<a name="line-781"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='conid'>[]</span>-<a name="line-782"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-783"></a>-<a name="line-784"></a><span class='definition'>ucs2BigEndianToUnicode</span> <span class='keyword'>_</span>-<a name="line-785"></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-786"></a>					<span class='comment'>-- is ignored (garbage in, garbage out)</span>-<a name="line-787"></a>-<a name="line-788"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-789"></a>-<a name="line-790"></a><span class='comment'>-- |</span>-<a name="line-791"></a><span class='comment'>-- UCS-2 little endian to Unicode conversion</span>-<a name="line-792"></a>-<a name="line-793"></a><a name="ucs2LittleEndianToUnicode"></a><span class='definition'>ucs2LittleEndianToUnicode</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-794"></a>-<a name="line-795"></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-796"></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-797"></a>-<a name="line-798"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='conid'>[]</span>-<a name="line-799"></a>    <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-800"></a>-<a name="line-801"></a><span class='definition'>ucs2LittleEndianToUnicode</span> <span class='keyglyph'>[</span><span class='keyword'>_</span><span class='keyglyph'>]</span>-<a name="line-802"></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-803"></a>					<span class='comment'>-- is ignored</span>-<a name="line-804"></a>-<a name="line-805"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-806"></a>-<a name="line-807"></a><span class='comment'>-- |</span>-<a name="line-808"></a><span class='comment'>-- UCS-2 to UTF-8 conversion with byte order mark analysis</span>-<a name="line-809"></a>-<a name="line-810"></a><a name="ucs2ToUnicode"></a><span class='definition'>ucs2ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-811"></a>-<a name="line-812"></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-813"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-814"></a>-<a name="line-815"></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-816"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-817"></a>-<a name="line-818"></a><span class='definition'>ucs2ToUnicode</span> <span class='varid'>s</span>-<a name="line-819"></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-820"></a>-<a name="line-821"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-822"></a>-<a name="line-823"></a><span class='comment'>-- |</span>-<a name="line-824"></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-825"></a>-<a name="line-826"></a><a name="utf8ToUnicode"></a><span class='definition'>utf8ToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>DecodingFct</span>-<a name="line-827"></a>-<a name="line-828"></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-829"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>-<a name="line-830"></a>-<a name="line-831"></a><span class='definition'>utf8ToUnicode</span> <span class='varid'>s</span>-<a name="line-832"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8</span> <span class='varid'>s</span>-<a name="line-833"></a>-<a name="line-834"></a><a name="utf8ToUnicodeEmbedErrors"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>DecodingFctEmbedErrors</span>-<a name="line-835"></a>-<a name="line-836"></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-837"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>-<a name="line-838"></a>-<a name="line-839"></a><span class='definition'>utf8ToUnicodeEmbedErrors</span> <span class='varid'>s</span>-<a name="line-840"></a>    <span class='keyglyph'>=</span> <span class='varid'>decodeUtf8EmbedErrors</span> <span class='varid'>s</span>-<a name="line-841"></a>-<a name="line-842"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-843"></a>-<a name="line-844"></a><span class='comment'>-- |</span>-<a name="line-845"></a><span class='comment'>-- UTF-16 big endian to UTF-8 conversion with removal of byte order mark</span>-<a name="line-846"></a>-<a name="line-847"></a><a name="utf16beToUnicode"></a><span class='definition'>utf16beToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-848"></a>-<a name="line-849"></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-850"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-851"></a>-<a name="line-852"></a><span class='definition'>utf16beToUnicode</span> <span class='varid'>s</span>-<a name="line-853"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2BigEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-854"></a>-<a name="line-855"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-856"></a>-<a name="line-857"></a><span class='comment'>-- |</span>-<a name="line-858"></a><span class='comment'>-- UTF-16 little endian to UTF-8 conversion with removal of byte order mark</span>-<a name="line-859"></a>-<a name="line-860"></a><a name="utf16leToUnicode"></a><span class='definition'>utf16leToUnicode</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span>-<a name="line-861"></a>-<a name="line-862"></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-863"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-864"></a>-<a name="line-865"></a><span class='definition'>utf16leToUnicode</span> <span class='varid'>s</span>-<a name="line-866"></a>    <span class='keyglyph'>=</span> <span class='varid'>ucs2LittleEndianToUnicode</span> <span class='varid'>s</span>-<a name="line-867"></a>-<a name="line-868"></a>-<a name="line-869"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-870"></a>-<a name="line-871"></a><span class='comment'>-- |</span>-<a name="line-872"></a><span class='comment'>-- substitute all Unicode characters, that are not legal 1-byte</span>-<a name="line-873"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>-<a name="line-874"></a><span class='comment'>--</span>-<a name="line-875"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>-<a name="line-876"></a><span class='comment'>-- attribute values into pure ascii.</span>-<a name="line-877"></a><span class='comment'>--</span>-<a name="line-878"></a><span class='comment'>-- see also : 'unicodeToLatin1'</span>-<a name="line-879"></a>-<a name="line-880"></a><a name="unicodeToXmlEntity"></a><span class='definition'>unicodeToXmlEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-881"></a><span class='definition'>unicodeToXmlEntity</span>-<a name="line-882"></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-883"></a>-<a name="line-884"></a><span class='comment'>-- |</span>-<a name="line-885"></a><span class='comment'>-- substitute all Unicode characters, that are not legal latin1</span>-<a name="line-886"></a><span class='comment'>-- UTF-8 XML characters by a character reference.</span>-<a name="line-887"></a><span class='comment'>--</span>-<a name="line-888"></a><span class='comment'>-- This function can be used to translate all text nodes and</span>-<a name="line-889"></a><span class='comment'>-- attribute values into ISO latin1.</span>-<a name="line-890"></a><span class='comment'>--</span>-<a name="line-891"></a><span class='comment'>-- see also : 'unicodeToXmlEntity'</span>-<a name="line-892"></a>-<a name="line-893"></a><a name="unicodeToLatin1"></a><span class='definition'>unicodeToLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-894"></a><span class='definition'>unicodeToLatin1</span>-<a name="line-895"></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-896"></a>-<a name="line-897"></a>-<a name="line-898"></a><a name="escape"></a><span class='comment'>-- |</span>-<a name="line-899"></a><span class='comment'>-- substitute selected characters</span>-<a name="line-900"></a><span class='comment'>-- The @check@ function returns 'True' whenever a character needs to substitution</span>-<a name="line-901"></a><span class='comment'>-- The function @esc@ computes a substitute.</span>-<a name="line-902"></a><span class='definition'>escape</span> <span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-903"></a><span class='definition'>escape</span> <span class='varid'>check</span> <span class='varid'>esc</span> <span class='keyglyph'>=</span>-<a name="line-904"></a>    <span class='varid'>concatMap</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>uc</span> <span class='keyglyph'>-&gt;</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-905"></a>-<a name="line-906"></a><span class='comment'>-- |</span>-<a name="line-907"></a><span class='comment'>-- removes all non ascii chars, may be used to transform</span>-<a name="line-908"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>-<a name="line-909"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>-<a name="line-910"></a><span class='comment'>--</span>-<a name="line-911"></a><span class='comment'>-- see also : 'unicodeRemoveNoneLatin1', 'unicodeToXmlEntity'</span>-<a name="line-912"></a>-<a name="line-913"></a><a name="unicodeRemoveNoneAscii"></a><span class='definition'>unicodeRemoveNoneAscii</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-914"></a><span class='definition'>unicodeRemoveNoneAscii</span>-<a name="line-915"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>is1ByteXmlChar</span>-<a name="line-916"></a>-<a name="line-917"></a><span class='comment'>-- |</span>-<a name="line-918"></a><span class='comment'>-- removes all non latin1 chars, may be used to transform</span>-<a name="line-919"></a><span class='comment'>-- a document into a pure ascii representation by removing</span>-<a name="line-920"></a><span class='comment'>-- all non ascii chars from tag and attibute names</span>-<a name="line-921"></a><span class='comment'>--</span>-<a name="line-922"></a><span class='comment'>-- see also : 'unicodeRemoveNoneAscii', 'unicodeToLatin1'</span>-<a name="line-923"></a>-<a name="line-924"></a><a name="unicodeRemoveNoneLatin1"></a><span class='definition'>unicodeRemoveNoneLatin1</span>	<span class='keyglyph'>::</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-925"></a><span class='definition'>unicodeRemoveNoneLatin1</span>-<a name="line-926"></a>    <span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isXmlLatin1Char</span>-<a name="line-927"></a>-<a name="line-928"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-929"></a>-<a name="line-930"></a><span class='comment'>-- |</span>-<a name="line-931"></a><span class='comment'>-- convert an Unicode into a XML character reference.</span>-<a name="line-932"></a><span class='comment'>--</span>-<a name="line-933"></a><span class='comment'>-- see also : 'intToCharRefHex'</span>-<a name="line-934"></a>-<a name="line-935"></a><a name="intToCharRef"></a><span class='definition'>intToCharRef</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-936"></a><span class='definition'>intToCharRef</span> <span class='varid'>i</span>-<a name="line-937"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#"</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-938"></a>-<a name="line-939"></a><span class='comment'>-- |</span>-<a name="line-940"></a><span class='comment'>-- convert an Unicode into a XML hexadecimal character reference.</span>-<a name="line-941"></a><span class='comment'>--</span>-<a name="line-942"></a><span class='comment'>-- see also: 'intToCharRef'</span>-<a name="line-943"></a>-<a name="line-944"></a><a name="intToCharRefHex"></a><span class='definition'>intToCharRefHex</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-945"></a><span class='definition'>intToCharRefHex</span> <span class='varid'>i</span>-<a name="line-946"></a>    <span class='keyglyph'>=</span> <span class='str'>"&amp;#x"</span> <span class='varop'>++</span> <span class='varid'>h2</span> <span class='varop'>++</span> <span class='str'>";"</span>-<a name="line-947"></a>      <span class='keyword'>where</span>-<a name="line-948"></a>      <span class='varid'>h1</span> <span class='keyglyph'>=</span> <span class='varid'>intToHexString</span> <span class='varid'>i</span>-<a name="line-949"></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-950"></a>	   <span class='keyword'>then</span> <span class='chr'>'0'</span><span class='conop'>:</span> <span class='varid'>h1</span>-<a name="line-951"></a>	   <span class='keyword'>else</span> <span class='varid'>h1</span>-<a name="line-952"></a>-<a name="line-953"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-954"></a><span class='comment'>--</span>-<a name="line-955"></a><span class='comment'>-- | White Space (XML Standard 2.3) and</span>-<a name="line-956"></a><span class='comment'>-- end of line handling (2.11)</span>-<a name="line-957"></a><span class='comment'>--</span>-<a name="line-958"></a><span class='comment'>-- \#x0D and \#x0D\#x0A are mapped to \#x0A</span>-<a name="line-959"></a>-<a name="line-960"></a><a name="normalizeNL"></a><span class='definition'>normalizeNL</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</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='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-962"></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-963"></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-964"></a><span class='definition'>normalizeNL</span> <span class='conid'>[]</span>				<span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-965"></a>-<a name="line-966"></a>-<a name="line-967"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-968"></a>-<a name="line-969"></a><span class='comment'>-- |</span>-<a name="line-970"></a><span class='comment'>-- the table of supported character encoding schemes and the associated</span>-<a name="line-971"></a><span class='comment'>-- conversion functions into Unicode:q</span>-<a name="line-972"></a>-<a name="line-973"></a><span class='comment'>{--<a name="line-974"></a>This table could be derived from decodingTableEither,-<a name="line-975"></a>but this way it is certainly more efficient.-<a name="line-976"></a>-}</span>-<a name="line-977"></a>-<a name="line-978"></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-979"></a><span class='definition'>decodingTable</span>-<a name="line-980"></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-981"></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-982"></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-983"></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-984"></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-985"></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-986"></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-987"></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-988"></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-989"></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-990"></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-991"></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-992"></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-993"></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-994"></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-995"></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-996"></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-997"></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-998"></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-999"></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-1000"></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-1001"></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-1002"></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-1003"></a>      <span class='keyglyph'>]</span>-<a name="line-1004"></a>    <span class='keyword'>where</span>-<a name="line-1005"></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'>-&gt;</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-1006"></a>-<a name="line-1007"></a><span class='comment'>-- |</span>-<a name="line-1008"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>-<a name="line-1009"></a>-<a name="line-1010"></a><a name="getDecodingFct"></a><span class='definition'>getDecodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFct</span>-<a name="line-1011"></a><span class='definition'>getDecodingFct</span> <span class='varid'>enc</span>-<a name="line-1012"></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-1013"></a>-<a name="line-1014"></a>-<a name="line-1015"></a><span class='comment'>-- |</span>-<a name="line-1016"></a><span class='comment'>-- Similar to 'decodingTable' but it embeds errors</span>-<a name="line-1017"></a><span class='comment'>-- in the string of decoded characters.</span>-<a name="line-1018"></a>-<a name="line-1019"></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-1020"></a><span class='definition'>decodingTableEmbedErrors</span>-<a name="line-1021"></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-1022"></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-1023"></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-1024"></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-1025"></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-1026"></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-1027"></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-1028"></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-1029"></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-1030"></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-1031"></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-1032"></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-1033"></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-1034"></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-1035"></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-1036"></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-1037"></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-1038"></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-1039"></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-1040"></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-1041"></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-1042"></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-1043"></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-1044"></a>      <span class='keyglyph'>]</span>-<a name="line-1045"></a>    <span class='keyword'>where</span>-<a name="line-1046"></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-1047"></a>-<a name="line-1048"></a><span class='comment'>-- |</span>-<a name="line-1049"></a><span class='comment'>-- the lookup function for selecting the decoding function</span>-<a name="line-1050"></a>-<a name="line-1051"></a><a name="getDecodingFctEmbedErrors"></a><span class='definition'>getDecodingFctEmbedErrors</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>DecodingFctEmbedErrors</span>-<a name="line-1052"></a><span class='definition'>getDecodingFctEmbedErrors</span> <span class='varid'>enc</span>-<a name="line-1053"></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-1054"></a>-<a name="line-1055"></a>-<a name="line-1056"></a>-<a name="line-1057"></a><span class='comment'>-- |</span>-<a name="line-1058"></a><span class='comment'>-- the table of supported output encoding schemes and the associated</span>-<a name="line-1059"></a><span class='comment'>-- conversion functions from Unicode</span>-<a name="line-1060"></a>-<a name="line-1061"></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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-1062"></a><span class='definition'>outputEncodingTable</span>-<a name="line-1063"></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-1064"></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-1065"></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-1066"></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-1067"></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-1068"></a>      <span class='keyglyph'>]</span>-<a name="line-1069"></a>-<a name="line-1070"></a><span class='comment'>-- |</span>-<a name="line-1071"></a><span class='comment'>-- the lookup function for selecting the encoding function</span>-<a name="line-1072"></a>-<a name="line-1073"></a><a name="getOutputEncodingFct"></a><span class='definition'>getOutputEncodingFct</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span><span class='layout'>)</span>-<a name="line-1074"></a><span class='definition'>getOutputEncodingFct</span> <span class='varid'>enc</span>-<a name="line-1075"></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-1076"></a>-<a name="line-1077"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-1078"></a><span class='comment'>--</span>-<a name="line-1079"></a>-<a name="line-1080"></a><a name="guessEncoding"></a><span class='definition'>guessEncoding</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-1081"></a>-<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='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-1083"></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-1084"></a>-<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='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-1086"></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-1087"></a>-<a name="line-1088"></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-1089"></a>-<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'>'\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-1091"></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-1092"></a>-<a name="line-1093"></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'>-- "&lt;" of "&lt;?xml"</span>-<a name="line-1094"></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'>-- "&lt;" of "&lt;?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'>'\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'>-- "&lt;" of "&lt;?xml"</span>-<a name="line-1096"></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'>-- "&lt;" of "&lt;?xml"</span>-<a name="line-1097"></a>-<a name="line-1098"></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'>-- "&lt;?" of "&lt;?xml"</span>-<a name="line-1099"></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'>-- "&lt;?" of "&lt;?xml"</span>-<a name="line-1100"></a>-<a name="line-1101"></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'>-- "&lt;?xm" of "&lt;?xml"</span>-<a name="line-1102"></a>-<a name="line-1103"></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-1104"></a>-<a name="line-1105"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;</span> <span class='chr'>'\x80'</span>+<a name="line-127"></a>      <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span> <span class='varid'>c</span> <span class='varop'>&gt;=</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'>-&gt;</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'>&gt;=</span> <span class='chr'>'\x80'</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>-&gt;</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'>-&gt;</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'>&gt;=</span> <span class='num'>0</span>          <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>&gt;=</span> <span class='num'>0x00000080</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>&gt;=</span> <span class='num'>0x00000800</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>&gt;=</span> <span class='num'>0x00010000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>&gt;=</span> <span class='num'>0x00200000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>&gt;=</span> <span class='num'>0x04000000</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;=</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>i</span> <span class='varop'>&gt;=</span> <span class='varid'>lb</span> <span class='varop'>&amp;&amp;</span> <span class='layout'>(</span><span class='varid'>i</span> <span class='varop'>&lt;=</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&gt;=lb &amp;&amp; i&lt;=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 -&gt; [(Unicode, Unicode)] -&gt; Bool+<a name="line-707"></a>isInList' i ((lb, ub) : l)+<a name="line-708"></a>    | i &lt;  lb	= False+<a name="line-709"></a>    | i &lt;= 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 -&gt; [(Unicode, Unicode)] -&gt; 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 =&gt; (a,a) -&gt; a -&gt; Bool+<a name="line-721"></a>isInRange (l,r) x = l&lt;=x &amp;&amp; x&lt;=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 -&gt; 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 &amp;&amp; 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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='varid'>dst</span>+<a name="line-750"></a>             <span class='conid'>LT</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Unicode</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UString</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>"&amp;#"</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'>-&gt;</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'>"&amp;#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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Maybe</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-- "&lt;" of "&lt;?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'>-- "&lt;" of "&lt;?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'>-- "&lt;" of "&lt;?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'>-- "&lt;" of "&lt;?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'>-- "&lt;?" of "&lt;?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'>-- "&lt;?" of "&lt;?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'>-- "&lt;?xm" of "&lt;?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-XmlKeywords.html view
@@ -64,301 +64,305 @@ <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_xml_pi</span><span class='layout'>,</span>-<a name="line-60"></a> <span class='varid'>a_options_curl</span><span class='layout'>,</span>-<a name="line-61"></a> <span class='varid'>a_output_encoding</span><span class='layout'>,</span>-<a name="line-62"></a> <span class='varid'>a_output_file</span><span class='layout'>,</span>-<a name="line-63"></a> <span class='varid'>a_output_xml</span><span class='layout'>,</span>-<a name="line-64"></a> <span class='varid'>a_output_html</span><span class='layout'>,</span>-<a name="line-65"></a> <span class='varid'>a_parse_by_mimetype</span><span class='layout'>,</span>-<a name="line-66"></a> <span class='varid'>a_parse_html</span><span class='layout'>,</span>-<a name="line-67"></a> <span class='varid'>a_parse_xml</span><span class='layout'>,</span>-<a name="line-68"></a> <span class='varid'>a_peref</span><span class='layout'>,</span>-<a name="line-69"></a> <span class='varid'>a_preserve_comment</span><span class='layout'>,</span>-<a name="line-70"></a> <span class='varid'>a_propagate_errors</span><span class='layout'>,</span>-<a name="line-71"></a> <span class='varid'>a_proxy</span><span class='layout'>,</span>-<a name="line-72"></a> <span class='varid'>a_remove_whitespace</span><span class='layout'>,</span>-<a name="line-73"></a> <span class='varid'>a_show_haskell</span><span class='layout'>,</span>-<a name="line-74"></a> <span class='varid'>a_show_tree</span><span class='layout'>,</span>-<a name="line-75"></a> <span class='varid'>a_source</span><span class='layout'>,</span>-<a name="line-76"></a> <span class='varid'>a_status</span><span class='layout'>,</span>-<a name="line-77"></a> <span class='varid'>a_standalone</span><span class='layout'>,</span>-<a name="line-78"></a> <span class='varid'>a_tagsoup</span><span class='layout'>,</span>-<a name="line-79"></a> <span class='varid'>a_trace</span><span class='layout'>,</span>-<a name="line-80"></a> <span class='varid'>a_type</span><span class='layout'>,</span>-<a name="line-81"></a> <span class='varid'>a_use_curl</span><span class='layout'>,</span>-<a name="line-82"></a> <span class='varid'>a_url</span><span class='layout'>,</span>-<a name="line-83"></a> <span class='varid'>a_validate</span><span class='layout'>,</span>-<a name="line-84"></a> <span class='varid'>a_value</span><span class='layout'>,</span>-<a name="line-85"></a> <span class='varid'>a_verbose</span><span class='layout'>,</span>-<a name="line-86"></a> <span class='varid'>a_version</span><span class='layout'>,</span>-<a name="line-87"></a> <span class='varid'>a_xml</span><span class='layout'>,</span>-<a name="line-88"></a> <span class='varid'>a_xmlns</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-89"></a>-<a name="line-90"></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-91"></a> <span class='varid'>v_1</span><span class='layout'>,</span>-<a name="line-92"></a> <span class='varid'>v_yes</span><span class='layout'>,</span>-<a name="line-93"></a> <span class='varid'>v_no</span><span class='layout'>,</span>-<a name="line-94"></a> <span class='varid'>v_any</span><span class='layout'>,</span>-<a name="line-95"></a> <span class='varid'>v_children</span><span class='layout'>,</span>-<a name="line-96"></a> <span class='varid'>v_choice</span><span class='layout'>,</span>-<a name="line-97"></a> <span class='varid'>v_empty</span><span class='layout'>,</span>-<a name="line-98"></a> <span class='varid'>v_mixed</span><span class='layout'>,</span>-<a name="line-99"></a> <span class='varid'>v_seq</span><span class='layout'>,</span>-<a name="line-100"></a> <span class='varid'>v_null</span><span class='layout'>,</span>-<a name="line-101"></a> <span class='varid'>v_option</span><span class='layout'>,</span>-<a name="line-102"></a> <span class='varid'>v_pcdata</span><span class='layout'>,</span>-<a name="line-103"></a> <span class='varid'>v_star</span><span class='layout'>,</span>-<a name="line-104"></a> <span class='varid'>v_plus</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-105"></a>-<a name="line-106"></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-107"></a> <span class='varid'>k_cdata</span><span class='layout'>,</span>-<a name="line-108"></a> <span class='varid'>k_empty</span><span class='layout'>,</span>-<a name="line-109"></a> <span class='varid'>k_entity</span><span class='layout'>,</span>-<a name="line-110"></a> <span class='varid'>k_entities</span><span class='layout'>,</span>-<a name="line-111"></a> <span class='varid'>k_id</span><span class='layout'>,</span>-<a name="line-112"></a> <span class='varid'>k_idref</span><span class='layout'>,</span>-<a name="line-113"></a> <span class='varid'>k_idrefs</span><span class='layout'>,</span>-<a name="line-114"></a> <span class='varid'>k_include</span><span class='layout'>,</span>-<a name="line-115"></a> <span class='varid'>k_ignore</span><span class='layout'>,</span>-<a name="line-116"></a> <span class='varid'>k_nmtoken</span><span class='layout'>,</span>-<a name="line-117"></a> <span class='varid'>k_nmtokens</span><span class='layout'>,</span>-<a name="line-118"></a> <span class='varid'>k_peref</span><span class='layout'>,</span>-<a name="line-119"></a> <span class='varid'>k_public</span><span class='layout'>,</span>-<a name="line-120"></a> <span class='varid'>k_system</span><span class='layout'>,</span>-<a name="line-121"></a> <span class='varid'>k_enumeration</span><span class='layout'>,</span>-<a name="line-122"></a> <span class='varid'>k_fixed</span><span class='layout'>,</span>-<a name="line-123"></a> <span class='varid'>k_implied</span><span class='layout'>,</span>-<a name="line-124"></a> <span class='varid'>k_ndata</span><span class='layout'>,</span>-<a name="line-125"></a> <span class='varid'>k_notation</span><span class='layout'>,</span>-<a name="line-126"></a> <span class='varid'>k_pcdata</span><span class='layout'>,</span>-<a name="line-127"></a> <span class='varid'>k_required</span><span class='layout'>,</span>-<a name="line-128"></a> <span class='varid'>k_default</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-129"></a>-<a name="line-130"></a><span class='comment'>-- ------------------------------------------------------------</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='definition'>t_xml</span>		<span class='keyglyph'>=</span> <span class='str'>"xml"</span>-<a name="line-133"></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-134"></a>-<a name="line-135"></a><span class='definition'>a_canonicalize</span>			<span class='keyglyph'>=</span> <span class='str'>"canonicalize"</span>-<a name="line-136"></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-137"></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-138"></a><a name="a_column"></a><span class='definition'>a_column</span>			<span class='keyglyph'>=</span> <span class='str'>"column"</span>-<a name="line-139"></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-140"></a><a name="a_default"></a><span class='definition'>a_default</span>			<span class='keyglyph'>=</span> <span class='str'>"default"</span>-<a name="line-141"></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-142"></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-143"></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-144"></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-145"></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-146"></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-147"></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-148"></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-149"></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-150"></a><a name="a_encoding"></a><span class='definition'>a_encoding</span>			<span class='keyglyph'>=</span> <span class='str'>"encoding"</span>-<a name="line-151"></a><a name="a_error"></a><span class='definition'>a_error</span>				<span class='keyglyph'>=</span> <span class='str'>"error"</span>-<a name="line-152"></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-153"></a><a name="a_help"></a><span class='definition'>a_help</span>				<span class='keyglyph'>=</span> <span class='str'>"help"</span>-<a name="line-154"></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-155"></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-156"></a><a name="a_indent"></a><span class='definition'>a_indent</span>			<span class='keyglyph'>=</span> <span class='str'>"indent"</span>-<a name="line-157"></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-158"></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-159"></a><a name="a_kind"></a><span class='definition'>a_kind</span>				<span class='keyglyph'>=</span> <span class='str'>"kind"</span>-<a name="line-160"></a><a name="a_line"></a><span class='definition'>a_line</span>				<span class='keyglyph'>=</span> <span class='str'>"line"</span>-<a name="line-161"></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-162"></a><a name="a_module"></a><span class='definition'>a_module</span>			<span class='keyglyph'>=</span> <span class='str'>"module"</span>-<a name="line-163"></a><a name="a_modifier"></a><span class='definition'>a_modifier</span>			<span class='keyglyph'>=</span> <span class='str'>"modifier"</span>-<a name="line-164"></a><a name="a_name"></a><span class='definition'>a_name</span>				<span class='keyglyph'>=</span> <span class='str'>"name"</span>-<a name="line-165"></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-166"></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-167"></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-168"></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-169"></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-170"></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-171"></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-172"></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-173"></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-174"></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-175"></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-176"></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-177"></a><a name="a_proxy"></a><span class='definition'>a_proxy</span>				<span class='keyglyph'>=</span> <span class='str'>"proxy"</span>-<a name="line-178"></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-179"></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-180"></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-181"></a><a name="a_source"></a><span class='definition'>a_source</span>			<span class='keyglyph'>=</span> <span class='str'>"source"</span>-<a name="line-182"></a><a name="a_standalone"></a><span class='definition'>a_standalone</span>			<span class='keyglyph'>=</span> <span class='str'>"standalone"</span>-<a name="line-183"></a><a name="a_status"></a><span class='definition'>a_status</span>			<span class='keyglyph'>=</span> <span class='str'>"status"</span>-<a name="line-184"></a><a name="a_tagsoup"></a><span class='definition'>a_tagsoup</span>			<span class='keyglyph'>=</span> <span class='str'>"tagsoup"</span>-<a name="line-185"></a><a name="a_trace"></a><span class='definition'>a_trace</span>				<span class='keyglyph'>=</span> <span class='str'>"trace"</span>-<a name="line-186"></a><a name="a_type"></a><span class='definition'>a_type</span>				<span class='keyglyph'>=</span> <span class='str'>"type"</span>-<a name="line-187"></a><a name="a_url"></a><span class='definition'>a_url</span>				<span class='keyglyph'>=</span> <span class='str'>"url"</span>-<a name="line-188"></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-189"></a><a name="a_validate"></a><span class='definition'>a_validate</span>			<span class='keyglyph'>=</span> <span class='str'>"validate"</span>-<a name="line-190"></a><a name="a_value"></a><span class='definition'>a_value</span>				<span class='keyglyph'>=</span> <span class='str'>"value"</span>-<a name="line-191"></a><a name="a_verbose"></a><span class='definition'>a_verbose</span>			<span class='keyglyph'>=</span> <span class='str'>"verbose"</span>-<a name="line-192"></a><a name="a_version"></a><span class='definition'>a_version</span>			<span class='keyglyph'>=</span> <span class='str'>"version"</span>-<a name="line-193"></a><a name="a_xml"></a><span class='definition'>a_xml</span>				<span class='keyglyph'>=</span> <span class='str'>"xml"</span>-<a name="line-194"></a><a name="a_xmlns"></a><span class='definition'>a_xmlns</span>				<span class='keyglyph'>=</span> <span class='str'>"xmlns"</span>-<a name="line-195"></a>-<a name="line-196"></a><a name="v_yes"></a><span class='definition'>v_yes</span>		<span class='keyglyph'>=</span> <span class='str'>"yes"</span>-<a name="line-197"></a><a name="v_no"></a><span class='definition'>v_no</span>		<span class='keyglyph'>=</span> <span class='str'>"no"</span>-<a name="line-198"></a><a name="v_1"></a><span class='definition'>v_1</span>		<span class='keyglyph'>=</span> <span class='str'>"1"</span>-<a name="line-199"></a><span class='definition'>v_0</span>		<span class='keyglyph'>=</span> <span class='str'>"0"</span>-<a name="line-200"></a>-<a name="line-201"></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-202"></a><a name="v_children"></a><span class='definition'>v_children</span>	<span class='keyglyph'>=</span> <span class='str'>"children"</span>-<a name="line-203"></a><a name="v_choice"></a><span class='definition'>v_choice</span>	<span class='keyglyph'>=</span> <span class='str'>"choice"</span>-<a name="line-204"></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-205"></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-206"></a><a name="v_mixed"></a><span class='definition'>v_mixed</span>		<span class='keyglyph'>=</span> <span class='str'>"mixed"</span>-<a name="line-207"></a><a name="v_seq"></a><span class='definition'>v_seq</span>		<span class='keyglyph'>=</span> <span class='str'>"seq"</span>-<a name="line-208"></a>-<a name="line-209"></a><a name="v_null"></a><span class='definition'>v_null</span>		<span class='keyglyph'>=</span> <span class='str'>""</span>-<a name="line-210"></a><a name="v_option"></a><span class='definition'>v_option</span>	<span class='keyglyph'>=</span> <span class='str'>"?"</span>-<a name="line-211"></a><a name="v_star"></a><span class='definition'>v_star</span>		<span class='keyglyph'>=</span> <span class='str'>"*"</span>-<a name="line-212"></a><a name="v_plus"></a><span class='definition'>v_plus</span>		<span class='keyglyph'>=</span> <span class='str'>"+"</span>-<a name="line-213"></a>-<a name="line-214"></a><span class='definition'>k_any</span>		<span class='keyglyph'>=</span> <span class='str'>"ANY"</span>-<a name="line-215"></a><a name="k_cdata"></a><span class='definition'>k_cdata</span>		<span class='keyglyph'>=</span> <span class='str'>"CDATA"</span>-<a name="line-216"></a><a name="k_empty"></a><span class='definition'>k_empty</span>		<span class='keyglyph'>=</span> <span class='str'>"EMPTY"</span>-<a name="line-217"></a><a name="k_entity"></a><span class='definition'>k_entity</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>-<a name="line-218"></a><a name="k_entities"></a><span class='definition'>k_entities</span>	<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>-<a name="line-219"></a><a name="k_id"></a><span class='definition'>k_id</span>		<span class='keyglyph'>=</span> <span class='str'>"ID"</span>-<a name="line-220"></a><a name="k_idref"></a><span class='definition'>k_idref</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>-<a name="line-221"></a><a name="k_idrefs"></a><span class='definition'>k_idrefs</span>	<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>-<a name="line-222"></a><a name="k_include"></a><span class='definition'>k_include</span>	<span class='keyglyph'>=</span> <span class='str'>"INCLUDE"</span>-<a name="line-223"></a><a name="k_ignore"></a><span class='definition'>k_ignore</span>	<span class='keyglyph'>=</span> <span class='str'>"IGNORE"</span>-<a name="line-224"></a><a name="k_nmtoken"></a><span class='definition'>k_nmtoken</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>-<a name="line-225"></a><a name="k_nmtokens"></a><span class='definition'>k_nmtokens</span>	<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>-<a name="line-226"></a><a name="k_peref"></a><span class='definition'>k_peref</span>		<span class='keyglyph'>=</span> <span class='str'>"PERef"</span>-<a name="line-227"></a><a name="k_public"></a><span class='definition'>k_public</span>	<span class='keyglyph'>=</span> <span class='str'>"PUBLIC"</span>-<a name="line-228"></a><a name="k_system"></a><span class='definition'>k_system</span>	<span class='keyglyph'>=</span> <span class='str'>"SYSTEM"</span>-<a name="line-229"></a>-<a name="line-230"></a><a name="k_enumeration"></a><span class='definition'>k_enumeration</span>	<span class='keyglyph'>=</span> <span class='str'>"#ENUMERATION"</span>-<a name="line-231"></a><a name="k_fixed"></a><span class='definition'>k_fixed</span>		<span class='keyglyph'>=</span> <span class='str'>"#FIXED"</span>-<a name="line-232"></a><a name="k_implied"></a><span class='definition'>k_implied</span>	<span class='keyglyph'>=</span> <span class='str'>"#IMPLIED"</span>-<a name="line-233"></a><a name="k_ndata"></a><span class='definition'>k_ndata</span>		<span class='keyglyph'>=</span> <span class='str'>"NDATA"</span>-<a name="line-234"></a><a name="k_notation"></a><span class='definition'>k_notation</span>	<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>-<a name="line-235"></a><a name="k_pcdata"></a><span class='definition'>k_pcdata</span>	<span class='keyglyph'>=</span> <span class='str'>"#PCDATA"</span>-<a name="line-236"></a><a name="k_required"></a><span class='definition'>k_required</span>	<span class='keyglyph'>=</span> <span class='str'>"#REQUIRED"</span>-<a name="line-237"></a><a name="k_default"></a><span class='definition'>k_default</span>	<span class='keyglyph'>=</span> <span class='str'>"#DEFAULT"</span>-<a name="line-238"></a>-<a name="line-239"></a>-<a name="line-240"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-241"></a><span class='comment'>--</span>+<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><span class='comment'>-- attribute names for transfer protocol attributes</span>-<a name="line-244"></a><span class='comment'>-- used in XmlInput for describing header information</span>-<a name="line-245"></a><span class='comment'>-- of http and other requests</span>+<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><a name="transferPrefix"></a><span class='definition'>transferPrefix</span>-<a name="line-248"></a> <span class='layout'>,</span> <span class='varid'>transferProtocol</span>-<a name="line-249"></a> <span class='layout'>,</span> <span class='varid'>transferMimeType</span>-<a name="line-250"></a> <span class='layout'>,</span> <span class='varid'>transferEncoding</span>-<a name="line-251"></a> <span class='layout'>,</span> <span class='varid'>transferURI</span>-<a name="line-252"></a> <span class='layout'>,</span> <span class='varid'>transferDefaultURI</span>-<a name="line-253"></a> <span class='layout'>,</span> <span class='varid'>transferStatus</span>-<a name="line-254"></a> <span class='layout'>,</span> <span class='varid'>transferMessage</span>-<a name="line-255"></a> <span class='layout'>,</span> <span class='varid'>transferVersion</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-256"></a>-<a name="line-257"></a><span class='definition'>transferPrefix</span>		<span class='keyglyph'>=</span> <span class='str'>"transfer-"</span>-<a name="line-258"></a>-<a name="line-259"></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-260"></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-261"></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-262"></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-263"></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-264"></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-265"></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-266"></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-267"></a>-<a name="line-268"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-269"></a><span class='comment'>--</span>-<a name="line-270"></a>-<a name="line-271"></a><a name="httpPrefix"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-272"></a><span class='definition'>httpPrefix</span>	<span class='keyglyph'>=</span> <span class='str'>"http-"</span>-<a name="line-273"></a>-<a name="line-274"></a><a name="stringProtocol"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-275"></a><span class='definition'>stringProtocol</span>	<span class='keyglyph'>=</span> <span class='str'>"string:"</span>-<a name="line-276"></a>-<a name="line-277"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-278"></a><span class='comment'>--</span>-<a name="line-279"></a><span class='comment'>-- encoding names</span>+<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><a name="isoLatin1"></a><span class='definition'>isoLatin1</span>-<a name="line-282"></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-283"></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-284"></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-285"></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-286"></a>-<a name="line-287"></a><span class='definition'>isoLatin1</span>	<span class='keyglyph'>=</span> <span class='varid'>iso8859_1</span>-<a name="line-288"></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-289"></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-290"></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-291"></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-292"></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-293"></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-294"></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-295"></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-296"></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-297"></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-298"></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-299"></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-300"></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-301"></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-302"></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-303"></a><a name="usAscii"></a><span class='definition'>usAscii</span>		<span class='keyglyph'>=</span> <span class='str'>"US-ASCII"</span>-<a name="line-304"></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-305"></a><a name="utf8"></a><span class='definition'>utf8</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-8"</span>-<a name="line-306"></a><a name="utf16"></a><span class='definition'>utf16</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16"</span>-<a name="line-307"></a><a name="utf16be"></a><span class='definition'>utf16be</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16BE"</span>-<a name="line-308"></a><a name="utf16le"></a><span class='definition'>utf16le</span>		<span class='keyglyph'>=</span> <span class='str'>"UTF-16LE"</span>-<a name="line-309"></a><a name="unicodeString"></a><span class='definition'>unicodeString</span>	<span class='keyglyph'>=</span> <span class='str'>"UNICODE"</span>-<a name="line-310"></a>-<a name="line-311"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-312"></a><span class='comment'>--</span>-<a name="line-313"></a><span class='comment'>-- known namespaces</span>+<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'>-- the predefined namespace uri for xml: \"http:\/\/www.w3.org\/XML\/1998\/namespace\"</span>-<a name="line-317"></a>-<a name="line-318"></a><a name="xmlNamespace"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-319"></a><span class='definition'>xmlNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/XML/1998/namespace"</span>-<a name="line-320"></a>-<a name="line-321"></a><span class='comment'>-- |</span>-<a name="line-322"></a><span class='comment'>-- the predefined namespace uri for xmlns: \"http:\/\/www.w3.org\/2000\/xmlns\/\"</span>-<a name="line-323"></a>-<a name="line-324"></a><a name="xmlnsNamespace"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-325"></a><span class='definition'>xmlnsNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2000/xmlns/"</span>-<a name="line-326"></a>-<a name="line-327"></a><a name="relaxNamespace"></a><span class='comment'>-- | Relax NG namespace</span>-<a name="line-328"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-329"></a><span class='definition'>relaxNamespace</span>	<span class='keyglyph'>=</span> <span class='str'>"http://relaxng.org/ns/structure/1.0"</span>+<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><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-332"></a><span class='comment'>-- option for Relax NG</span>-<a name="line-333"></a>-<a name="line-334"></a><a name="a_relax_schema"></a><span class='definition'>a_relax_schema</span><span class='layout'>,</span>-<a name="line-335"></a> <span class='varid'>a_do_not_check_restrictions</span><span class='layout'>,</span>  -<a name="line-336"></a> <span class='varid'>a_check_restrictions</span><span class='layout'>,</span>-<a name="line-337"></a> <span class='varid'>a_do_not_validate_externalRef</span><span class='layout'>,</span>-<a name="line-338"></a> <span class='varid'>a_validate_externalRef</span><span class='layout'>,</span>-<a name="line-339"></a> <span class='varid'>a_do_not_validate_include</span><span class='layout'>,</span>-<a name="line-340"></a> <span class='varid'>a_validate_include</span><span class='layout'>,</span>-<a name="line-341"></a> <span class='varid'>a_output_changes</span><span class='layout'>,</span> -<a name="line-342"></a> <span class='varid'>a_do_not_collect_errors</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> -<a name="line-343"></a>-<a name="line-344"></a><span class='definition'>a_relax_schema</span>		      <span class='keyglyph'>=</span> <span class='str'>"relax-schema"</span>-<a name="line-345"></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-346"></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-347"></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-348"></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-349"></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-350"></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-351"></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-352"></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-353"></a>-<a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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 view
@@ -311,7 +311,7 @@ <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'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</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'>mkSNsName</span> <span class='varid'>t_root</span><span class='layout'>)</span> <span class='varid'>al</span><span class='layout'>)</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'>-&gt;</span> <span class='conid'>XmlTrees</span> <span class='keyglyph'>-&gt;</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>
doc/hdoc/src/Text-XML-HXT-DOM-XmlOptions.html view
@@ -66,124 +66,126 @@ <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'>"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-62"></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-63"></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-64"></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-65"></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-66"></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-67"></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-68"></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-69"></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-70"></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-71"></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-72"></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-73"></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-74"></a>      <span class='keyglyph'>]</span>-<a name="line-75"></a>    <span class='keyword'>where</span>-<a name="line-76"></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-77"></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'>-&gt;</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-78"></a>+<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'>-&gt;</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><span class='comment'>-- | available Relax NG validation options</span>-<a name="line-81"></a><span class='comment'>--</span>-<a name="line-82"></a><span class='comment'>-- defines options</span>-<a name="line-83"></a><span class='comment'>-- 'a_check_restrictions', 'a_validate_externalRef', 'a_validate_include', 'a_do_not_check_restrictions',  </span>-<a name="line-84"></a><span class='comment'>-- 'a_do_not_validate_externalRef', 'a_do_not_validate_include'</span>-<a name="line-85"></a>-<a name="line-86"></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-87"></a><span class='definition'>relaxOptions</span>    -<a name="line-88"></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-89"></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-90"></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-91"></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-92"></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-93"></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-94"></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-95"></a>	<span class='comment'>{--<a name="line-96"></a>      , Option ""  [a_output_changes]			(NoArg (a_output_changes,        v_1))	"output Pattern transformations in case of an error"    -<a name="line-97"></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-98"></a>	-}</span>-<a name="line-99"></a>      <span class='keyglyph'>]</span>-<a name="line-100"></a>    <span class='keyword'>where</span>-<a name="line-101"></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-102"></a>-<a name="line-103"></a><span class='comment'>-- |</span>-<a name="line-104"></a><span class='comment'>-- commonly useful options for XML output</span>-<a name="line-105"></a><span class='comment'>--</span>-<a name="line-106"></a><span class='comment'>-- defines options: 'a_indent', 'a_output_encoding', 'a_output_file', 'a_output_html'</span>-<a name="line-107"></a>-<a name="line-108"></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-109"></a><span class='definition'>outputOptions</span>-<a name="line-110"></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-111"></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-112"></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-113"></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-114"></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 &lt;?xml ...?&gt; 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-115"></a>      <span class='keyglyph'>]</span>-<a name="line-116"></a>    <span class='keyword'>where</span>-<a name="line-117"></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-118"></a>-<a name="line-119"></a><span class='comment'>-- |</span>-<a name="line-120"></a><span class='comment'>-- commonly useful options</span>-<a name="line-121"></a><span class='comment'>--</span>-<a name="line-122"></a><span class='comment'>-- defines options: 'a_verbose', 'a_help'</span>-<a name="line-123"></a>-<a name="line-124"></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-125"></a><span class='definition'>generalOptions</span>-<a name="line-126"></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-127"></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-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><span class='comment'>-- defines 'a_version' option</span>-<a name="line-132"></a>-<a name="line-133"></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-134"></a><span class='definition'>versionOptions</span>-<a name="line-135"></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-136"></a>      <span class='keyglyph'>]</span>-<a name="line-137"></a>-<a name="line-138"></a><span class='comment'>-- |</span>-<a name="line-139"></a><span class='comment'>-- debug output options</span>-<a name="line-140"></a>-<a name="line-141"></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-142"></a><span class='definition'>showOptions</span>-<a name="line-143"></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-144"></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-145"></a>      <span class='keyglyph'>]</span>-<a name="line-146"></a>-<a name="line-147"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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 &lt;?xml ...?&gt; 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 &lt;elem...&gt;&lt;/elem&gt; instead of &lt;elem/&gt;"</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><span class='comment'>-- select options from a predefined list of option desciptions</span>-<a name="line-151"></a>-<a name="line-152"></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'>-&gt;</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'>-&gt;</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-153"></a><span class='definition'>selectOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>-<a name="line-154"></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'>-&gt;</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'>-&gt;</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-155"></a>-<a name="line-156"></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'>-&gt;</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'>-&gt;</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-157"></a><span class='definition'>removeOptions</span> <span class='varid'>ol</span> <span class='varid'>os</span>-<a name="line-158"></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'>-&gt;</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-159"></a>-<a name="line-160"></a><span class='comment'>-- |</span>-<a name="line-161"></a><span class='comment'>-- check whether an option is set</span>-<a name="line-162"></a><span class='comment'>--</span>-<a name="line-163"></a><span class='comment'>-- reads the value of an attribute, usually applied to a document root node,</span>-<a name="line-164"></a><span class='comment'>-- and checks if the value represents True. The following strings are interpreted</span>-<a name="line-165"></a><span class='comment'>-- as true: \"1\", \"True\", \"true\", \"yes\", \"Yes\".</span>-<a name="line-166"></a>-<a name="line-167"></a><a name="optionIsSet"></a><span class='definition'>optionIsSet</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-168"></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-169"></a>-<a name="line-170"></a><span class='comment'>-- | check whether a string represents True</span>-<a name="line-171"></a><span class='comment'>--</span>-<a name="line-172"></a><span class='comment'>-- definition:</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Attributes</span> <span class='keyglyph'>-&gt;</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'>-- &gt; isTrueValue	= (`elem` ["1", "True", "true", "Yes", "yes"])</span>-<a name="line-175"></a>-<a name="line-176"></a><a name="isTrueValue"></a><span class='definition'>isTrueValue</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-177"></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-178"></a>-<a name="line-179"></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'>-- &gt; 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'>-&gt;</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-DOM-XmlTreeTypes.html
@@ -1,87 +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 the core data types</span>-<a name="line-3"></a><span class='comment'>-- and some additional types and functions</span>-<a name="line-4"></a><span class='comment'>-- for compatibility with none arrow modules</span>-<a name="line-5"></a><span class='comment'>--</span>-<a name="line-6"></a><span class='comment'>-- Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $</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'>XmlTreeTypes</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'>Filter</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'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</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'>DOM</span><span class='varop'>.</span><span class='conid'>XmlTreeTypes</span>-<a name="line-12"></a>    <span class='layout'>)</span>-<a name="line-13"></a>-<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'>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'>Filter</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'>DOM</span><span class='varop'>.</span><span class='conid'>TypeDefs</span>-<a name="line-18"></a>-<a name="line-19"></a><span class='comment'>-- aliases for compatiblility reasons</span>-<a name="line-20"></a>-<a name="line-21"></a><a name="mkNode"></a><span class='definition'>mkNode</span>		<span class='keyglyph'>::</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTrees</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>node</span>-<a name="line-22"></a><span class='definition'>mkNode</span>		<span class='keyglyph'>=</span> <span class='varid'>mkTree</span>-<a name="line-23"></a>-<a name="line-24"></a><a name="formatNTree"></a><span class='definition'>formatNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>node</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-25"></a><span class='definition'>formatNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>formatTree</span>-<a name="line-26"></a>-<a name="line-27"></a><a name="foldNTree"></a><span class='definition'>foldNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>b</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span>-<a name="line-28"></a><span class='definition'>foldNTree</span> 	<span class='keyglyph'>=</span> <span class='varid'>foldTree</span>-<a name="line-29"></a>-<a name="line-30"></a><a name="mapNTree"></a><span class='definition'>mapNTree</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NTree</span> <span class='varid'>b</span>-<a name="line-31"></a><span class='definition'>mapNTree</span> 	<span class='keyglyph'>=</span> <span class='varid'>fmap</span>-<a name="line-32"></a>-<a name="line-33"></a><a name="nTreeToList"></a><span class='definition'>nTreeToList</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='varid'>a</span><span class='keyglyph'>]</span>-<a name="line-34"></a><span class='definition'>nTreeToList</span>	<span class='keyglyph'>=</span> <span class='varid'>nodesTree</span>-<a name="line-35"></a>-<a name="line-36"></a><a name="depthNTree"></a><span class='definition'>depthNTree</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>-<a name="line-37"></a><span class='definition'>depthNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>depthTree</span>-<a name="line-38"></a>-<a name="line-39"></a><a name="cardNTree"></a><span class='definition'>cardNTree</span>	<span class='keyglyph'>::</span> <span class='conid'>NTree</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>-<a name="line-40"></a><span class='definition'>cardNTree</span>	<span class='keyglyph'>=</span> <span class='varid'>cardNTree</span>-<a name="line-41"></a>-<a name="line-42"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-43"></a><span class='comment'>--</span>-<a name="line-44"></a><span class='comment'>-- Basic types for filters</span>-<a name="line-45"></a>-<a name="line-46"></a><span class='comment'>-- | A functions that takes a node and returns a list of nodes</span>-<a name="line-47"></a>-<a name="line-48"></a><a name="XmlFilter"></a><span class='keyword'>type</span> <span class='conid'>XmlFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>TFilter</span>  <span class='conid'>XNode</span>-<a name="line-49"></a>-<a name="line-50"></a><span class='comment'>-- | A function that takes a list of nodes and returns a list of nodes</span>-<a name="line-51"></a>-<a name="line-52"></a><a name="XmlSFilter"></a><span class='keyword'>type</span> <span class='conid'>XmlSFilter</span>	<span class='keyglyph'>=</span> <span class='conid'>TSFilter</span> <span class='conid'>XNode</span>-<a name="line-53"></a>-<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>-<a name="line-58"></a><a name="TagName"></a><span class='comment'>-- | Tag name</span>-<a name="line-59"></a><a name="TagName"></a><span class='keyword'>type</span> <span class='conid'>TagName</span>	<span class='keyglyph'>=</span> <span class='conid'>QName</span>-<a name="line-60"></a>-<a name="line-61"></a><a name="AttrName"></a><span class='comment'>-- | Attribute name</span>-<a name="line-62"></a><a name="AttrName"></a><span class='keyword'>type</span> <span class='conid'>AttrName</span>	<span class='keyglyph'>=</span> <span class='conid'>QName</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'>-- | shortcut for 'qualifiedName'</span>-<a name="line-67"></a>-<a name="line-68"></a><a name="tName"></a><span class='definition'>tName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-69"></a><span class='definition'>tName</span>	<span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span>-<a name="line-70"></a>-<a name="line-71"></a><span class='comment'>-- | shortcut for 'qualifiedName'</span>-<a name="line-72"></a>-<a name="line-73"></a><a name="aName"></a><span class='definition'>aName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-74"></a><span class='definition'>aName</span>	<span class='keyglyph'>=</span> <span class='varid'>qualifiedName</span>-<a name="line-75"></a>-<a name="line-76"></a><span class='comment'>-- -----------------------------------------------------------------------------</span>-<a name="line-77"></a>-</pre></body>-</html>
doc/hdoc/src/Text-XML-HXT-IO-GetFILE.html view
@@ -7,84 +7,104 @@ </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 local file access</span>-<a name="line-4"></a><span class='comment'>--</span>-<a name="line-5"></a><span class='comment'>-- Version : $Id: GetFILE.hs,v 1.6 2006/09/04 06:03:03 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'>GetFILE</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'>IO</span><span class='varop'>.</span><span class='conid'>GetFILE</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'>System</span><span class='varop'>.</span><span class='conid'>IO</span>-<a name="line-14"></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-15"></a>    <span class='layout'>,</span> <span class='varid'>openFile</span>-<a name="line-16"></a>    <span class='comment'>-- , getContents  is defined in the prelude</span>-<a name="line-17"></a>    <span class='layout'>,</span> <span class='varid'>hGetContents</span>-<a name="line-18"></a>    <span class='layout'>)</span>-<a name="line-19"></a>-<a name="line-20"></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-21"></a>    <span class='layout'>(</span> <span class='varid'>ioeGetErrorString</span>-<a name="line-22"></a>    <span class='layout'>,</span> <span class='varid'>try</span>-<a name="line-23"></a>    <span class='layout'>)</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='conid'>System</span><span class='varop'>.</span><span class='conid'>Directory</span>-<a name="line-26"></a>    <span class='layout'>(</span> <span class='varid'>doesFileExist</span>-<a name="line-27"></a>    <span class='layout'>,</span> <span class='varid'>getPermissions</span>-<a name="line-28"></a>    <span class='layout'>,</span> <span class='varid'>readable</span>-<a name="line-29"></a>    <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><a name="getStdinCont"></a><span class='definition'>getStdinCont</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-34"></a><span class='definition'>getStdinCont</span>-<a name="line-35"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-36"></a>      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-37"></a>		 <span class='varid'>getContents</span>-<a name="line-38"></a>	       <span class='layout'>)</span>-<a name="line-39"></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-40"></a>    <span class='keyword'>where</span>-<a name="line-41"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>-<a name="line-42"></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-43"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>-<a name="line-44"></a>	       <span class='layout'>)</span>-<a name="line-45"></a>-<a name="line-46"></a><a name="getCont"></a><span class='definition'>getCont</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-47"></a><span class='definition'>getCont</span> <span class='varid'>source</span>-<a name="line-48"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>			<span class='comment'>-- preliminary</span>-<a name="line-49"></a>      <span class='varid'>exists</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>doesFileExist</span> <span class='varid'>source'</span>-<a name="line-50"></a>      <span class='keyword'>if</span> <span class='varid'>not</span> <span class='varid'>exists</span>-<a name="line-51"></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-52"></a>	 <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-53"></a>	      <span class='varid'>perm</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getPermissions</span> <span class='varid'>source'</span>-<a name="line-54"></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-55"></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-56"></a>	         <span class='keyword'>else</span> <span class='keyword'>do</span>-<a name="line-57"></a>		      <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-58"></a>				 <span class='varid'>h</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>openFile</span> <span class='varid'>source'</span> <span class='conid'>ReadMode</span>-<a name="line-59"></a>				 <span class='varid'>hGetContents</span> <span class='varid'>h</span>-<a name="line-60"></a>			       <span class='layout'>)</span>-<a name="line-61"></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-62"></a>    <span class='keyword'>where</span>-<a name="line-63"></a>    <span class='comment'>-- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source</span>-<a name="line-64"></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-65"></a>    <span class='varid'>readErr</span> <span class='varid'>e</span>-<a name="line-66"></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-67"></a>		 <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>source</span>-<a name="line-68"></a>		 <span class='varop'>++</span> <span class='str'>": "</span>-<a name="line-69"></a>		 <span class='varop'>++</span> <span class='varid'>ioeGetErrorString</span> <span class='varid'>e</span>-<a name="line-70"></a>	       <span class='layout'>)</span>-<a name="line-71"></a>-<a name="line-72"></a>    <span class='comment'>-- remove leading / if file starts with windows drive letter, e.g. /c:/windows -&gt; c:/windows</span>-<a name="line-73"></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-74"></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-75"></a>	    <span class='keyglyph'>=</span> <span class='varid'>file</span>-<a name="line-76"></a>    <span class='varid'>drivePath</span> <span class='varid'>file</span>-<a name="line-77"></a>	<span class='keyglyph'>=</span> <span class='varid'>file</span>-<a name="line-78"></a>-<a name="line-79"></a>-<a name="line-80"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>&lt;-</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'>&lt;-</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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'>&lt;-</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'>&lt;-</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'>&lt;-</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'>&lt;-</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 -&gt; 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-Parser-TagSoup.html view
@@ -10,7 +10,7 @@ <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 Uwe Schmidt+<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)@@ -31,461 +31,429 @@ <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><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>-<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'>HTML</span><span class='varop'>.</span><span class='conid'>TagSoup</span>-<a name="line-32"></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>-<a name="line-33"></a>    <span class='layout'>(</span> <span class='varid'>lookupNumericEntity</span>-<a name="line-34"></a>    <span class='layout'>)</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'>Unicode</span>-<a name="line-37"></a>    <span class='layout'>(</span> <span class='varid'>isXmlSpaceChar</span>-<a name="line-38"></a>    <span class='layout'>)</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'>NamespacePredicates</span>-<a name="line-41"></a>    <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</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'>Text</span><span 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-45"></a>    <span class='layout'>(</span> <span class='comment'>-- xmlEntities</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'>Parser</span><span class='varop'>.</span><span class='conid'>XhtmlEntities</span>-<a name="line-49"></a>    <span class='layout'>(</span> <span class='varid'>xhtmlEntities</span>-<a name="line-50"></a>    <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'>Parser</span><span class='varop'>.</span><span class='conid'>HtmlParsec</span>-<a name="line-53"></a>    <span class='layout'>(</span> <span class='varid'>isEmptyHtmlTag</span>-<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>isInnerHtmlTagOf</span>-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>closesHtmlTag</span>-<a name="line-56"></a>    <span class='layout'>)</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>    <span class='layout'>(</span> <span class='conid'>XmlTrees</span>-<a name="line-60"></a>    <span class='layout'>,</span> <span class='conid'>QName</span>-<a name="line-61"></a>    <span class='layout'>,</span> <span class='conid'>NsEnv</span>-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>mkQName</span>-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>mkName</span>-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>mkPrefixLocalPart</span>-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>c_warn</span>-<a name="line-66"></a>    <span class='layout'>,</span> <span class='varid'>a_xml</span>-<a name="line-67"></a>    <span class='layout'>,</span> <span class='varid'>a_xmlns</span>-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>xmlNamespace</span>-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>xmlnsNamespace</span>-<a name="line-70"></a>    <span class='layout'>)</span>+<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><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-73"></a>    <span class='layout'>(</span> <span class='varid'>isElem</span>-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>mkError</span>-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>mkCmt</span>-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>mkText</span>-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>-<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-79"></a>    <span class='layout'>)</span>-<a name="line-80"></a>-<a name="line-81"></a><span class='comment'>-- ---------------------------------------- </span>+<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'>-&gt;</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'>-&gt;</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'>&gt;&gt;=</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'>-&gt;</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><span class='comment'>-- The name table contains the id map. All element and attribute names are stored</span>-<a name="line-84"></a><span class='comment'>-- the first time they are ecountered, and later always this name is used,</span>-<a name="line-85"></a><span class='comment'>-- not a string built by the parser.</span>-<a name="line-86"></a>-<a name="line-87"></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-88"></a>-<a name="line-89"></a><a name="NameTable"></a><span class='keyword'>type</span> <span class='conid'>NameTable</span>	<span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='conid'>Map</span> <span class='conid'>QName</span> <span class='conid'>QName</span>-<a name="line-90"></a>-<a name="line-91"></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-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'>-&gt;</span> <span class='conid'>Tags</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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="State"></a><span class='keyword'>data</span> <span class='conid'>State</span>	<span class='keyglyph'>=</span> <span class='conid'>S</span> <span class='varop'>!</span><span class='conid'>Tags</span> <span class='varop'>!</span><span class='conid'>NameTable</span>		<span class='comment'>-- the name table must be evaluated striktly, else a stack overflow occurs</span>-<a name="line-94"></a>-<a name="line-95"></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'>-&gt;</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-96"></a>-<a name="line-97"></a><span class='keyword'>instance</span> <span class='conid'>Monad</span> <span class='conid'>Parser</span> <span class='keyword'>where</span>-<a name="line-98"></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'>-&gt;</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-99"></a>    <span class='varid'>p</span> <span class='varop'>&gt;&gt;=</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'>-&gt;</span> <span class='keyword'>let</span>-<a name="line-100"></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-101"></a>                              <span class='keyword'>in</span>-<a name="line-102"></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-103"></a>-<a name="line-104"></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'>-&gt;</span> <span class='conid'>Tags</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>-<a name="line-105"></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='conid'>S</span> <span class='varid'>ts</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-106"></a>-<a name="line-107"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-108"></a>-<a name="line-109"></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'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>-<a name="line-110"></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-111"></a>		  <span class='varid'>p</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>c</span>-<a name="line-112"></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-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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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="lookAhead"></a><span class='definition'>lookAhead</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-115"></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='conid'>S</span> <span class='varid'>ts</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</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'>&amp;&amp;</span> <span class='varid'>p</span> <span class='layout'>(</span><span class='varid'>head</span> <span class='varid'>ts</span><span class='layout'>)</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-116"></a>-<a name="line-117"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-118"></a><span class='comment'>-- primitive look ahead tests</span>+<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="isEof"></a><span class='definition'>isEof</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-121"></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='conid'>S</span> <span class='varid'>ts</span> <span class='keyword'>_</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>null</span> <span class='varid'>ts</span><span class='layout'>,</span> <span class='varid'>s</span><span class='layout'>)</span>-<a name="line-122"></a>-<a name="line-123"></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-124"></a><span class='definition'>isText</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-125"></a>		  <span class='keyword'>where</span>-<a name="line-126"></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-127"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-128"></a>-<a name="line-129"></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-130"></a><span class='definition'>isCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-131"></a>		  <span class='keyword'>where</span>-<a name="line-132"></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-133"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-134"></a>-<a name="line-135"></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-136"></a><span class='definition'>isWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-137"></a>		  <span class='keyword'>where</span>-<a name="line-138"></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-139"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		    <span class='keyglyph'>=</span> <span class='conid'>False</span>+<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="isPos"></a><span class='definition'>isPos</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>Bool</span>-<a name="line-142"></a><span class='definition'>isPos</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-143"></a>		  <span class='keyword'>where</span>-<a name="line-144"></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-145"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		 <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-146"></a>-<a name="line-147"></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-148"></a><span class='definition'>isCls</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-149"></a>		  <span class='keyword'>where</span>-<a name="line-150"></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-151"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		  <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-152"></a>-<a name="line-153"></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-154"></a><span class='definition'>isOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>lookAhead</span> <span class='varid'>is</span>-<a name="line-155"></a>		  <span class='keyword'>where</span>-<a name="line-156"></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-157"></a>		  <span class='varid'>is</span> <span class='keyword'>_</span>		   <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-158"></a>-<a name="line-159"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-160"></a><span class='comment'>-- primitive symbol parsers</span>-<a name="line-161"></a>-<a name="line-162"></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-163"></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='conid'>S</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='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='varid'>t1</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='varid'>ts1</span> <span class='varid'>nt</span><span class='layout'>)</span>-<a name="line-164"></a>-<a name="line-165"></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'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='varid'>a</span>-<a name="line-166"></a><span class='definition'>getSym</span> <span class='varid'>f</span>	<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-167"></a>		  <span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getTag</span>-<a name="line-168"></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-169"></a>-<a name="line-170"></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-171"></a><span class='definition'>getText</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-172"></a>    		  <span class='keyword'>where</span>-<a name="line-173"></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-174"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-175"></a>-<a name="line-176"></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-177"></a><span class='definition'>getCmt</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-178"></a>		  <span class='keyword'>where</span>-<a name="line-179"></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-180"></a>	  	  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-181"></a>-<a name="line-182"></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-183"></a><span class='definition'>getWarn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-184"></a>	  	  <span class='keyword'>where</span>-<a name="line-185"></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-186"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>+<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'>-&gt;</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'>-&gt;</span> <span class='varid'>a</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>&lt;-</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="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-189"></a><span class='definition'>getPos</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-190"></a>		  <span class='keyword'>where</span>-<a name="line-191"></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-192"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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="getCls"></a><span class='definition'>getCls</span>		<span class='keyglyph'>::</span> <span class='conid'>Parser</span> <span class='conid'>String</span>-<a name="line-195"></a><span class='definition'>getCls</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-196"></a>		  <span class='keyword'>where</span>-<a name="line-197"></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-198"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-199"></a>-<a name="line-200"></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-201"></a><span class='definition'>getOpn</span>		<span class='keyglyph'>=</span> <span class='varid'>getSym</span> <span class='varid'>sym</span>-<a name="line-202"></a>		  <span class='keyword'>where</span>-<a name="line-203"></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-204"></a>		  <span class='varid'>sym</span> <span class='keyword'>_</span>			<span class='keyglyph'>=</span> <span class='varid'>undefined</span>-<a name="line-205"></a>-<a name="line-206"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-207"></a><span class='comment'>-- pushback parsers for inserting missing tags</span>-<a name="line-208"></a>-<a name="line-209"></a><a name="pushBack"></a><span class='definition'>pushBack</span>	<span class='keyglyph'>::</span> <span class='conid'>Tag</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-210"></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='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>()</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='layout'>(</span><span class='varid'>t</span><span class='conop'>:</span><span class='varid'>ts</span><span class='layout'>)</span> <span class='varid'>nt</span><span class='layout'>)</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="insCls"></a><span class='definition'>insCls</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-213"></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-214"></a>-<a name="line-215"></a><a name="insOpn"></a><span class='definition'>insOpn</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>()</span>-<a name="line-216"></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-217"></a>-<a name="line-218"></a><span class='comment'>-- ----------------------------------------</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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="insertQName"></a><span class='definition'>insertQName</span>	<span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>QName</span>-<a name="line-221"></a><span class='definition'>insertQName</span> <span class='varid'>n</span>	<span class='keyglyph'>=</span> <span class='conid'>P</span> <span class='varop'>$</span> <span class='keyglyph'>\</span> <span class='layout'>(</span><span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='keyword'>let</span>-<a name="line-222"></a>				     <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='varid'>nt'</span><span class='layout'>)</span> <span class='keyglyph'>=</span> <span class='varid'>insert</span> <span class='varid'>n</span> <span class='varid'>nt</span>-<a name="line-223"></a>				     <span class='keyword'>in</span>-<a name="line-224"></a>				     <span class='layout'>(</span><span class='varid'>n'</span><span class='layout'>,</span> <span class='conid'>S</span> <span class='varid'>ts</span> <span class='varid'>nt'</span><span class='layout'>)</span>-<a name="line-225"></a>		  <span class='keyword'>where</span>-<a name="line-226"></a>		  <span class='varid'>insert</span> <span class='varid'>s</span> <span class='varid'>nt</span>-<a name="line-227"></a>		      <span class='keyglyph'>|</span> <span class='varid'>isJust</span> <span class='varid'>r</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>fromJust</span> <span class='varid'>r</span><span class='layout'>,</span> <span class='varid'>nt</span><span class='layout'>)</span>-<a name="line-228"></a>		      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='layout'>(</span><span class='varid'>s</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'>nt</span><span class='layout'>)</span>-<a name="line-229"></a>		      <span class='keyword'>where</span>-<a name="line-230"></a>		      <span class='varid'>r</span> <span class='keyglyph'>=</span> <span class='conid'>M</span><span class='varop'>.</span><span class='varid'>lookup</span> <span class='varid'>s</span> <span class='varid'>nt</span>-<a name="line-231"></a>-<a name="line-232"></a><a name="mkQN"></a><span class='definition'>mkQN</span>		<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>QName</span>-<a name="line-233"></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-234"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>-<a name="line-235"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn1</span>-<a name="line-236"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-237"></a>	<span class='keyglyph'>=</span> <span class='varid'>insertQName</span> <span class='varid'>qn0</span>-<a name="line-238"></a>    <span class='keyword'>where</span>-<a name="line-239"></a>    <span class='varid'>qn1</span>-<a name="line-240"></a>	<span class='keyglyph'>|</span> <span class='varid'>isAttr</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isSimpleName</span>	<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>-<a name="line-241"></a>	<span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>mkQName</span> <span class='str'>""</span> <span class='varid'>s</span> <span class='layout'>(</span><span class='varid'>nsUri</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-242"></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-243"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>-<a name="line-244"></a>    <span class='varid'>qn0</span>-<a name="line-245"></a>	<span class='keyglyph'>|</span> <span class='varid'>isSimpleName</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>-<a name="line-246"></a>	<span class='keyglyph'>|</span> <span class='varid'>isWellformedQualifiedName</span> <span class='varid'>s</span>	<span class='keyglyph'>=</span> <span class='varid'>mkPrefixLocalPart</span> <span class='varid'>px</span> <span class='varid'>lp</span>-<a name="line-247"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>			<span class='keyglyph'>=</span> <span class='varid'>mkName</span> <span class='varid'>s</span>-<a name="line-248"></a>-<a name="line-249"></a>    <span class='varid'>nsUri</span> <span class='varid'>x</span>		<span class='keyglyph'>=</span> <span class='varid'>fromMaybe</span> <span class='str'>""</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-250"></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-251"></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-252"></a>-<a name="line-253"></a><a name="extendNsEnv"></a><span class='definition'>extendNsEnv</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span>-<a name="line-254"></a><span class='definition'>extendNsEnv</span> <span class='varid'>withNamespaces</span> <span class='varid'>al1</span> <span class='varid'>env</span>-<a name="line-255"></a>    <span class='keyglyph'>|</span> <span class='varid'>withNamespaces</span>-<a name="line-256"></a>	<span class='keyglyph'>=</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='varop'>++</span> <span class='varid'>env</span>-<a name="line-257"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-258"></a>	<span class='keyglyph'>=</span> <span class='varid'>env</span>-<a name="line-259"></a>    <span class='keyword'>where</span>-<a name="line-260"></a>    <span class='varid'>addNs</span> <span class='varid'>n</span> <span class='varid'>v</span>-<a name="line-261"></a>	<span class='keyglyph'>|</span> <span class='varid'>px</span> <span class='varop'>==</span> <span class='varid'>a_xmlns</span>-<a name="line-262"></a>	  <span class='varop'>&amp;&amp;</span>-<a name="line-263"></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-264"></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-265"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-266"></a>	    <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-267"></a>	<span class='keyword'>where</span>-<a name="line-268"></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-269"></a>-<a name="line-270"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-271"></a>-<a name="line-272"></a><span class='comment'>-- own entity lookup to prevent problems with &amp;amp; and tagsoup hack for IE</span>-<a name="line-273"></a>-<a name="line-274"></a><a name="lookupEntity"></a><span class='definition'>lookupEntity</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>-<a name="line-275"></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-276"></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-277"></a>      <span class='conid'>Just</span> <span class='varid'>c</span>  <span class='keyglyph'>-&gt;</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-278"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span> <span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</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-279"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>-<a name="line-280"></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: &amp;"</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-281"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>+<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'>-&gt;</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'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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;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'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='layout'>(</span> <span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</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: &amp;"</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'>-&gt;</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'>-&gt;</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</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: &amp;"</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'>-&gt;</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><span class='definition'>lookupEntity</span> <span class='varid'>withWarnings</span> <span class='varid'>asHtml</span> <span class='varid'>e</span>-<a name="line-284"></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-285"></a>      <span class='conid'>Just</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</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-286"></a>      <span class='conid'>Nothing</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>TagText</span> <span class='varop'>$</span> <span class='str'>"&amp;"</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-287"></a>		 <span class='keyword'>if</span> <span class='varid'>withWarnings</span>-<a name="line-288"></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: &amp;"</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-289"></a>		 <span class='keyword'>else</span> <span class='conid'>[]</span>-<a name="line-290"></a>    <span class='keyword'>where</span>-<a name="line-291"></a>    <span class='varid'>entities</span>-<a name="line-292"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>    <span class='keyglyph'>=</span> <span class='varid'>xhtmlEntities</span>-<a name="line-293"></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-294"></a>-<a name="line-295"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-296"></a>-<a name="line-297"></a><span class='comment'>-- |</span>-<a name="line-298"></a><span class='comment'>-- Turns all element and attribute names to lower case</span>-<a name="line-299"></a><span class='comment'>-- even !DOCTYPE stuff. But this is discarded when parsing the tagsoup</span>-<a name="line-300"></a>-<a name="line-301"></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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Tag</span><span class='keyglyph'>]</span>-<a name="line-302"></a><span class='definition'>lowerCaseNames</span>-<a name="line-303"></a>    <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>f</span>-<a name="line-304"></a>    <span class='keyword'>where</span>-<a name="line-305"></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-306"></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-307"></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-308"></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-309"></a>    <span class='varid'>f</span> <span class='varid'>a</span> <span class='keyglyph'>=</span> <span class='varid'>a</span>-<a name="line-310"></a>    <span class='varid'>nameToLower</span>          <span class='keyglyph'>=</span> <span class='varid'>map</span> <span class='varid'>toLower</span>-<a name="line-311"></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-312"></a>-<a name="line-313"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-314"></a><span class='comment'>-- the main parser</span>-<a name="line-315"></a>-<a name="line-316"></a><a name="parseHtmlTagSoup"></a><span class='definition'>parseHtmlTagSoup</span>	<span class='keyglyph'>::</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>-<a name="line-317"></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-318"></a>    <span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='varid'>docRootElem</span>-<a name="line-319"></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-320"></a>	<span class='varop'>.</span> <span class='layout'>(</span> <span class='keyword'>if</span> <span class='varid'>asHtml</span>-<a name="line-321"></a>	    <span class='keyword'>then</span> <span class='varid'>lowerCaseNames</span>-<a name="line-322"></a>	    <span class='keyword'>else</span> <span class='varid'>id</span>-<a name="line-323"></a>	  <span class='layout'>)</span>-<a name="line-324"></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-325"></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-326"></a>					 <span class='layout'>}</span>-<a name="line-327"></a>			   <span class='layout'>)</span>-<a name="line-328"></a>      <span class='layout'>)</span>-<a name="line-329"></a>    <span class='keyword'>where</span>-<a name="line-330"></a>    <span class='comment'>-- This is essential for lasy parsing:</span>-<a name="line-331"></a>    <span class='comment'>-- the call of "take 1" stops parsing, when the first element is detected</span>-<a name="line-332"></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-333"></a>    <span class='comment'>-- so eof is never checked unneccessarily</span>-<a name="line-334"></a>-<a name="line-335"></a>    <span class='varid'>docRootElem</span>-<a name="line-336"></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-337"></a>-<a name="line-338"></a>    <span class='varid'>initContext</span>		<span class='keyglyph'>=</span> <span class='layout'>(</span> <span class='conid'>[]</span>-<a name="line-339"></a>			  <span class='layout'>,</span> <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-340"></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-341"></a>			    <span class='keyglyph'>]</span>-<a name="line-342"></a>			  <span class='layout'>)</span>-<a name="line-343"></a>-<a name="line-344"></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-345"></a>-<a name="line-346"></a>    <span class='varid'>warn</span>-<a name="line-347"></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-348"></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-349"></a>    <span class='varid'>cmt</span>-<a name="line-350"></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-351"></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-352"></a>    <span class='varid'>txt</span>-<a name="line-353"></a>	<span class='keyglyph'>|</span> <span class='varid'>removeWhiteSpace</span>-<a name="line-354"></a>			<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>t</span> <span class='keyglyph'>-&gt;</span>-<a name="line-355"></a>			  <span class='keyword'>if</span> <span class='varid'>all</span> <span class='varid'>isXmlSpaceChar</span> <span class='varid'>t</span>-<a name="line-356"></a>			  <span class='keyword'>then</span> <span class='conid'>[]</span>-<a name="line-357"></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-358"></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-359"></a>-<a name="line-360"></a>    <span class='varid'>isEmptyElem</span>-<a name="line-361"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isEmptyHtmlTag</span>-<a name="line-362"></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-363"></a>-<a name="line-364"></a>    <span class='varid'>isInnerElem</span>-<a name="line-365"></a>	<span class='keyglyph'>|</span> <span class='varid'>asHtml</span>	<span class='keyglyph'>=</span> <span class='varid'>isInnerHtmlTagOf</span>-<a name="line-366"></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-367"></a>-<a name="line-368"></a>    <span class='varid'>closesElem</span>-<a name="line-369"></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'>-&gt;</span>-<a name="line-370"></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-371"></a>			  <span class='varop'>&amp;&amp;</span>-<a name="line-372"></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-373"></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-374"></a>-<a name="line-375"></a>    <span class='varid'>buildCont</span>	<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-376"></a>    <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-377"></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-378"></a>			<span class='varid'>t</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getText</span>-<a name="line-379"></a>			<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-380"></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-381"></a>		      <span class='layout'>)</span>-<a name="line-382"></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-383"></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'>&lt;-</span> <span class='varid'>getOpn</span>-<a name="line-384"></a>			 <span class='varid'>openTag</span> <span class='varid'>ns</span> <span class='varid'>n</span> <span class='varid'>al</span>-<a name="line-385"></a>		       <span class='layout'>)</span>-<a name="line-386"></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-387"></a>			   <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCls</span>-<a name="line-388"></a>			   <span class='varid'>closeTag</span> <span class='varid'>ns</span> <span class='varid'>n</span>-<a name="line-389"></a>			 <span class='layout'>)</span>-<a name="line-390"></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-391"></a>			     <span class='varid'>c</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getCmt</span>-<a name="line-392"></a>			     <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-393"></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-394"></a>			   <span class='layout'>)</span>-<a name="line-395"></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-396"></a>				<span class='varid'>w</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getWarn</span>-<a name="line-397"></a>				<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-398"></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-399"></a>			      <span class='layout'>)</span>-<a name="line-400"></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-401"></a>				 <span class='varid'>getPos</span>-<a name="line-402"></a>				 <span class='varid'>buildCont</span> <span class='varid'>ns</span>-<a name="line-403"></a>			       <span class='layout'>)</span>-<a name="line-404"></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-405"></a>				   <span class='varid'>isEof</span>-<a name="line-406"></a>				   <span class='varid'>closeAll</span> <span class='varid'>ns</span>-<a name="line-407"></a>				 <span class='layout'>)</span>-<a name="line-408"></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-409"></a>		      <span class='layout'>)</span>-<a name="line-410"></a>		    <span class='layout'>)</span>-<a name="line-411"></a>		  <span class='layout'>)</span>-<a name="line-412"></a>		<span class='layout'>)</span>-<a name="line-413"></a>	      <span class='layout'>)</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='keyword'>where</span>-<a name="line-417"></a>	<span class='varid'>closeTag</span>		<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-418"></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-419"></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-420"></a>								<span class='comment'>-- all other cases try to repair wrong html</span>-<a name="line-421"></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-422"></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. &lt;td&gt;...&lt;/tr&gt;</span>-<a name="line-423"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-424"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>			<span class='comment'>-- pushback &lt;/n1&gt;</span>-<a name="line-425"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>			<span class='comment'>-- insert a &lt;/n'&gt;</span>-<a name="line-426"></a>				  <span class='varid'>buildCont</span> <span class='varid'>ns'</span>			<span class='comment'>-- try again</span>-<a name="line-427"></a>	<span class='varid'>closeTag</span> <span class='varid'>ns'</span> <span class='varid'>n1</span>-<a name="line-428"></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-429"></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-430"></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-431"></a>				  <span class='varid'>insCls</span> <span class='varid'>n1</span>-<a name="line-432"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>-<a name="line-433"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>-<a name="line-434"></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-435"></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-436"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>-<a name="line-437"></a>					 <span class='layout'>)</span>-<a name="line-438"></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-439"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-440"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>ns'</span>-<a name="line-441"></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-442"></a>					   <span class='varop'>++</span> <span class='varid'>rl</span>-<a name="line-443"></a>					 <span class='layout'>)</span>-<a name="line-444"></a>-<a name="line-445"></a>	<span class='varid'>openTag</span>			<span class='keyglyph'>::</span> <span class='conid'>Context</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-446"></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-447"></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-448"></a>	    <span class='keyglyph'>|</span> <span class='varid'>isEmptyElem</span> <span class='varid'>n1</span>-<a name="line-449"></a>				<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-450"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>-<a name="line-451"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>-<a name="line-452"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-453"></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-454"></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-455"></a>				  <span class='varid'>insOpn</span> <span class='varid'>n1</span> <span class='varid'>al1</span>-<a name="line-456"></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-457"></a>				  <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-458"></a>	    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-459"></a>				  <span class='varid'>qn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkElemQN</span> <span class='varid'>nenv</span> <span class='varid'>n1</span>-<a name="line-460"></a>				  <span class='varid'>al</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>-<a name="line-461"></a>				  <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</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-462"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>buildCont</span> <span class='varid'>cx'</span>-<a name="line-463"></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-464"></a>	    <span class='keyword'>where</span>-<a name="line-465"></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-466"></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-467"></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-468"></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-469"></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-470"></a>	    <span class='varid'>isPiDT</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-471"></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-472"></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-473"></a>				  <span class='varid'>qan</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>mkAttrQN</span> <span class='varid'>nenv</span> <span class='varid'>an</span>-<a name="line-474"></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-475"></a>-<a name="line-476"></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'>-&gt;</span> <span class='conid'>Parser</span> <span class='conid'>XmlTrees</span>-<a name="line-477"></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-478"></a>				  <span class='keyword'>where</span>-<a name="line-479"></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-480"></a>-<a name="line-481"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>&lt;-</span> <span class='varid'>getText</span>+<a name="line-347"></a>			<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;-</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'>&lt;-</span> <span class='varid'>getCmt</span>+<a name="line-360"></a>			     <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</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'>&lt;-</span> <span class='varid'>getWarn</span>+<a name="line-365"></a>				<span class='varid'>rl</span> <span class='keyglyph'>&lt;-</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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. &lt;td&gt;...&lt;/tr&gt;</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 &lt;/n1&gt;</span>+<a name="line-393"></a>				  <span class='varid'>insCls</span> <span class='varid'>n'</span>			<span class='comment'>-- insert a &lt;/n'&gt;</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'>&lt;-</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'>&lt;-</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>+<a name="line-420"></a>				  <span class='varid'>rl</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;-</span> <span class='varid'>mkAttrs</span> <span class='varid'>al1</span>+<a name="line-429"></a>				  <span class='varid'>cs</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;-</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'>-&gt;</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-RelaxNG-Simplification.html view
@@ -97,7 +97,7 @@ <a name="line-89"></a>	<span class='layout'>(</span> <span class='varid'>processHref</span> <span class='varop'>$&lt;</span> <span class='varid'>getBaseURI</span> <span class='layout'>)</span> <a name="line-90"></a>	<span class='varop'>&gt;&gt;&gt;</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='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>+<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'>&gt;&gt;&gt;</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>@@ -237,7 +237,7 @@ <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='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'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>+<a name="line-232"></a>    <span class='varid'>processEnvNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</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'>$&lt;</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>@@ -260,29 +260,29 @@ <a name="line-252"></a>	    <span class='keyglyph'>=</span> <span class='varid'>setBaseUri</span> <span class='varop'>&amp;&amp;&amp;</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'>&gt;&gt;&gt;</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'>String</span><span class='layout'>,</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>+<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'>-&gt;</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='varid'>uri</span><span class='keyglyph'>]</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'>null</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'>pre</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'>$&lt;</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='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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>IOSArrow</span> <span class='conid'>XmlTree</span> <span class='conid'>XmlTree</span>                        +<a name="line-265"></a>	<span class='varid'>replaceQNames</span> <span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>fromJust</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-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'>String</span>-<a name="line-277"></a>	    <span class='varid'>uri</span>           <span class='keyglyph'>=</span> <span class='varid'>lookup</span> <span class='varid'>pre</span> <span class='varid'>e</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>
doc/hdoc/src/Text-XML-HXT-RelaxNG-XmlSchema-DataTypeLibW3C.html view
@@ -62,563 +62,559 @@ <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'>Text</span><span 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-58"></a>-<a name="line-59"></a><span class='keyword'>import</span> <span class='conid'>Network</span><span class='varop'>.</span><span class='conid'>URI</span>-<a name="line-60"></a>  <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'>NamespacePredicates</span>-<a name="line-63"></a>  <span class='layout'>(</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-64"></a>  <span class='layout'>,</span> <span class='varid'>isNCName</span>-<a name="line-65"></a>  <span class='layout'>)</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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>Regex</span>-<a name="line-68"></a>    <span class='layout'>(</span> <span class='conid'>Regex</span>-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>matchWithRE</span>-<a name="line-70"></a>    <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'>RelaxNG</span><span class='varop'>.</span><span class='conid'>XmlSchema</span><span class='varop'>.</span><span class='conid'>RegexParser</span>-<a name="line-72"></a>    <span class='layout'>(</span> <span class='varid'>parseRegex</span> <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><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Ratio</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'>-- | Namespace of the W3C XML schema datatype library</span>-<a name="line-80"></a>-<a name="line-81"></a><a name="w3cNS"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-82"></a><span class='definition'>w3cNS</span>	<span class='keyglyph'>=</span> <span class='str'>"http://www.w3.org/2001/XMLSchema-datatypes"</span>-<a name="line-83"></a>-<a name="line-84"></a>-<a name="line-85"></a><a name="xsd_string"></a><span class='definition'>xsd_string</span>-<a name="line-86"></a> <span class='layout'>,</span> <span class='varid'>xsd_normalizedString</span>-<a name="line-87"></a> <span class='layout'>,</span> <span class='varid'>xsd_token</span>-<a name="line-88"></a> <span class='layout'>,</span> <span class='varid'>xsd_language</span>-<a name="line-89"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKEN</span>-<a name="line-90"></a> <span class='layout'>,</span> <span class='varid'>xsd_NMTOKENS</span>-<a name="line-91"></a> <span class='layout'>,</span> <span class='varid'>xsd_Name</span>-<a name="line-92"></a> <span class='layout'>,</span> <span class='varid'>xsd_NCName</span>-<a name="line-93"></a> <span class='layout'>,</span> <span class='varid'>xsd_ID</span>-<a name="line-94"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREF</span>-<a name="line-95"></a> <span class='layout'>,</span> <span class='varid'>xsd_IDREFS</span>-<a name="line-96"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITY</span>-<a name="line-97"></a> <span class='layout'>,</span> <span class='varid'>xsd_ENTITIES</span>-<a name="line-98"></a> <span class='layout'>,</span> <span class='varid'>xsd_anyURI</span>-<a name="line-99"></a> <span class='layout'>,</span> <span class='varid'>xsd_QName</span>-<a name="line-100"></a> <span class='layout'>,</span> <span class='varid'>xsd_NOTATION</span>-<a name="line-101"></a> <span class='layout'>,</span> <span class='varid'>xsd_hexBinary</span>-<a name="line-102"></a> <span class='layout'>,</span> <span class='varid'>xsd_base64Binary</span>-<a name="line-103"></a> <span class='layout'>,</span> <span class='varid'>xsd_decimal</span>-<a name="line-104"></a> <span class='layout'>,</span> <span class='varid'>xsd_integer</span>-<a name="line-105"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonPositiveInteger</span>-<a name="line-106"></a> <span class='layout'>,</span> <span class='varid'>xsd_negativeInteger</span>-<a name="line-107"></a> <span class='layout'>,</span> <span class='varid'>xsd_nonNegativeInteger</span>-<a name="line-108"></a> <span class='layout'>,</span> <span class='varid'>xsd_positiveInteger</span>-<a name="line-109"></a> <span class='layout'>,</span> <span class='varid'>xsd_long</span>-<a name="line-110"></a> <span class='layout'>,</span> <span class='varid'>xsd_int</span>-<a name="line-111"></a> <span class='layout'>,</span> <span class='varid'>xsd_short</span>-<a name="line-112"></a> <span class='layout'>,</span> <span class='varid'>xsd_byte</span>-<a name="line-113"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedLong</span>-<a name="line-114"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedInt</span>-<a name="line-115"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedShort</span>-<a name="line-116"></a> <span class='layout'>,</span> <span class='varid'>xsd_unsignedByte</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-117"></a>-<a name="line-118"></a><span class='definition'>xsd_string</span>		<span class='keyglyph'>=</span> <span class='str'>"string"</span>-<a name="line-119"></a><a name="xsd_normalizedString"></a><span class='definition'>xsd_normalizedString</span>	<span class='keyglyph'>=</span> <span class='str'>"normalizedString"</span>-<a name="line-120"></a><a name="xsd_token"></a><span class='definition'>xsd_token</span>		<span class='keyglyph'>=</span> <span class='str'>"token"</span>-<a name="line-121"></a><a name="xsd_language"></a><span class='definition'>xsd_language</span>		<span class='keyglyph'>=</span> <span class='str'>"language"</span>-<a name="line-122"></a><a name="xsd_NMTOKEN"></a><span class='definition'>xsd_NMTOKEN</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKEN"</span>-<a name="line-123"></a><a name="xsd_NMTOKENS"></a><span class='definition'>xsd_NMTOKENS</span>		<span class='keyglyph'>=</span> <span class='str'>"NMTOKENS"</span>-<a name="line-124"></a><a name="xsd_Name"></a><span class='definition'>xsd_Name</span>		<span class='keyglyph'>=</span> <span class='str'>"Name"</span>-<a name="line-125"></a><a name="xsd_NCName"></a><span class='definition'>xsd_NCName</span>		<span class='keyglyph'>=</span> <span class='str'>"NCName"</span>-<a name="line-126"></a><a name="xsd_ID"></a><span class='definition'>xsd_ID</span>			<span class='keyglyph'>=</span> <span class='str'>"ID"</span>-<a name="line-127"></a><a name="xsd_IDREF"></a><span class='definition'>xsd_IDREF</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREF"</span>-<a name="line-128"></a><a name="xsd_IDREFS"></a><span class='definition'>xsd_IDREFS</span>		<span class='keyglyph'>=</span> <span class='str'>"IDREFS"</span>-<a name="line-129"></a><a name="xsd_ENTITY"></a><span class='definition'>xsd_ENTITY</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITY"</span>-<a name="line-130"></a><a name="xsd_ENTITIES"></a><span class='definition'>xsd_ENTITIES</span>		<span class='keyglyph'>=</span> <span class='str'>"ENTITIES"</span>-<a name="line-131"></a><a name="xsd_anyURI"></a><span class='definition'>xsd_anyURI</span>		<span class='keyglyph'>=</span> <span class='str'>"anyURI"</span>-<a name="line-132"></a><a name="xsd_QName"></a><span class='definition'>xsd_QName</span>		<span class='keyglyph'>=</span> <span class='str'>"QName"</span>-<a name="line-133"></a><a name="xsd_NOTATION"></a><span class='definition'>xsd_NOTATION</span>		<span class='keyglyph'>=</span> <span class='str'>"NOTATION"</span>-<a name="line-134"></a><a name="xsd_hexBinary"></a><span class='definition'>xsd_hexBinary</span>		<span class='keyglyph'>=</span> <span class='str'>"hexBinary"</span>-<a name="line-135"></a><a name="xsd_base64Binary"></a><span class='definition'>xsd_base64Binary</span>	<span class='keyglyph'>=</span> <span class='str'>"base64Binary"</span>-<a name="line-136"></a><a name="xsd_decimal"></a><span class='definition'>xsd_decimal</span>		<span class='keyglyph'>=</span> <span class='str'>"decimal"</span>-<a name="line-137"></a><a name="xsd_integer"></a><span class='definition'>xsd_integer</span>		<span class='keyglyph'>=</span> <span class='str'>"integer"</span>-<a name="line-138"></a><a name="xsd_nonPositiveInteger"></a><span class='definition'>xsd_nonPositiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonPositiveInteger"</span>-<a name="line-139"></a><a name="xsd_negativeInteger"></a><span class='definition'>xsd_negativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"negativeInteger"</span>-<a name="line-140"></a><a name="xsd_nonNegativeInteger"></a><span class='definition'>xsd_nonNegativeInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"nonNegativeInteger"</span>-<a name="line-141"></a><a name="xsd_positiveInteger"></a><span class='definition'>xsd_positiveInteger</span>	<span class='keyglyph'>=</span> <span class='str'>"positiveInteger"</span>-<a name="line-142"></a><a name="xsd_long"></a><span class='definition'>xsd_long</span>		<span class='keyglyph'>=</span> <span class='str'>"long"</span>-<a name="line-143"></a><a name="xsd_int"></a><span class='definition'>xsd_int</span>			<span class='keyglyph'>=</span> <span class='str'>"int"</span>-<a name="line-144"></a><a name="xsd_short"></a><span class='definition'>xsd_short</span>		<span class='keyglyph'>=</span> <span class='str'>"short"</span>-<a name="line-145"></a><a name="xsd_byte"></a><span class='definition'>xsd_byte</span>		<span class='keyglyph'>=</span> <span class='str'>"byte"</span>-<a name="line-146"></a><a name="xsd_unsignedLong"></a><span class='definition'>xsd_unsignedLong</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedLong"</span>-<a name="line-147"></a><a name="xsd_unsignedInt"></a><span class='definition'>xsd_unsignedInt</span>		<span class='keyglyph'>=</span> <span class='str'>"unsignedInt"</span>-<a name="line-148"></a><a name="xsd_unsignedShort"></a><span class='definition'>xsd_unsignedShort</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedShort"</span>-<a name="line-149"></a><a name="xsd_unsignedByte"></a><span class='definition'>xsd_unsignedByte</span>	<span class='keyglyph'>=</span> <span class='str'>"unsignedByte"</span>-<a name="line-150"></a>-<a name="line-151"></a>-<a name="line-152"></a><a name="xsd_length"></a><span class='definition'>xsd_length</span>-<a name="line-153"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxLength</span>-<a name="line-154"></a> <span class='layout'>,</span> <span class='varid'>xsd_minLength</span>-<a name="line-155"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxExclusive</span>-<a name="line-156"></a> <span class='layout'>,</span> <span class='varid'>xsd_minExclusive</span>-<a name="line-157"></a> <span class='layout'>,</span> <span class='varid'>xsd_maxInclusive</span>-<a name="line-158"></a> <span class='layout'>,</span> <span class='varid'>xsd_minInclusive</span>-<a name="line-159"></a> <span class='layout'>,</span> <span class='varid'>xsd_totalDigits</span>-<a name="line-160"></a> <span class='layout'>,</span> <span class='varid'>xsd_fractionDigits</span>-<a name="line-161"></a> <span class='layout'>,</span> <span class='varid'>xsd_pattern</span>-<a name="line-162"></a> <span class='layout'>,</span> <span class='varid'>xsd_enumeration</span> <span class='keyglyph'>::</span> <span class='conid'>String</span>-<a name="line-163"></a>-<a name="line-164"></a><span class='definition'>xsd_length</span>		<span class='keyglyph'>=</span> <span class='varid'>rng_length</span>-<a name="line-165"></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-166"></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-167"></a>-<a name="line-168"></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-169"></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-170"></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-171"></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-172"></a>-<a name="line-173"></a><a name="xsd_totalDigits"></a><span class='definition'>xsd_totalDigits</span>		<span class='keyglyph'>=</span> <span class='str'>"totalDigits"</span>-<a name="line-174"></a><a name="xsd_fractionDigits"></a><span class='definition'>xsd_fractionDigits</span>	<span class='keyglyph'>=</span> <span class='str'>"fractionDigits"</span>-<a name="line-175"></a>-<a name="line-176"></a><a name="xsd_pattern"></a><span class='definition'>xsd_pattern</span>		<span class='keyglyph'>=</span> <span class='str'>"pattern"</span>-<a name="line-177"></a><a name="xsd_enumeration"></a><span class='definition'>xsd_enumeration</span>		<span class='keyglyph'>=</span> <span class='str'>"enumeration"</span>-<a name="line-178"></a>-<a name="line-179"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-180"></a>-<a name="line-181"></a><a name="w3cDatatypeLib"></a><span class='comment'>-- | The main entry point to the W3C XML schema datatype library.</span>-<a name="line-182"></a><span class='comment'>--</span>-<a name="line-183"></a><span class='comment'>-- The 'DTC' constructor exports the list of supported datatypes and params.</span>-<a name="line-184"></a><span class='comment'>-- It also exports the specialized functions to validate a XML instance value with</span>-<a name="line-185"></a><span class='comment'>-- respect to a datatype.</span>-<a name="line-186"></a><span class='definition'>w3cDatatypeLib</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeLibrary</span>-<a name="line-187"></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-188"></a>-<a name="line-189"></a>-<a name="line-190"></a><a name="w3cDatatypes"></a><span class='comment'>-- | All supported datatypes of the library</span>-<a name="line-191"></a><span class='definition'>w3cDatatypes</span> <span class='keyglyph'>::</span> <span class='conid'>AllowedDatatypes</span>-<a name="line-192"></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-193"></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-194"></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-195"></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-196"></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-197"></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-198"></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-199"></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-200"></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-201"></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-202"></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-203"></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-204"></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-205"></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-206"></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-207"></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-208"></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-209"></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-210"></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-211"></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-212"></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-213"></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-214"></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-215"></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-216"></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-217"></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-218"></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-219"></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-220"></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-221"></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-222"></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-223"></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-224"></a>               <span class='keyglyph'>]</span>-<a name="line-225"></a>-<a name="line-226"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-227"></a>-<a name="line-228"></a><a name="stringParams"></a><span class='comment'>-- | List of allowed params for the string datatypes</span>-<a name="line-229"></a><span class='definition'>stringParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-230"></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-231"></a>-<a name="line-232"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-233"></a>-<a name="line-234"></a><a name="patternValid"></a><span class='definition'>patternValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>-<a name="line-235"></a><span class='definition'>patternValid</span> <span class='varid'>params</span>-<a name="line-236"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</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-237"></a>      <span class='keyword'>where</span>-<a name="line-238"></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-239"></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-240"></a>	  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='varid'>ok</span>-<a name="line-241"></a>-<a name="line-242"></a><a name="patParamValid"></a><span class='definition'>patParamValid</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-243"></a><span class='definition'>patParamValid</span> <span class='varid'>regex</span> <span class='varid'>a</span>-<a name="line-244"></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-245"></a>      <span class='layout'>(</span><span class='conid'>Left</span> <span class='keyword'>_</span>  <span class='layout'>)</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>False</span>-<a name="line-246"></a>      <span class='layout'>(</span><span class='conid'>Right</span> <span class='varid'>ex</span><span class='layout'>)</span>	<span class='keyglyph'>-&gt;</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-247"></a>-<a name="line-248"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-249"></a>-<a name="line-250"></a><span class='comment'>-- | List of allowed params for the decimal datatypes</span>-<a name="line-251"></a>-<a name="line-252"></a><a name="decimalParams"></a><span class='definition'>decimalParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-253"></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-254"></a>-<a name="line-255"></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'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-256"></a><span class='definition'>fctTableDecimal</span>-<a name="line-257"></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'>&gt;</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_minExclusive</span><span class='layout'>,</span>   <span class='varid'>cvd</span> <span class='layout'>(</span><span class='varop'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-259"></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'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-260"></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'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-261"></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'>-&gt;</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-262"></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'>-&gt;</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-263"></a>      <span class='keyglyph'>]</span>-<a name="line-264"></a>    <span class='keyword'>where</span>-<a name="line-265"></a>    <span class='varid'>cvd</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-266"></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'>-&gt;</span> <span class='varid'>isDecimal</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>readDecimal</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-267"></a>-<a name="line-268"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-269"></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'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-270"></a>-<a name="line-271"></a><a name="decimalValid"></a><span class='definition'>decimalValid</span>	<span class='keyglyph'>::</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Rational</span> <span class='conid'>Rational</span>-<a name="line-272"></a><span class='definition'>decimalValid</span> <span class='varid'>params</span>-<a name="line-273"></a>    <span class='keyglyph'>=</span> <span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</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-274"></a>    <span class='keyword'>where</span>-<a name="line-275"></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-276"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-277"></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-278"></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-279"></a>-<a name="line-280"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-281"></a>-<a name="line-282"></a><span class='comment'>-- | List of allowed params for the decimal and integer datatypes</span>-<a name="line-283"></a>-<a name="line-284"></a><a name="integerParams"></a><span class='definition'>integerParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-285"></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-286"></a>-<a name="line-287"></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'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-288"></a><span class='definition'>fctTableInteger</span>-<a name="line-289"></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'>&gt;</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-290"></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'>&lt;</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-291"></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'>&gt;=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-292"></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'>&lt;=</span><span class='layout'>)</span><span class='layout'>)</span>-<a name="line-293"></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'>-&gt;</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-294"></a>      <span class='keyglyph'>]</span>-<a name="line-295"></a>    <span class='keyword'>where</span>-<a name="line-296"></a>    <span class='varid'>cvi</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-297"></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'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>read</span> <span class='varid'>x</span> <span class='varop'>`op`</span> <span class='varid'>y</span>-<a name="line-298"></a>-<a name="line-299"></a>    <span class='varid'>totalD</span> <span class='varid'>i</span>-<a name="line-300"></a>	<span class='keyglyph'>|</span> <span class='varid'>i</span> <span class='varop'>&lt;</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-301"></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-302"></a>-<a name="line-303"></a><a name="integerValid"></a><span class='definition'>integerValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckA</span> <span class='conid'>Integer</span> <span class='conid'>Integer</span>-<a name="line-304"></a><span class='definition'>integerValid</span> <span class='varid'>datatype</span> <span class='varid'>params</span> -<a name="line-305"></a>    <span class='keyglyph'>=</span> <span class='varid'>assertInRange</span>-<a name="line-306"></a>      <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-307"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</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-308"></a>    <span class='keyword'>where</span>-<a name="line-309"></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-310"></a>    <span class='varid'>assertInRange</span>-<a name="line-311"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-312"></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-313"></a>	  <span class='layout'>(</span><span class='keyglyph'>\</span> <span class='varid'>v</span> <span class='keyglyph'>-&gt;</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-314"></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-315"></a>		    <span class='str'>" not in integer value range"</span>-<a name="line-316"></a>		  <span class='layout'>)</span>-<a name="line-317"></a>	  <span class='layout'>)</span>-<a name="line-318"></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-319"></a>	<span class='keyglyph'>=</span> <span class='varid'>assert</span>-<a name="line-320"></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-321"></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-322"></a>-<a name="line-323"></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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span><span class='keyglyph'>]</span>-<a name="line-324"></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-325"></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'>&lt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>-<a name="line-326"></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'>&lt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>-<a name="line-327"></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'>&gt;=</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>-<a name="line-328"></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'>&gt;</span><span class='num'>0</span><span class='layout'>)</span>	<span class='layout'>)</span>-<a name="line-329"></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-330"></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-331"></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-332"></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-333"></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-334"></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-335"></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-336"></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-337"></a>			  <span class='keyglyph'>]</span>-<a name="line-338"></a>                          <span class='keyword'>where</span>-<a name="line-339"></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'>&lt;=</span> <span class='varid'>i</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>-<a name="line-340"></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'>&lt;=</span> <span class='varid'>i</span>       <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</span> <span class='varid'>b</span>-<a name="line-341"></a>-<a name="line-342"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-343"></a>-<a name="line-344"></a><span class='comment'>-- | List of allowed params for the list datatypes</span>-<a name="line-345"></a>-<a name="line-346"></a><a name="listParams"></a><span class='definition'>listParams</span>	<span class='keyglyph'>::</span> <span class='conid'>AllowedParams</span>-<a name="line-347"></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-348"></a>-<a name="line-349"></a><a name="listValid"></a><span class='definition'>listValid</span>	<span class='keyglyph'>::</span> <span class='conid'>DatatypeName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CheckString</span>-<a name="line-350"></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-351"></a>-<a name="line-352"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-353"></a>-<a name="line-354"></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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-355"></a><span class='definition'>isNameList</span> <span class='varid'>p</span> <span class='varid'>w</span>-<a name="line-356"></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'>&amp;&amp;</span> <span class='varid'>all</span> <span class='varid'>p</span> <span class='varid'>ts</span>-<a name="line-357"></a>      <span class='keyword'>where</span>-<a name="line-358"></a>      <span class='varid'>ts</span> <span class='keyglyph'>=</span> <span class='varid'>words</span> <span class='varid'>w</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="rex"></a><span class='definition'>rex</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-363"></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-364"></a>-<a name="line-365"></a><a name="isRex"></a><span class='definition'>isRex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-366"></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-367"></a>-<a name="line-368"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-369"></a>-<a name="line-370"></a><a name="rexLanguage"></a><span class='definition'>rexLanguage</span>-<a name="line-371"></a>  <span class='layout'>,</span> <span class='varid'>rexHexBinary</span>-<a name="line-372"></a>  <span class='layout'>,</span> <span class='varid'>rexBase64Binary</span>-<a name="line-373"></a>  <span class='layout'>,</span> <span class='varid'>rexDecimal</span>-<a name="line-374"></a>  <span class='layout'>,</span> <span class='varid'>rexInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-375"></a>-<a name="line-376"></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-377"></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-378"></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-379"></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-380"></a>		  <span class='keyword'>where</span>-<a name="line-381"></a>		  <span class='varid'>b64</span>     <span class='keyglyph'>=</span> <span class='str'>"[A-Za-z0-9+/]"</span>-<a name="line-382"></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-383"></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-384"></a>-<a name="line-385"></a><a name="isLanguage"></a><span class='definition'>isLanguage</span>-<a name="line-386"></a>  <span class='layout'>,</span> <span class='varid'>isHexBinary</span>-<a name="line-387"></a>  <span class='layout'>,</span> <span class='varid'>isBase64Binary</span>-<a name="line-388"></a>  <span class='layout'>,</span> <span class='varid'>isDecimal</span>-<a name="line-389"></a>  <span class='layout'>,</span> <span class='varid'>isInteger</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-390"></a>-<a name="line-391"></a><span class='definition'>isLanguage</span>	<span class='keyglyph'>=</span> <span class='varid'>isRex</span> <span class='varid'>rexLanguage</span>-<a name="line-392"></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-393"></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-394"></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-395"></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-396"></a>-<a name="line-397"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-398"></a>-<a name="line-399"></a><a name="normBase64"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-400"></a><span class='definition'>normBase64</span>	<span class='keyglyph'>=</span> <span class='varid'>filter</span> <span class='varid'>isB64</span>-<a name="line-401"></a>		  <span class='keyword'>where</span>-<a name="line-402"></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'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span><span class='layout'>)</span>-<a name="line-403"></a>			    <span class='varop'>||</span>-<a name="line-404"></a>			    <span class='layout'>(</span> <span class='chr'>'a'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'z'</span><span class='layout'>)</span>-<a name="line-405"></a>			    <span class='varop'>||</span>-<a name="line-406"></a>			    <span class='layout'>(</span> <span class='chr'>'0'</span> <span class='varop'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'9'</span><span class='layout'>)</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>			    <span class='varop'>||</span>-<a name="line-410"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'/'</span>-<a name="line-411"></a>			    <span class='varop'>||</span>-<a name="line-412"></a>			    <span class='varid'>c</span> <span class='varop'>==</span> <span class='chr'>'='</span>-<a name="line-413"></a>-<a name="line-414"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-415"></a>-<a name="line-416"></a><a name="readDecimal"></a><span class='definition'>readDecimal</span>-<a name="line-417"></a>  <span class='layout'>,</span> <span class='varid'>readDecimal'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span>-<a name="line-418"></a>-<a name="line-419"></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-420"></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-421"></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-422"></a>-<a name="line-423"></a><a name="readDecimal'"></a><span class='definition'>readDecimal'</span> <span class='varid'>s</span>-<a name="line-424"></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-425"></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-426"></a>    <span class='keyword'>where</span>-<a name="line-427"></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-428"></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-429"></a>-<a name="line-430"></a>    <span class='varid'>f</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>-<a name="line-431"></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-432"></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-433"></a>    <span class='varid'>n</span> <span class='keyglyph'>::</span> <span class='conid'>Integer</span>-<a name="line-434"></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-435"></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-436"></a>-<a name="line-437"></a><a name="totalDigits"></a><span class='definition'>totalDigits</span>-<a name="line-438"></a>  <span class='layout'>,</span> <span class='varid'>totalDigits'</span>-<a name="line-439"></a>  <span class='layout'>,</span> <span class='varid'>fractionDigits</span>	<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span>-<a name="line-440"></a>-<a name="line-441"></a><span class='definition'>totalDigits</span> <span class='varid'>r</span>-<a name="line-442"></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-443"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</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-444"></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-445"></a>-<a name="line-446"></a><a name="totalDigits'"></a><span class='definition'>totalDigits'</span> <span class='varid'>r</span>-<a name="line-447"></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-448"></a>    <span class='keyglyph'>|</span> <span class='varid'>r</span> <span class='varop'>&lt;</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'>-&gt;</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-449"></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-450"></a>-<a name="line-451"></a><a name="fractionDigits"></a><span class='definition'>fractionDigits</span> <span class='varid'>r</span>-<a name="line-452"></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-453"></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-454"></a>-<a name="line-455"></a><a name="showDecimal"></a><span class='definition'>showDecimal</span>-<a name="line-456"></a>  <span class='layout'>,</span> <span class='varid'>showDecimal'</span>		<span class='keyglyph'>::</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-457"></a>-<a name="line-458"></a><span class='definition'>showDecimal</span> <span class='varid'>d</span>-<a name="line-459"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</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-460"></a>    <span class='keyglyph'>|</span> <span class='varid'>d</span> <span class='varop'>&lt;</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-461"></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-462"></a>-<a name="line-463"></a><a name="showDecimal'"></a><span class='definition'>showDecimal'</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='varid'>show</span> <span class='varop'>.</span> <span class='varid'>numerator</span> <span class='varop'>$</span> <span class='varid'>d</span>-<a name="line-465"></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-466"></a>    <span class='keyword'>where</span>-<a name="line-467"></a>    <span class='varid'>times10</span> <span class='varid'>i'</span> <span class='varid'>d'</span>-<a name="line-468"></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-469"></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-470"></a>				  <span class='keyword'>in</span>-<a name="line-471"></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-472"></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-473"></a>				  -<a name="line-474"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-475"></a>-<a name="line-476"></a><span class='comment'>-- | Tests whether a XML instance value matches a data-pattern.</span>-<a name="line-477"></a><span class='comment'>-- (see also: 'stringValid')</span>-<a name="line-478"></a>-<a name="line-479"></a><a name="datatypeAllowsW3C"></a><span class='definition'>datatypeAllowsW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeAllows</span>-<a name="line-480"></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-481"></a>    <span class='keyglyph'>=</span> <span class='varid'>performCheck</span> <span class='varid'>check</span> <span class='varid'>value</span>-<a name="line-482"></a>    <span class='keyword'>where</span>-<a name="line-483"></a>    <span class='varid'>validString</span> <span class='varid'>normFct</span>-<a name="line-484"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-485"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-486"></a>	  <span class='varid'>arr</span> <span class='varid'>normFct</span>-<a name="line-487"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-488"></a>	  <span class='varid'>validLength</span>-<a name="line-489"></a>-<a name="line-490"></a>    <span class='varid'>validNormString</span>-<a name="line-491"></a>	<span class='keyglyph'>=</span> <span class='varid'>validString</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-492"></a>-<a name="line-493"></a>    <span class='varid'>validPattern</span>-<a name="line-494"></a>	<span class='keyglyph'>=</span> <span class='varid'>patternValid</span> <span class='varid'>params</span>-<a name="line-495"></a>-<a name="line-496"></a>    <span class='varid'>validLength</span>-<a name="line-497"></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-498"></a>-<a name="line-499"></a>    <span class='varid'>validList</span>-<a name="line-500"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-501"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-502"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-503"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-504"></a>	  <span class='varid'>validListLength</span>-<a name="line-505"></a>-<a name="line-506"></a>    <span class='varid'>validListLength</span>-<a name="line-507"></a>	<span class='keyglyph'>=</span> <span class='varid'>listValid</span> <span class='varid'>d</span> <span class='varid'>params</span>-<a name="line-508"></a>-<a name="line-509"></a>    <span class='varid'>validName</span> <span class='varid'>isN</span>-<a name="line-510"></a>	<span class='keyglyph'>=</span> <span class='varid'>assertW3C</span> <span class='varid'>isN</span>-<a name="line-511"></a>-<a name="line-512"></a>    <span class='varid'>validNCName</span>-<a name="line-513"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNCName</span>-<a name="line-514"></a>-<a name="line-515"></a>    <span class='varid'>validQName</span>-<a name="line-516"></a>	<span class='keyglyph'>=</span> <span class='varid'>validNormString</span> <span class='varop'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isWellformedQualifiedName</span>-<a name="line-517"></a>-<a name="line-518"></a>    <span class='varid'>validDecimal</span>-<a name="line-519"></a>	<span class='keyglyph'>=</span> <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-520"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-521"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isDecimal</span>-<a name="line-522"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-523"></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-524"></a>-<a name="line-525"></a>    <span class='varid'>validInteger</span> <span class='varid'>inRange</span>-<a name="line-526"></a>	<span class='keyglyph'>=</span> <span class='varid'>validPattern</span>-<a name="line-527"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-528"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>-<a name="line-529"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-530"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isInteger</span>-<a name="line-531"></a>	  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-532"></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-533"></a>-<a name="line-534"></a>    <span class='varid'>check</span>	<span class='keyglyph'>::</span> <span class='conid'>CheckString</span>-<a name="line-535"></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-536"></a>-<a name="line-537"></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-538"></a>-<a name="line-539"></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-540"></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-541"></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-542"></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-543"></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'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isLanguage</span><span class='layout'>)</span>-<a name="line-544"></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'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isNmtoken</span><span class='layout'>)</span>-<a name="line-545"></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'>&gt;&gt;&gt;</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-546"></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'>&gt;&gt;&gt;</span> <span class='varid'>validName</span> <span class='varid'>isName</span><span class='layout'>)</span>-<a name="line-547"></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-548"></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-549"></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-550"></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'>&gt;&gt;&gt;</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-551"></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-552"></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'>&gt;&gt;&gt;</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-553"></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'>&gt;&gt;&gt;</span> <span class='varid'>validString</span> <span class='varid'>escapeURI</span><span class='layout'>)</span>-<a name="line-554"></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-555"></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-556"></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'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isHexBinary</span><span class='layout'>)</span>-<a name="line-557"></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'>&gt;&gt;&gt;</span> <span class='varid'>assertW3C</span> <span class='varid'>isBase64Binary</span><span class='layout'>)</span>-<a name="line-558"></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'>&gt;&gt;&gt;</span> <span class='varid'>validDecimal</span><span class='layout'>)</span>-<a name="line-559"></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-560"></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-561"></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-562"></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-563"></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-564"></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-565"></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-566"></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-567"></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-568"></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-569"></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-570"></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-571"></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-572"></a>		  <span class='keyglyph'>]</span>-<a name="line-573"></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-574"></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-575"></a>-<a name="line-576"></a><span class='comment'>-- ----------------------------------------</span>-<a name="line-577"></a>-<a name="line-578"></a><span class='comment'>-- | Tests whether a XML instance value matches a value-pattern.</span>-<a name="line-579"></a>-<a name="line-580"></a><a name="datatypeEqualW3C"></a><span class='definition'>datatypeEqualW3C</span> <span class='keyglyph'>::</span> <span class='conid'>DatatypeEqual</span>-<a name="line-581"></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-582"></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-583"></a>    <span class='keyword'>where</span>-<a name="line-584"></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-585"></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-586"></a>-<a name="line-587"></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-588"></a>-<a name="line-589"></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'>-&gt;</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-590"></a>		  <span class='varop'>&gt;&gt;&gt;</span>-<a name="line-591"></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-592"></a>-<a name="line-593"></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-594"></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-595"></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-596"></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-597"></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-598"></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-599"></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-600"></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-601"></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-602"></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-603"></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-604"></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-605"></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-606"></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-607"></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-608"></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-609"></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-610"></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-611"></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-612"></a>	   <span class='keyglyph'>]</span>-<a name="line-613"></a>-<a name="line-614"></a><span class='comment'>-- ----------------------------------------</span>+<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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</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'>&gt;</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'>&lt;</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'>&gt;=</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'>&lt;=</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>isDecimal</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</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'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Rational</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</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'>-&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</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'>&gt;</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'>&lt;</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'>&gt;=</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'>&lt;=</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Integer</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>isNumber</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</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'>&lt;</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'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-303"></a>      <span class='layout'>(</span><span class='varid'>foldr</span> <span class='layout'>(</span><span class='varop'>&gt;&gt;&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;=</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'>&lt;</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'>&gt;=</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'>&gt;</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'>&lt;=</span> <span class='varid'>i</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</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'>&lt;=</span> <span class='varid'>i</span>       <span class='varop'>&amp;&amp;</span> <span class='varid'>i</span> <span class='varop'>&lt;</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'>-&gt;</span> <span class='conid'>ParamList</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</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'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</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'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</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'>-&gt;</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'>-&gt;</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'>&lt;</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'>&lt;</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'>-&gt;</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'>-&gt;</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'>&lt;</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'>&lt;</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'>&gt;&gt;&gt;</span>+<a name="line-482"></a>	  <span class='varid'>arr</span> <span class='varid'>normFct</span>+<a name="line-483"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-498"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>+<a name="line-499"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-517"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isDecimal</span>+<a name="line-518"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</span>+<a name="line-524"></a>	  <span class='varid'>arr</span> <span class='varid'>normalizeWhitespace</span>+<a name="line-525"></a>	  <span class='varop'>&gt;&gt;&gt;</span>+<a name="line-526"></a>	  <span class='varid'>assertW3C</span> <span class='varid'>isInteger</span>+<a name="line-527"></a>	  <span class='varop'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>&gt;&gt;&gt;</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'>-&gt;</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'>&gt;&gt;&gt;</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 view
@@ -47,259 +47,281 @@ <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>-<a name="line-43"></a><span class='keyword'>where</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-42"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;&amp;&amp;&gt;</span><span class='layout'>)</span>+<a name="line-43"></a>    <span class='layout'>,</span> <span class='layout'>(</span><span class='varop'>&lt;||&gt;</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='comment'>-- ------------------------------------------------------------</span>+<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><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-50"></a>		<span class='keyglyph'>|</span> <span class='conid'>Unit</span>-<a name="line-51"></a>		<span class='keyglyph'>|</span> <span class='conid'>Sym</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-52"></a>		<span class='keyglyph'>|</span> <span class='conid'>Dot</span>-<a name="line-53"></a>		<span class='keyglyph'>|</span> <span class='conid'>Star</span> <span class='conid'>Regex</span>-<a name="line-54"></a>		<span class='keyglyph'>|</span> <span class='conid'>Alt</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>-<a name="line-55"></a>		<span class='keyglyph'>|</span> <span class='conid'>Seq</span> <span class='conid'>Regex</span> <span class='conid'>Regex</span>-<a name="line-56"></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-57"></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-58"></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-59"></a>-<a name="line-60"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</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'>{- just for documentation+<a name="line-62"></a><span class='comment'>-- ------------------------------------------------------------</span> <a name="line-63"></a>-<a name="line-64"></a>class Inv a where-<a name="line-65"></a>    inv		:: a -&gt; Bool-<a name="line-66"></a>-<a name="line-67"></a>instance Inv Regex where-<a name="line-68"></a>    inv (Zero _)	= True-<a name="line-69"></a>    inv Unit		= True-<a name="line-70"></a>    inv (Sym p)		= not . null . chars $ p-<a name="line-71"></a>    inv Dot		= True-<a name="line-72"></a>    inv (Star e)	= inv e-<a name="line-73"></a>    inv (Alt e1 e2)	= inv e1 &amp;&amp;-<a name="line-74"></a>			  inv e2-<a name="line-75"></a>    inv (Seq e1 e2)	= inv e1 &amp;&amp;+<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 -&gt; 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 &amp;&amp; <a name="line-76"></a>			  inv e2-<a name="line-77"></a>    inv (Rep i e)	= i &gt; 0 &amp;&amp; inv e-<a name="line-78"></a>    inv (Rng i j e)	= (i &lt; j || (i == j &amp;&amp; i &gt; 1)) &amp;&amp;-<a name="line-79"></a>			  inv e-<a name="line-80"></a>    inv (Dif e1 e2)	= inv e1 &amp;&amp;-<a name="line-81"></a>			  inv e2-<a name="line-82"></a>-}</span>-<a name="line-83"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-84"></a><span class='comment'>--</span>-<a name="line-85"></a><span class='comment'>-- smart constructors</span>-<a name="line-86"></a>+<a name="line-77"></a>    inv (Seq e1 e2)	= inv e1 &amp;&amp;+<a name="line-78"></a>			  inv e2+<a name="line-79"></a>    inv (Rep i e)	= i &gt; 0 &amp;&amp; inv e+<a name="line-80"></a>    inv (Rng i j e)	= (i &lt; j || (i == j &amp;&amp; i &gt; 1)) &amp;&amp;+<a name="line-81"></a>			  inv e+<a name="line-82"></a>    inv (Dif e1 e2)	= inv e1 &amp;&amp;+<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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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-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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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-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'>-&gt;</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><a name="mkZero"></a><span class='definition'>mkZero</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-104"></a><span class='definition'>mkZero</span>		<span class='keyglyph'>=</span> <span class='conid'>Zero</span>-<a name="line-105"></a>-<a name="line-106"></a><a name="mkUnit"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-107"></a><span class='definition'>mkUnit</span>		<span class='keyglyph'>=</span> <span class='conid'>Unit</span>-<a name="line-108"></a>-<a name="line-109"></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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-110"></a><span class='definition'>mkSym</span>		<span class='keyglyph'>=</span> <span class='conid'>Sym</span>-<a name="line-111"></a>-<a name="line-112"></a><a name="mkSym1"></a><span class='definition'>mkSym1</span>		<span class='keyglyph'>::</span> <span class='conid'>Char</span>	<span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-113"></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-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'>-&gt;</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="mkSymRng"></a><span class='definition'>mkSymRng</span>	<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-116"></a><span class='definition'>mkSymRng</span> <span class='varid'>c1</span> <span class='varid'>c2</span>-<a name="line-117"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>==</span> <span class='varid'>minBound</span> <span class='varop'>&amp;&amp;</span>-<a name="line-118"></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-119"></a>    <span class='keyglyph'>|</span> <span class='varid'>c1</span> <span class='varop'>&lt;=</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='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='varid'>c1</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span><span class='varop'>&lt;=</span> <span class='varid'>c2</span> <span class='layout'>)</span>-<a name="line-120"></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-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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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="mkDot"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span>-<a name="line-123"></a><span class='definition'>mkDot</span>	<span class='keyglyph'>=</span> <span class='conid'>Dot</span>-<a name="line-124"></a>-<a name="line-125"></a><a name="mkStar"></a><span class='definition'>mkStar</span>			<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-126"></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-127"></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-128"></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-129"></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-130"></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-131"></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-122"></a><a name="mkSymRng"></a><span class='definition'>mkSymRng</span>			<span class='keyglyph'>::</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>&lt;=</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'>&gt;=</span> <span class='varid'>c1</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</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="rmStar"></a><span class='definition'>rmStar</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-134"></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-135"></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-136"></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-137"></a><span class='definition'>rmStar</span> <span class='varid'>e1</span>		<span class='keyglyph'>=</span> <span class='varid'>e1</span>-<a name="line-138"></a>-<a name="line-139"></a><a name="mkAlt"></a><span class='definition'>mkAlt</span>					<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-140"></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-141"></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-142"></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-143"></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-144"></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='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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-145"></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-146"></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-147"></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-148"></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-149"></a>-<a name="line-150"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-151"></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-152"></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-153"></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-154"></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-155"></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-156"></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-133"></a><a name="mkStar"></a><span class='definition'>mkStar</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>&lt;||&gt;</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="mkRep"></a><span class='definition'>mkRep</span>		<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-159"></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-160"></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-161"></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-162"></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-163"></a>-<a name="line-164"></a><a name="mkRng"></a><span class='definition'>mkRng</span>	<span class='keyglyph'>::</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-165"></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-166"></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-167"></a><span class='definition'>mkRng</span> <span class='varid'>lb</span> <span class='varid'>ub</span> <span class='sel'>_e</span>-<a name="line-168"></a>    <span class='keyglyph'>|</span> <span class='varid'>lb</span> <span class='varop'>&gt;</span> <span class='varid'>ub</span>			<span class='keyglyph'>=</span> <span class='conid'>Zero</span> <span class='varop'>$</span>-<a name="line-169"></a>				  <span class='str'>"illegal range "</span> <span class='varop'>++</span>-<a name="line-170"></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-171"></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-172"></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-173"></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-174"></a>-<a name="line-175"></a><a name="mkOpt"></a><span class='definition'>mkOpt</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-176"></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-177"></a>-<a name="line-178"></a><a name="mkDif"></a><span class='definition'>mkDif</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-179"></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-180"></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-181"></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-182"></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-183"></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-184"></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-185"></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'>-&gt;</span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</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-186"></a>				<span class='keyglyph'>=</span> <span class='varid'>mkZero</span> <span class='str'>"empty set of chars in difference expr"</span>-<a name="line-187"></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-188"></a>-<a name="line-189"></a><a name="mkCompl"></a><span class='definition'>mkCompl</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-190"></a><span class='definition'>mkCompl</span>		<span class='keyglyph'>=</span> <span class='varid'>mkDif</span> <span class='varid'>mkDot</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><span class='keyword'>instance</span> <span class='conid'>Show</span> <span class='conid'>Regex</span> <span class='keyword'>where</span>-<a name="line-195"></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-196"></a>    <span class='varid'>show</span> <span class='conid'>Unit</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'>Sym</span> <span class='varid'>p</span><span class='layout'>)</span>-<a name="line-198"></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'>&amp;&amp;</span>-<a name="line-199"></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-200"></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-201"></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-202"></a>			  <span class='keyword'>where</span>-<a name="line-203"></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-204"></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-205"></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-206"></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-207"></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-208"></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-209"></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-210"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>-<a name="line-211"></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-212"></a>			  <span class='varid'>esc</span> <span class='varid'>x</span>-<a name="line-213"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>`elem`</span> <span class='str'>"\\-[]{}()*+?.^"</span>-<a name="line-214"></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-215"></a>			      <span class='keyglyph'>|</span> <span class='varid'>x</span> <span class='varop'>&gt;=</span> <span class='chr'>' '</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span> <span class='varop'>&lt;=</span> <span class='chr'>'~'</span>-<a name="line-216"></a>				  	<span class='keyglyph'>=</span> <span class='varid'>x</span><span class='conop'>:</span><span class='str'>""</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='str'>"&amp;#"</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-219"></a>    <span class='varid'>show</span> <span class='conid'>Dot</span>		<span class='keyglyph'>=</span> <span class='str'>"."</span>-<a name="line-220"></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-221"></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-222"></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-223"></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-224"></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-225"></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-226"></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-227"></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-228"></a>-<a name="line-229"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-230"></a>-<a name="line-231"></a><a name="isZero"></a><span class='definition'>isZero</span>			<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-232"></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-233"></a><span class='definition'>isZero</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-234"></a>-<a name="line-235"></a><a name="nullable"></a><span class='definition'>nullable</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-236"></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-237"></a><span class='definition'>nullable</span> <span class='conid'>Unit</span>		<span class='keyglyph'>=</span> <span class='conid'>True</span>-<a name="line-238"></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-239"></a><span class='definition'>nullable</span> <span class='conid'>Dot</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'>Star</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'>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-242"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-243"></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'>&amp;&amp;</span>-<a name="line-244"></a>			  <span class='varid'>nullable</span> <span class='varid'>e2</span>-<a name="line-245"></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-246"></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-247"></a>			  <span class='varid'>nullable</span> <span class='varid'>e</span>-<a name="line-248"></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'>&amp;&amp;</span>-<a name="line-249"></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-250"></a>-<a name="line-251"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-252"></a>-<a name="line-253"></a><a name="delta"></a><span class='definition'>delta</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-254"></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-255"></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-256"></a>			  <span class='str'>"unexpected char "</span> <span class='varop'>++</span> <span class='varid'>show</span> <span class='varid'>c</span>-<a name="line-257"></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-258"></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-259"></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-260"></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-261"></a>                          <span class='keyword'>where</span>-<a name="line-262"></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-263"></a>			  <span class='varid'>oneof</span>-<a name="line-264"></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-265"></a>			      <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>      <span class='keyglyph'>=</span> <span class='str'>"one of "</span>-<a name="line-266"></a>			  <span class='varid'>chars'</span>-<a name="line-267"></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-268"></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-269"></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-270"></a>-<a name="line-271"></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-272"></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-273"></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-274"></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-275"></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-276"></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-277"></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-278"></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-279"></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-280"></a>-<a name="line-281"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-282"></a>-<a name="line-283"></a><a name="delta'"></a><span class='definition'>delta'</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span>-<a name="line-284"></a><span class='definition'>delta'</span>		<span class='keyglyph'>=</span> <span class='varid'>foldl</span> <span class='varid'>delta</span>-<a name="line-285"></a>-<a name="line-286"></a><a name="matchWithRE"></a><span class='definition'>matchWithRE</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-287"></a><span class='definition'>matchWithRE</span> <span class='varid'>e</span>-<a name="line-288"></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-289"></a>    <span class='keyword'>where</span>-<a name="line-290"></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-291"></a>    <span class='varid'>res</span> <span class='varid'>re</span>-<a name="line-292"></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-293"></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-158"></a><a name="mkSeq"></a><span class='definition'>mkSeq</span>				<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Int</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>p1</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</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'>-&gt;</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'>&amp;&amp;</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'>&gt;=</span> <span class='chr'>' '</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>x</span> <span class='varop'>&lt;=</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'>"&amp;#"</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>&amp;&amp;</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'>-&gt;</span> <span class='conid'>Char</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&lt;&amp;&amp;&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</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'>&lt;&amp;&amp;&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>f</span> <span class='varid'>x</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>g</span> <span class='varid'>x</span>		<span class='comment'>-- liftA2 (&amp;&amp;)</span>+<a name="line-308"></a>+<a name="line-309"></a><span class='comment'>{-# INLINE (&lt;&amp;&amp;&gt;) #-}</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'>&lt;||&gt;</span><span class='layout'>)</span>		<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>+<a name="line-313"></a><span class='definition'>f</span> <span class='varop'>&lt;||&gt;</span> <span class='varid'>g</span>	<span class='keyglyph'>=</span> <span class='keyglyph'>\</span> <span class='varid'>x</span> <span class='keyglyph'>-&gt;</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 (&lt;||&gt;) #-}</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 view
@@ -45,198 +45,204 @@ <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'>-- ------------------------------------------------------------</span>-<a name="line-41"></a>-<a name="line-42"></a>-<a name="line-43"></a><a name="splitRegex"></a><span class='definition'>splitRegex</span>		<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-44"></a><span class='definition'>splitRegex</span> <span class='varid'>re</span> <span class='str'>""</span>-<a name="line-45"></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-46"></a>    <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>		<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-47"></a>-<a name="line-48"></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-49"></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-50"></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='layout'>(</span><span class='varid'>delta</span> <span class='varid'>re</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='varop'>$</span> <span class='varid'>inp'</span>-<a name="line-51"></a>    <span class='keyword'>where</span>-<a name="line-52"></a>    <span class='varid'>evalRes</span> <span class='conid'>Nothing</span>-<a name="line-53"></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-54"></a>	<span class='keyglyph'>|</span> <span class='varid'>otherwise</span>	<span class='keyglyph'>=</span> <span class='conid'>Nothing</span>-<a name="line-55"></a>-<a name="line-56"></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-57"></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-58"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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='comment'>-- | split a string by taking the longest prefix matching a regular expression</span>-<a name="line-61"></a><span class='comment'>--</span>-<a name="line-62"></a><span class='comment'>-- @Nothing@ is returned in case of a syntactically wrong regex string</span>-<a name="line-63"></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-64"></a><span class='comment'>--</span>-<a name="line-65"></a><span class='comment'>-- examples:</span>+<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'>-- &gt; splitRE "a*b" "abc" = Just ("ab","c")</span>-<a name="line-68"></a><span class='comment'>-- &gt; splitRE "a*"  "bc"  = Just ("", "bc)</span>-<a name="line-69"></a><span class='comment'>-- &gt; splitRE "["   "abc" = Nothing</span>-<a name="line-70"></a>-<a name="line-71"></a><a name="splitRE"></a><span class='definition'>splitRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-72"></a><span class='definition'>splitRE</span> <span class='varid'>re</span> <span class='varid'>input</span>-<a name="line-73"></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-74"></a>-<a name="line-75"></a><span class='comment'>-- | convenient function for splitRE</span>-<a name="line-76"></a><span class='comment'>--</span>-<a name="line-77"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no matching prefix found</span>-<a name="line-78"></a>-<a name="line-79"></a><a name="split"></a><span class='definition'>split</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-80"></a><span class='definition'>split</span> <span class='varid'>re</span> <span class='varid'>input</span>-<a name="line-81"></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-82"></a>-<a name="line-83"></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'>-- &gt; splitRE "a*b" "abc" = Just ("ab","c")</span>+<a name="line-73"></a><span class='comment'>-- &gt; splitRE "a*"  "bc"  = Just ("", "bc")</span>+<a name="line-74"></a><span class='comment'>-- &gt; splitRE "a+"  "bc"  = Nothing</span>+<a name="line-75"></a><span class='comment'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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><span class='comment'>-- | split a string into tokens (words) by giving a regular expression</span>-<a name="line-86"></a><span class='comment'>-- which all tokens must match</span>-<a name="line-87"></a><span class='comment'>--</span>-<a name="line-88"></a><span class='comment'>-- This can be used for simple tokenizers.</span>-<a name="line-89"></a><span class='comment'>-- The words in the result list contain at least one char.</span>-<a name="line-90"></a><span class='comment'>-- All none matching chars are discarded. If the given regex contains syntax errors,</span>-<a name="line-91"></a><span class='comment'>-- @Nothing@ is returned</span>-<a name="line-92"></a><span class='comment'>--</span>-<a name="line-93"></a><span class='comment'>-- examples:</span>-<a name="line-94"></a><span class='comment'>--</span>-<a name="line-95"></a><span class='comment'>-- &gt; tokenizeRE "a*b" ""         = Just []</span>-<a name="line-96"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abc"      = Just ["ab"]</span>-<a name="line-97"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]</span>-<a name="line-98"></a><span class='comment'>-- &gt;</span>-<a name="line-99"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"</span>-<a name="line-100"></a><span class='comment'>-- &gt;                                = Just ["ab","123","456.7","abc"]</span>-<a name="line-101"></a><span class='comment'>-- &gt;</span>-<a name="line-102"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"</span>-<a name="line-103"></a><span class='comment'>-- &gt;                                = Just ["cab","123","456.7","abc"]</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-- &gt; tokenizeRE "a*b" ""         = Just []</span>+<a name="line-102"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abc"      = Just ["ab"]</span>+<a name="line-103"></a><span class='comment'>-- &gt; tokenizeRE "a*b" "abaab ab" = Just ["ab","aab","ab"]</span> <a name="line-104"></a><span class='comment'>-- &gt;</span>-<a name="line-105"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"</span>-<a name="line-106"></a><span class='comment'>-- &gt;                                = Just ["abc","def","xyz"]</span>+<a name="line-105"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+" "ab123 456.7abc"</span>+<a name="line-106"></a><span class='comment'>-- &gt;                                = Just ["ab","123","456.7","abc"]</span> <a name="line-107"></a><span class='comment'>-- &gt;</span>-<a name="line-108"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*"    = words</span>-<a name="line-109"></a>-<a name="line-110"></a><a name="tokenizeRE"></a><span class='definition'>tokenizeRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-111"></a><span class='definition'>tokenizeRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-112"></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-113"></a>    <span class='keyword'>where</span>-<a name="line-114"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-115"></a>    <span class='varid'>token'</span> <span class='varid'>re</span> <span class='varid'>inp</span>-<a name="line-116"></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-117"></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-118"></a>	<span class='keyword'>where</span>-<a name="line-119"></a>	<span class='varid'>evalRes</span> <span class='conid'>Nothing</span>	<span class='keyglyph'>=</span> <span class='varid'>token'</span> <span class='varid'>re</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-120"></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-121"></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='varid'>re</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-122"></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'>re</span> <span class='varid'>rest</span>	<span class='comment'>-- token found, tokenize the rest</span>-<a name="line-123"></a>-<a name="line-124"></a><span class='comment'>-- | convenient function for tokenizeRE a string</span>-<a name="line-125"></a><span class='comment'>--</span>-<a name="line-126"></a><span class='comment'>-- syntax errors in R.E. result in an empty list</span>-<a name="line-127"></a>-<a name="line-128"></a><a name="tokenize"></a><span class='definition'>tokenize</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-129"></a><span class='definition'>tokenize</span> <span class='varid'>re</span>-<a name="line-130"></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-131"></a>-<a name="line-132"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='comment'>-- | split a string into tokens and delimierter by giving a regular expression</span>-<a name="line-135"></a><span class='comment'>-- wich all tokens must match</span>-<a name="line-136"></a><span class='comment'>--</span>-<a name="line-137"></a><span class='comment'>-- This is a generalisation of the above 'tokenizeRE' functions.</span>-<a name="line-138"></a><span class='comment'>-- The none matching char sequences are marked with @Left@, the matching ones are marked with @Right@</span>-<a name="line-139"></a><span class='comment'>--</span>-<a name="line-140"></a><span class='comment'>-- If the regular expression contains syntax errors @Nothing@ is returned</span>-<a name="line-141"></a><span class='comment'>--</span>-<a name="line-142"></a><span class='comment'>-- The following Law holds:</span>+<a name="line-108"></a><span class='comment'>-- &gt; tokenizeRE "[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+" "cab123 456.7abc"</span>+<a name="line-109"></a><span class='comment'>-- &gt;                                = Just ["cab","123","456.7","abc"]</span>+<a name="line-110"></a><span class='comment'>-- &gt;</span>+<a name="line-111"></a><span class='comment'>-- &gt; tokenizeRE "[^ \t\n\r]*" "abc def\t\n\rxyz"</span>+<a name="line-112"></a><span class='comment'>-- &gt;                                = Just ["abc","def","xyz"]</span>+<a name="line-113"></a><span class='comment'>-- &gt;</span>+<a name="line-114"></a><span class='comment'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-- &gt; concat . map (either id id) . fromJust . tokenizeRE' re == id</span>-<a name="line-145"></a>-<a name="line-146"></a><a name="tokenizeRE'"></a><span class='definition'>tokenizeRE'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-147"></a><span class='definition'>tokenizeRE'</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-148"></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-149"></a>    <span class='keyword'>where</span>-<a name="line-150"></a>    <span class='varid'>token'</span>	<span class='keyglyph'>::</span> <span class='conid'>Regex</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-151"></a>    <span class='varid'>token'</span> <span class='varid'>re</span>-<a name="line-152"></a>	<span class='keyglyph'>=</span> <span class='varid'>tok2</span> <span class='str'>""</span>-<a name="line-153"></a>	<span class='keyword'>where</span>-<a name="line-154"></a>	<span class='varid'>tok2</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-155"></a>	<span class='varid'>tok2</span> <span class='varid'>noMatchPrefix</span> <span class='varid'>inp</span>-<a name="line-156"></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-157"></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-158"></a>	    <span class='keyword'>where</span>-<a name="line-159"></a>	    <span class='varid'>addNoMatch</span> <span class='varid'>res</span>-<a name="line-160"></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-161"></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-162"></a>-<a name="line-163"></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-164"></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-165"></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-166"></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-167"></a>-<a name="line-168"></a><span class='comment'>-- | convenient function for tokenizeRE'</span>-<a name="line-169"></a><span class='comment'>--</span>-<a name="line-170"></a><span class='comment'>-- When the regular expression contains errors @[Left input]@ is returned, that means tokens are found</span>-<a name="line-171"></a>-<a name="line-172"></a><a name="tokenize'"></a><span class='definition'>tokenize'</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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-173"></a><span class='definition'>tokenize'</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-174"></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-175"></a>-<a name="line-176"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-177"></a>-<a name="line-178"></a><span class='comment'>-- | sed like editing function</span>-<a name="line-179"></a><span class='comment'>--</span>-<a name="line-180"></a><span class='comment'>-- All matching tokens are edited by the 1. argument, the editing function,</span>-<a name="line-181"></a><span class='comment'>-- all other chars remain as they are</span>-<a name="line-182"></a><span class='comment'>--</span>-<a name="line-183"></a><span class='comment'>-- examples:</span>-<a name="line-184"></a><span class='comment'>--</span>-<a name="line-185"></a><span class='comment'>-- &gt; sedRE (const "b") "a" "xaxax"       = Just "xbxbx"</span>-<a name="line-186"></a><span class='comment'>-- &gt; sedRE (\ x -&gt; x ++ x) "a" "xax"     = Just "xaax"</span>-<a name="line-187"></a><span class='comment'>-- &gt; sedRE undefined       "[" undefined = Nothing</span>-<a name="line-188"></a>-<a name="line-189"></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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-190"></a><span class='definition'>sedRE</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-191"></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-192"></a>-<a name="line-193"></a><span class='comment'>-- | convenient function for sedRE</span>-<a name="line-194"></a><span class='comment'>--</span>-<a name="line-195"></a><span class='comment'>-- When the regular expression contains errors, sed is the identity, else</span>-<a name="line-196"></a><span class='comment'>-- the funtionality is like 'sedRE'</span>-<a name="line-197"></a><span class='comment'>--</span>-<a name="line-198"></a><span class='comment'>-- &gt; sed undefined "["  == id</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'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-- &gt; sedRE (const "b") "a" "xaxax"       = Just "xbxbx"</span>+<a name="line-193"></a><span class='comment'>-- &gt; sedRE (\ x -&gt; x ++ x) "a" "xax"     = Just "xaax"</span>+<a name="line-194"></a><span class='comment'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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><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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-201"></a><span class='definition'>sed</span> <span class='varid'>edit</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-202"></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-203"></a>-<a name="line-204"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-205"></a>-<a name="line-206"></a><span class='comment'>-- | match a string with a regular expression</span>-<a name="line-207"></a><span class='comment'>--</span>-<a name="line-208"></a><span class='comment'>-- First argument is the regex, second the input string,</span>-<a name="line-209"></a><span class='comment'>-- if the regex is not well formed, @Nothing@ is returned,</span>-<a name="line-210"></a><span class='comment'>-- else @Just@ the match result</span>-<a name="line-211"></a><span class='comment'>--</span>-<a name="line-212"></a><span class='comment'>-- Examples:</span>-<a name="line-213"></a><span class='comment'>--</span>-<a name="line-214"></a><span class='comment'>-- &gt; matchRE "x*" "xxx" = Just True</span>-<a name="line-215"></a><span class='comment'>-- &gt; matchRE "x" "xxx"  = Just False</span>-<a name="line-216"></a><span class='comment'>-- &gt; matchRE "[" "xxx"  = Nothing</span>-<a name="line-217"></a>-<a name="line-218"></a><a name="matchRE"></a><span class='definition'>matchRE</span>	<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Bool</span>-<a name="line-219"></a><span class='definition'>matchRE</span> <span class='varid'>regex</span> <span class='varid'>input</span>-<a name="line-220"></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-221"></a>-<a name="line-222"></a>-<a name="line-223"></a><span class='comment'>-- | convenient function for matchRE</span>-<a name="line-224"></a><span class='comment'>--</span>-<a name="line-225"></a><span class='comment'>-- syntax errors in R.E. are interpreted as no match found</span>-<a name="line-226"></a>-<a name="line-227"></a><a name="match"></a><span class='definition'>match</span>		<span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-228"></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-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'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-- &gt; matchRE "x*" "xxx" = Just True</span>+<a name="line-222"></a><span class='comment'>-- &gt; matchRE "x" "xxx"  = Just False</span>+<a name="line-223"></a><span class='comment'>-- &gt; 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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-- ------------------------------------------------------------</span>-<a name="line-231"></a>-<a name="line-232"></a><span class='comment'>-- ------------------------------------------------------------</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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 view
@@ -30,8 +30,8 @@ <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'>Control</span><span class='varop'>.</span><span class='conid'>Applicative</span> <span class='layout'>(</span> <span class='varid'>liftA2</span> <span class='layout'>)</span>-<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-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>@@ -184,9 +184,9 @@ <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'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varop'>&lt;=</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-179"></a>    <span class='varid'>isDigit</span>   <span class='keyglyph'>=</span> <span class='layout'>(</span><span class='chr'>'0'</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</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'>&lt;||&gt;</span>+<a name="line-181"></a>		<span class='varid'>isUnicodeZ</span> <span class='varop'>&lt;||&gt;</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>@@ -212,7 +212,7 @@ <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'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='layout'>(</span><span class='varop'>&lt;=</span> <span class='varid'>ub</span><span class='layout'>)</span>+<a name="line-207"></a>		       <span class='layout'>(</span><span class='varid'>lb</span> <span class='varop'>&lt;=</span><span class='layout'>)</span> <span class='varop'>&lt;&amp;&amp;&gt;</span> <span class='layout'>(</span><span class='varop'>&lt;=</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'>&lt;=</span> <span class='varid'>c</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>c</span> <span class='varop'>&lt;=</span> <span class='chr'>'Z'</span> <span class='varop'>||</span>@@ -360,13 +360,5 @@ <a name="line-352"></a> <a name="line-353"></a> <a name="line-354"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-355"></a>-<a name="line-356"></a><a name="&&&"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-357"></a><span class='layout'>(</span><span class='varop'>&amp;&amp;&amp;</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>liftA2</span> <span class='layout'>(</span><span class='varop'>&amp;&amp;</span><span class='layout'>)</span>-<a name="line-358"></a>-<a name="line-359"></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'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='layout'>(</span><span class='conid'>Char</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span>-<a name="line-360"></a><span class='layout'>(</span><span class='varop'>|||</span><span class='layout'>)</span>	<span class='keyglyph'>=</span> <span class='varid'>liftA2</span> <span class='layout'>(</span><span class='varop'>||</span><span class='layout'>)</span>-<a name="line-361"></a>-<a name="line-362"></a><span class='comment'>-- ------------------------------------------------------------</span> </pre></body> </html>
doc/hdoc/src/Text-XML-HXT-Version.html view
@@ -9,6 +9,6 @@ <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.2.0"</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>
doc/hdoc/src/Text-XML-HXT-XPath-XPathEval.html view
@@ -103,10 +103,10 @@ <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'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&gt;&gt;&gt;</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='varid'>env</span> <span class='varid'>s</span><span class='layout'>)</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>@@ -127,9 +127,9 @@ <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'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTrees</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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='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>@@ -138,9 +138,9 @@ <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'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlNodeSet</span>+<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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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='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>
doc/hdoc/src/Text-XML-HXT-XPath-XPathParser.html view
@@ -10,653 +10,653 @@ <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 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: XPathParser.hs,v 1.6 2006/10/12 11:51:29 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>   the XPath 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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathParser</span>-<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>parseNumber</span>-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>parseXPath</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'>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'>TypeDefs</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'>XPathKeywords</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>-<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'>XmlTokenParser</span>-<a name="line-35"></a>    <span class='layout'>(</span> <span class='varid'>separator</span>-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>systemLiteral</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'>ncName</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>qName</span>-<a name="line-40"></a>    <span class='layout'>)</span>-<a name="line-41"></a>-<a name="line-42"></a><a name="lookupNs"></a><span class='definition'>lookupNs</span>		<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-43"></a><span class='definition'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>-<a name="line-44"></a>    <span class='comment'>-- downwards compatibility: if namespace env is not supported</span>-<a name="line-45"></a>    <span class='comment'>-- no error is raised, but the uri remains empty</span>-<a name="line-46"></a>    <span class='comment'>-- not conformant to XPath spec: If namespaces are used, an 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>-<a name="line-49"></a>    <span class='keyglyph'>=</span> <span class='varid'>lookup1</span> <span class='varid'>prefix</span> <span class='varid'>uris</span>-<a name="line-50"></a>-<a name="line-51"></a><a name="enhanceAttrQName"></a><span class='definition'>enhanceAttrQName</span>	<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-52"></a><span class='definition'>enhanceAttrQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>-<a name="line-53"></a>    <span class='keyglyph'>|</span> <span class='varid'>null</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-54"></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-55"></a>-<a name="line-56"></a><a name="enhanceQName"></a><span class='definition'>enhanceQName</span> 		<span class='keyglyph'>::</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-57"></a><span class='definition'>enhanceQName</span> <span class='varid'>uris</span> <span class='varid'>qn</span>-<a name="line-58"></a>    <span class='keyglyph'>=</span> <span class='varid'>qn</span> <span class='layout'>{</span><span class='varid'>namespaceUri</span> <span class='keyglyph'>=</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>-<a name="line-59"></a>-<a name="line-60"></a><a name="enhanceQN"></a><span class='definition'>enhanceQN</span>		<span class='keyglyph'>::</span>  <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span>-<a name="line-61"></a><span class='definition'>enhanceQN</span> <span class='conid'>Attribute</span>	<span class='keyglyph'>=</span> <span class='varid'>enhanceAttrQName</span>-<a name="line-62"></a><span class='definition'>enhanceQN</span> <span class='keyword'>_</span>		<span class='keyglyph'>=</span> <span class='varid'>enhanceQName</span>-<a name="line-63"></a>-<a name="line-64"></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-65"></a>-<a name="line-66"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-67"></a><span class='comment'>-- parse functions which are used in the XPathFct module</span>-<a name="line-68"></a>-<a name="line-69"></a><a name="parseNumber"></a><span class='comment'>-- |</span>-<a name="line-70"></a><span class='comment'>-- parsing a number, parseNumber is used in "XPathFct"</span>-<a name="line-71"></a><span class='comment'>-- by the number function</span>-<a name="line-72"></a><span class='comment'>--</span>-<a name="line-73"></a><span class='comment'>--    - returns : the parsed number as 'XPNumber' float</span>-<a name="line-74"></a><span class='comment'>--                or 'XPVNumber' 'NaN' in case of error</span>-<a name="line-75"></a><span class='definition'>parseNumber</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPathValue</span>-<a name="line-76"></a><span class='definition'>parseNumber</span> <span class='varid'>s</span>-<a name="line-77"></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-78"></a>        <span class='conid'>Left</span> <span class='keyword'>_</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XPVNumber</span> <span class='conid'>NaN</span>-<a name="line-79"></a>        <span class='conid'>Right</span> <span class='varid'>x</span>  <span class='keyglyph'>-&gt;</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-80"></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-81"></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-82"></a>-<a name="line-83"></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-84"></a><span class='definition'>parseNumber'</span>-<a name="line-85"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-86"></a>      <span class='varid'>skipS0</span>-<a name="line-87"></a>      <span class='varid'>m</span> <span class='keyglyph'>&lt;-</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-88"></a>      <span class='varid'>n</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>-<a name="line-89"></a>      <span class='varid'>skipS0</span>-<a name="line-90"></a>      <span class='varid'>eof</span>-<a name="line-91"></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-92"></a>-<a name="line-93"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-94"></a>-<a name="line-95"></a>-<a name="line-96"></a><span class='comment'>-- |</span>-<a name="line-97"></a><span class='comment'>-- the main entry point:</span>-<a name="line-98"></a><span class='comment'>-- parsing a XPath expression</span>-<a name="line-99"></a>-<a name="line-100"></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-101"></a><span class='definition'>parseXPath</span>-<a name="line-102"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-103"></a>      <span class='varid'>skipS0</span>-<a name="line-104"></a>      <span class='varid'>xPathExpr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>expr</span>-<a name="line-105"></a>      <span class='varid'>skipS0</span>-<a name="line-106"></a>      <span class='varid'>eof</span>-<a name="line-107"></a>      <span class='varid'>return</span> <span class='varid'>xPathExpr</span>-<a name="line-108"></a>-<a name="line-109"></a>-<a name="line-110"></a><a name="lpar"></a><span class='comment'>-- some useful token and symbol parser</span>-<a name="line-111"></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-112"></a>-<a name="line-113"></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-114"></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-115"></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-116"></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-117"></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-118"></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-119"></a>-<a name="line-120"></a>-<a name="line-121"></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'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>()</span>-<a name="line-122"></a><span class='definition'>tokenParser</span> <span class='varid'>p</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'>skipS0</span>-<a name="line-125"></a>            <span class='varid'>p</span>-<a name="line-126"></a>            <span class='varid'>skipS0</span>-<a name="line-127"></a>           <span class='layout'>)</span>-<a name="line-128"></a>-<a name="line-129"></a>-<a name="line-130"></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'>-&gt;</span> <span class='conid'>XParser</span> <span class='varid'>a</span>-<a name="line-131"></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-132"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-133"></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-134"></a>      <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-135"></a>-<a name="line-136"></a>-<a name="line-137"></a><a name="symbol"></a><span class='definition'>symbol</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-138"></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-139"></a>-<a name="line-140"></a>-<a name="line-141"></a>-<a name="line-142"></a><a name="orOp"></a><span class='comment'>--  operation parser</span>-<a name="line-143"></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-144"></a>-<a name="line-145"></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-146"></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-147"></a>-<a name="line-148"></a><a name="eqOp"></a><span class='definition'>eqOp</span>-<a name="line-149"></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-150"></a>      <span class='varop'>&lt;|&gt;</span> -<a name="line-151"></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-152"></a>-<a name="line-153"></a><a name="relOp"></a><span class='definition'>relOp</span>-<a name="line-154"></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'>"&lt;="</span><span class='layout'>,</span> <span class='conid'>LessEq</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'>"&gt;="</span><span class='layout'>,</span> <span class='conid'>GreaterEq</span><span class='layout'>)</span>-<a name="line-156"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&lt;"</span><span class='layout'>,</span> <span class='conid'>Less</span><span class='layout'>)</span>-<a name="line-157"></a>             <span class='layout'>,</span> <span class='varid'>symbolParser</span> <span class='layout'>(</span><span class='str'>"&gt;"</span><span class='layout'>,</span> <span class='conid'>Greater</span><span class='layout'>)</span>-<a name="line-158"></a>             <span class='keyglyph'>]</span>-<a name="line-159"></a>-<a name="line-160"></a><a name="addOp"></a><span class='definition'>addOp</span>-<a name="line-161"></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-162"></a>      <span class='varop'>&lt;|&gt;</span> -<a name="line-163"></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-164"></a>-<a name="line-165"></a>-<a name="line-166"></a><a name="multiOp"></a><span class='definition'>multiOp</span>-<a name="line-167"></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-168"></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-169"></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-170"></a>             <span class='keyglyph'>]</span>-<a name="line-171"></a>-<a name="line-172"></a>-<a name="line-173"></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-174"></a>-<a name="line-175"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-176"></a>-<a name="line-177"></a><a name="mkExprNode"></a><span class='definition'>mkExprNode</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-178"></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-179"></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-180"></a>    <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>rest</span>-<a name="line-181"></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-182"></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-183"></a>  <span class='keyword'>where</span> -<a name="line-184"></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-185"></a>    -<a name="line-186"></a><span class='comment'>-- Tim Walkenhorst, original expr. below:</span>-<a name="line-187"></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-188"></a><span class='comment'>-- FIXED, see above!</span>-<a name="line-189"></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-190"></a>-<a name="line-191"></a>-<a name="line-192"></a><span class='comment'>--GenExpr op (e1:(map snd l))</span>-<a name="line-193"></a>-<a name="line-194"></a>-<a name="line-195"></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'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-196"></a><span class='definition'>exprRest</span> <span class='varid'>parserOp</span> <span class='varid'>parserExpr</span>-<a name="line-197"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-198"></a>      <span class='varid'>op</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserOp</span>-<a name="line-199"></a>      <span class='varid'>e2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>parserExpr</span>-<a name="line-200"></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-201"></a>-<a name="line-202"></a>-<a name="line-203"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-204"></a>-<a name="line-205"></a><a name="descOrSelfStep"></a><span class='comment'>-- abbreviation of "//"</span>-<a name="line-206"></a><span class='definition'>descOrSelfStep</span> <span class='keyglyph'>::</span> <span class='conid'>XStep</span> -<a name="line-207"></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-208"></a>-<a name="line-209"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-210"></a><span class='comment'>-- Location Paths (2)</span>-<a name="line-211"></a>-<a name="line-212"></a>-<a name="line-213"></a><a name="locPath"></a><span class='comment'>-- [1] LocationPath </span>-<a name="line-214"></a><span class='definition'>locPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-215"></a><span class='definition'>locPath</span>-<a name="line-216"></a>    <span class='keyglyph'>=</span> <span class='varid'>absLocPath</span>-<a name="line-217"></a>      <span class='varop'>&lt;|&gt;</span> -<a name="line-218"></a>      <span class='varid'>relLocPath'</span>-<a name="line-219"></a>-<a name="line-220"></a>-<a name="line-221"></a><a name="absLocPath"></a><span class='comment'>-- [2] AbsoluteLocationPath</span>-<a name="line-222"></a><span class='definition'>absLocPath</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-223"></a><span class='definition'>absLocPath</span>-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [10]</span>-<a name="line-225"></a>      <span class='varid'>dslash</span>-<a name="line-226"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>-<a name="line-227"></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-228"></a>      <span class='varop'>&lt;|&gt;</span> -<a name="line-229"></a>      <span class='keyword'>do</span>-<a name="line-230"></a>      <span class='varid'>slash</span>-<a name="line-231"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='conid'>[]</span> <span class='varid'>relLocPath</span>-<a name="line-232"></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-233"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"absLocPath"</span>-<a name="line-234"></a>-<a name="line-235"></a>-<a name="line-236"></a><a name="relLocPath'"></a><span class='comment'>-- [3] RelativeLocationPath</span>-<a name="line-237"></a><span class='definition'>relLocPath'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>LocationPath</span>-<a name="line-238"></a><span class='definition'>relLocPath'</span>-<a name="line-239"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-240"></a>      <span class='varid'>rel</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath</span>-<a name="line-241"></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-242"></a>-<a name="line-243"></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-244"></a><span class='definition'>relLocPath</span>-<a name="line-245"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-246"></a>      <span class='varid'>s1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>-<a name="line-247"></a>      <span class='varid'>s2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='layout'>(</span><span class='varid'>step'</span><span class='layout'>)</span>-<a name="line-248"></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-249"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relLocPath"</span>-<a name="line-250"></a>-<a name="line-251"></a>-<a name="line-252"></a><a name="step'"></a><span class='comment'>-- Location Steps (2.1)</span>-<a name="line-253"></a><span class='comment'>--</span>-<a name="line-254"></a><span class='comment'>-- [4] Step</span>-<a name="line-255"></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-256"></a><span class='definition'>step'</span>-<a name="line-257"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span> <span class='comment'>-- [11]</span>-<a name="line-258"></a>      <span class='varid'>dslash</span>-<a name="line-259"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>-<a name="line-260"></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-261"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-262"></a>      <span class='keyword'>do</span>-<a name="line-263"></a>      <span class='varid'>slash</span>-<a name="line-264"></a>      <span class='varid'>s</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>step</span>-<a name="line-265"></a>      <span class='varid'>return</span> <span class='keyglyph'>[</span><span class='varid'>s</span><span class='keyglyph'>]</span>-<a name="line-266"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step'"</span>-<a name="line-267"></a>-<a name="line-268"></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-269"></a><span class='definition'>step</span>-<a name="line-270"></a>    <span class='keyglyph'>=</span> <span class='varid'>abbrStep</span>-<a name="line-271"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-272"></a>      <span class='keyword'>do</span>-<a name="line-273"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier'</span>-<a name="line-274"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeTest</span> <span class='keyword'>as</span>-<a name="line-275"></a>      <span class='varid'>pr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>-<a name="line-276"></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-277"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"step"</span>-<a name="line-278"></a>-<a name="line-279"></a>-<a name="line-280"></a><a name="axisSpecifier'"></a><span class='comment'>-- [5] AxisSpecifier</span>-<a name="line-281"></a><span class='definition'>axisSpecifier'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>-<a name="line-282"></a><span class='definition'>axisSpecifier'</span>-<a name="line-283"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>  <span class='comment'>-- [13]</span>-<a name="line-284"></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-285"></a>      <span class='varid'>return</span> <span class='conid'>Attribute</span>-<a name="line-286"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-287"></a>      <span class='keyword'>do</span>-<a name="line-288"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</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-289"></a>                                 <span class='varid'>a</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier</span>-<a name="line-290"></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-291"></a>                                 <span class='varid'>return</span> <span class='varid'>a</span>-<a name="line-292"></a>                               <span class='layout'>)</span>-<a name="line-293"></a>                          <span class='layout'>)</span>-<a name="line-294"></a>      <span class='varid'>return</span> <span class='keyword'>as</span>-<a name="line-295"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier'"</span>-<a name="line-296"></a>-<a name="line-297"></a>-<a name="line-298"></a><a name="axisSpecifier"></a><span class='comment'>-- Axes (2.2)</span>-<a name="line-299"></a><span class='comment'>--</span>-<a name="line-300"></a><span class='comment'>-- [6] AxisName</span>-<a name="line-301"></a><span class='definition'>axisSpecifier</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>AxisSpec</span>-<a name="line-302"></a><span class='definition'>axisSpecifier</span>-<a name="line-303"></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-304"></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-305"></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-306"></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-307"></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-308"></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-309"></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-310"></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-311"></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-312"></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-313"></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-314"></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-315"></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-316"></a>             <span class='keyglyph'>]</span>-<a name="line-317"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"axisSpecifier"</span>-<a name="line-318"></a>-<a name="line-319"></a>-<a name="line-320"></a><a name="nodeTest"></a><span class='comment'>-- Node Tests (2.3)</span>-<a name="line-321"></a><span class='comment'>--</span>-<a name="line-322"></a><span class='comment'>-- [7] NodeTest</span>-<a name="line-323"></a><span class='definition'>nodeTest</span> <span class='keyglyph'>::</span> <span class='conid'>AxisSpec</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>NodeTest</span>-<a name="line-324"></a><span class='definition'>nodeTest</span> <span class='keyword'>as</span>-<a name="line-325"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-326"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>nodeType'</span>-<a name="line-327"></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-328"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-329"></a>      <span class='keyword'>do</span>-<a name="line-330"></a>      <span class='varid'>processInst</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pI</span>-<a name="line-331"></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-332"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-333"></a>      <span class='keyword'>do</span>-<a name="line-334"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nameTest</span> <span class='keyword'>as</span>-<a name="line-335"></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-336"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeTest"</span>-<a name="line-337"></a>-<a name="line-338"></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-339"></a><span class='definition'>pI</span>-<a name="line-340"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-341"></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-342"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>literal</span>-<a name="line-343"></a>      <span class='varid'>return</span> <span class='varid'>li</span>-<a name="line-344"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"Processing-Instruction"</span>-<a name="line-345"></a>-<a name="line-346"></a>-<a name="line-347"></a><a name="predicate"></a><span class='comment'>-- Predicates (2.4)</span>-<a name="line-348"></a><span class='comment'>--</span>-<a name="line-349"></a><span class='comment'>-- [8] Predicate</span>-<a name="line-350"></a><span class='comment'>-- [9] PredicateExpr</span>-<a name="line-351"></a><span class='definition'>predicate</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-352"></a><span class='definition'>predicate</span> -<a name="line-353"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-354"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lbra</span> <span class='varid'>rbra</span> <span class='varid'>expr</span>-<a name="line-355"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>-<a name="line-356"></a>-<a name="line-357"></a>-<a name="line-358"></a><span class='comment'>-- Abbreviated Syntax (2.5)</span>-<a name="line-359"></a><span class='comment'>--</span>-<a name="line-360"></a><span class='comment'>-- [10] AbbreviatedAbsoluteLocationPath: q.v. [2]</span>-<a name="line-361"></a><span class='comment'>-- [11] AbbreviatedRelativeLocationPath: q.v. [4]</span>-<a name="line-362"></a>-<a name="line-363"></a><a name="abbrStep"></a><span class='comment'>-- [12] AbbreviatedStep</span>-<a name="line-364"></a><span class='definition'>abbrStep</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XStep</span>-<a name="line-365"></a><span class='definition'>abbrStep</span> -<a name="line-366"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-367"></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-368"></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-369"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-370"></a>      <span class='keyword'>do</span>-<a name="line-371"></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-372"></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-373"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"abbrStep"</span>-<a name="line-374"></a>-<a name="line-375"></a><span class='comment'>-- [13] AbbreviatedAxisSpecifier: q.v. [5]</span>-<a name="line-376"></a>-<a name="line-377"></a>-<a name="line-378"></a><span class='comment'>-- ------------------------------------------------------------</span>-<a name="line-379"></a><span class='comment'>-- Expressions (3)</span>-<a name="line-380"></a>-<a name="line-381"></a>-<a name="line-382"></a><a name="expr"></a><span class='comment'>-- Basics (3.1)</span>-<a name="line-383"></a><span class='comment'>--</span>-<a name="line-384"></a><span class='comment'>-- [14] Expr</span>-<a name="line-385"></a><span class='definition'>expr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-386"></a><span class='definition'>expr</span> <span class='keyglyph'>=</span> <span class='varid'>orExpr</span>-<a name="line-387"></a>-<a name="line-388"></a>-<a name="line-389"></a><a name="primaryExpr"></a><span class='comment'>-- [15] PrimaryExpr</span>-<a name="line-390"></a><span class='definition'>primaryExpr</span> <span class='keyglyph'>::</span>  <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-391"></a><span class='definition'>primaryExpr</span>-<a name="line-392"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-393"></a>      <span class='varid'>vr</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>variableReference</span>-<a name="line-394"></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-395"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-396"></a>      <span class='keyword'>do</span>-<a name="line-397"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>between</span> <span class='varid'>lpar</span> <span class='varid'>rpar</span> <span class='varid'>expr</span>-<a name="line-398"></a>      <span class='varid'>return</span> <span class='varid'>ex</span>-<a name="line-399"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-400"></a>      <span class='keyword'>do</span>-<a name="line-401"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>literal</span>-<a name="line-402"></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-403"></a>      <span class='varop'>&lt;|&gt;</span> -<a name="line-404"></a>      <span class='keyword'>do</span>-<a name="line-405"></a>      <span class='varid'>num</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>number</span>-<a name="line-406"></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-407"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-408"></a>      <span class='keyword'>do</span>-<a name="line-409"></a>      <span class='varid'>fc</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionCall</span>-<a name="line-410"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>fc</span><span class='layout'>)</span>-<a name="line-411"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"primaryExpr"</span>-<a name="line-412"></a>-<a name="line-413"></a>-<a name="line-414"></a><a name="functionCall"></a><span class='comment'>-- Function Calls (3.2)</span>-<a name="line-415"></a><span class='comment'>--</span>-<a name="line-416"></a><span class='comment'>-- [16] FunctionCall</span>-<a name="line-417"></a><span class='comment'>-- [17] Argument</span>-<a name="line-418"></a><span class='definition'>functionCall</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-419"></a><span class='definition'>functionCall</span>-<a name="line-420"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-421"></a>      <span class='varid'>fn</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>functionName</span>-<a name="line-422"></a>      <span class='varid'>arg</span> <span class='keyglyph'>&lt;-</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-423"></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-424"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"functionCall"</span>-<a name="line-425"></a>-<a name="line-426"></a>-<a name="line-427"></a><a name="unionExpr"></a><span class='comment'>-- Node-sets (3.3)</span>-<a name="line-428"></a><span class='comment'>--</span>-<a name="line-429"></a><span class='comment'>-- [18] UnionExpr</span>-<a name="line-430"></a><span class='definition'>unionExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-431"></a><span class='definition'>unionExpr</span>-<a name="line-432"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-433"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>pathExpr</span>-<a name="line-434"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-435"></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-436"></a>-<a name="line-437"></a>-<a name="line-438"></a><a name="pathExpr"></a><span class='comment'>-- [19] PathExpr</span>-<a name="line-439"></a><span class='definition'>pathExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-440"></a><span class='definition'>pathExpr</span>-<a name="line-441"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-442"></a>      <span class='varid'>fe</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>filterExpr</span>-<a name="line-443"></a>      <span class='varid'>path</span> <span class='keyglyph'>&lt;-</span> <span class='keyword'>do</span>-<a name="line-444"></a>              <span class='varid'>dslash</span>-<a name="line-445"></a>              <span class='conid'>LocPath</span> <span class='varid'>t1</span> <span class='varid'>t2</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>-<a name="line-446"></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-447"></a>              <span class='varop'>&lt;|&gt;</span>-<a name="line-448"></a>              <span class='keyword'>do</span>-<a name="line-449"></a>              <span class='varid'>slash</span>-<a name="line-450"></a>              <span class='varid'>relPath</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relLocPath'</span>-<a name="line-451"></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-452"></a>              <span class='varop'>&lt;|&gt;</span>-<a name="line-453"></a>              <span class='varid'>return</span> <span class='varid'>fe</span>-<a name="line-454"></a>      <span class='varid'>return</span> <span class='varid'>path</span>-<a name="line-455"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-456"></a>      <span class='keyword'>do</span>-<a name="line-457"></a>      <span class='varid'>lp</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>locPath</span>-<a name="line-458"></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-459"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"pathExpr"</span>-<a name="line-460"></a>-<a name="line-461"></a>-<a name="line-462"></a><a name="filterExpr"></a><span class='comment'>-- [20] FilterExpr</span>-<a name="line-463"></a><span class='definition'>filterExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-464"></a><span class='definition'>filterExpr</span>-<a name="line-465"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-466"></a>      <span class='varid'>prim</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>primaryExpr</span>-<a name="line-467"></a>      <span class='varid'>predicates</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many</span> <span class='varid'>predicate</span>-<a name="line-468"></a>      <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>predicates</span> <span class='varop'>&gt;</span> <span class='num'>0</span>-<a name="line-469"></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-470"></a>        <span class='keyword'>else</span> <span class='varid'>return</span> <span class='varid'>prim</span>-<a name="line-471"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"filterExpr"</span>-<a name="line-472"></a>-<a name="line-473"></a>-<a name="line-474"></a><a name="orExpr"></a><span class='comment'>-- Booleans (3.4)</span>-<a name="line-475"></a><span class='comment'>--</span>-<a name="line-476"></a><span class='comment'>-- [21] OrExpr</span>-<a name="line-477"></a><span class='definition'>orExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-478"></a><span class='definition'>orExpr</span>-<a name="line-479"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-480"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>andExpr</span>-<a name="line-481"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-482"></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-483"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"orExpr"</span>-<a name="line-484"></a>-<a name="line-485"></a>-<a name="line-486"></a><a name="andExpr"></a><span class='comment'>-- [22] AndExpr</span>-<a name="line-487"></a><span class='definition'>andExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-488"></a><span class='definition'>andExpr</span>-<a name="line-489"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-490"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>equalityExpr</span>-<a name="line-491"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-492"></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-493"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"andExpr"</span>-<a name="line-494"></a>-<a name="line-495"></a>-<a name="line-496"></a><a name="equalityExpr"></a><span class='comment'>-- [23] EqualityExpr</span>-<a name="line-497"></a><span class='definition'>equalityExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-498"></a><span class='definition'>equalityExpr</span>-<a name="line-499"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-500"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>relationalExpr</span>-<a name="line-501"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-502"></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-503"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"equalityExpr"</span>-<a name="line-504"></a>-<a name="line-505"></a>-<a name="line-506"></a><a name="relationalExpr"></a><span class='comment'>-- [24] RelationalExpr</span>-<a name="line-507"></a><span class='definition'>relationalExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-508"></a><span class='definition'>relationalExpr</span>-<a name="line-509"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-510"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>additiveExpr</span>-<a name="line-511"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-512"></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-513"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"relationalExpr"</span>-<a name="line-514"></a>-<a name="line-515"></a>-<a name="line-516"></a><a name="additiveExpr"></a><span class='comment'>-- Numbers (3.5)</span>-<a name="line-517"></a><span class='comment'>--</span>-<a name="line-518"></a><span class='comment'>-- [25] AdditiveExpr</span>-<a name="line-519"></a><span class='definition'>additiveExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-520"></a><span class='definition'>additiveExpr</span>-<a name="line-521"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-522"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>multiplicativeExpr</span>-<a name="line-523"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-524"></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-525"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"additiveExpr"</span>-<a name="line-526"></a>-<a name="line-527"></a>-<a name="line-528"></a><a name="multiplicativeExpr"></a><span class='comment'>-- [26] MultiplicativeExpr</span>-<a name="line-529"></a><span class='definition'>multiplicativeExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-530"></a><span class='definition'>multiplicativeExpr</span>-<a name="line-531"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-532"></a>      <span class='varid'>e1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>-<a name="line-533"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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-534"></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-535"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"multiplicativeExpr"</span>-<a name="line-536"></a>-<a name="line-537"></a>-<a name="line-538"></a><a name="unaryExpr"></a><span class='comment'>-- [27] UnaryExpr</span>-<a name="line-539"></a><span class='definition'>unaryExpr</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span>-<a name="line-540"></a><span class='definition'>unaryExpr</span>-<a name="line-541"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-542"></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-543"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unaryExpr</span>-<a name="line-544"></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-545"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-546"></a>      <span class='keyword'>do</span>-<a name="line-547"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>unionExpr</span>-<a name="line-548"></a>      <span class='varid'>return</span> <span class='varid'>u</span>-<a name="line-549"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"unaryExpr"</span>-<a name="line-550"></a>-<a name="line-551"></a>-<a name="line-552"></a><a name="literal"></a><span class='comment'>-- Lexical Structure (3.7)</span>-<a name="line-553"></a><span class='comment'>--</span>-<a name="line-554"></a><span class='comment'>-- [29] Literal</span>-<a name="line-555"></a><span class='comment'>-- systemLiteral from XmlParser is used</span>-<a name="line-556"></a><span class='definition'>literal</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-557"></a><span class='definition'>literal</span> <span class='keyglyph'>=</span> <span class='varid'>systemLiteral</span>-<a name="line-558"></a>-<a name="line-559"></a>-<a name="line-560"></a><a name="number"></a><span class='comment'>-- [30] Number</span>-<a name="line-561"></a><span class='definition'>number</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>String</span>-<a name="line-562"></a><span class='definition'>number</span>-<a name="line-563"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-564"></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-565"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-566"></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-567"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-568"></a>      <span class='keyword'>do</span>-<a name="line-569"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>-<a name="line-570"></a>      <span class='varid'>d1</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>option</span> <span class='str'>""</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-571"></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-572"></a>                        <span class='varid'>d2</span> <span class='keyglyph'>&lt;-</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-573"></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-574"></a>                      <span class='layout'>)</span>-<a name="line-575"></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-576"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"number"</span>-<a name="line-577"></a>-<a name="line-578"></a>-<a name="line-579"></a><span class='comment'>-- [35] FunctionName</span>-<a name="line-580"></a><span class='comment'>-- no nodetype name is allowed as a function name</span>-<a name="line-581"></a><span class='comment'>-- Tim Walkenhorst:</span>-<a name="line-582"></a><span class='comment'>--   Change in String encoding for function name</span>-<a name="line-583"></a><span class='comment'>--</span>-<a name="line-584"></a><span class='comment'>--         previoulsy:      new:</span>-<a name="line-585"></a><span class='comment'>--           </span>-<a name="line-586"></a><span class='comment'>--         name             name</span>-<a name="line-587"></a><span class='comment'>--         pref:name        {<a href="http://uri-for-pref">http://uri-for-pref</a>}name</span>-<a name="line-588"></a>-<a name="line-589"></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-590"></a><span class='definition'>functionName</span>-<a name="line-591"></a>    <span class='keyglyph'>=</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>           -<a name="line-592"></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'>&lt;-</span> <span class='varid'>qName</span>-<a name="line-593"></a>            <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>-<a name="line-594"></a>            <span class='varid'>u</span>      <span class='keyglyph'>&lt;-</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> <span class='keyword'>then</span> <span class='str'>""</span> <span class='keyword'>else</span> <span class='chr'>'{'</span> <span class='conop'>:</span> <span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>p</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>qName</span>-<a name="line-609"></a>      <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>-<a name="line-610"></a>      <span class='varid'>return</span> <span class='layout'>(</span><span class='varid'>lookupNs</span> <span class='varid'>uris</span> <span class='varid'>p</span><span class='layout'>,</span> <span class='varid'>n</span><span class='layout'>)</span>-<a name="line-611"></a>      <span class='varop'>&lt;?&gt;</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'>-&gt;</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>-<a name="line-618"></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-619"></a>      <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>-<a name="line-620"></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'>mkName</span> <span class='str'>"*"</span><span class='layout'>)</span>-<a name="line-621"></a>      <span class='varop'>&lt;|&gt;</span> <span class='varid'>try</span> <span class='layout'>(</span> <span class='keyword'>do</span>-<a name="line-622"></a>                  <span class='varid'>pre</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>ncName</span>-<a name="line-623"></a>                  <span class='varid'>symbol</span> <span class='str'>":*"</span>-<a name="line-624"></a>                  <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>-<a name="line-625"></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'>mkNsName</span> <span class='layout'>(</span><span class='varid'>pre</span> <span class='varop'>++</span> <span class='str'>":*"</span><span class='layout'>)</span> <span class='str'>""</span><span class='layout'>)</span>                -<a name="line-626"></a>              <span class='layout'>)</span>-<a name="line-627"></a>      <span class='varop'>&lt;|&gt;</span>-<a name="line-628"></a>      <span class='keyword'>do</span>-<a name="line-629"></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'>&lt;-</span> <span class='varid'>qName</span>      	      -<a name="line-630"></a>      <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>-<a name="line-631"></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'>mkNsName</span> <span class='layout'>(</span><span class='varid'>pre</span> <span class='varop'>++</span> <span class='str'>":"</span> <span class='varop'>++</span> <span class='varid'>local</span><span class='layout'>)</span> <span class='str'>""</span><span class='layout'>)</span>-<a name="line-632"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nameTest"</span>	-<a name="line-633"></a>-<a name="line-634"></a>	-<a name="line-635"></a><a name="nodeType'"></a><span class='comment'>-- [38] NodeType</span>-<a name="line-636"></a><span class='definition'>nodeType'</span> <span class='keyglyph'>::</span> <span class='conid'>XParser</span> <span class='conid'>XPathNode</span>-<a name="line-637"></a><span class='definition'>nodeType'</span> -<a name="line-638"></a>    <span class='keyglyph'>=</span> <span class='keyword'>do</span>-<a name="line-639"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeType</span>-<a name="line-640"></a>      <span class='varid'>lpar</span>-<a name="line-641"></a>      <span class='varid'>rpar</span>-<a name="line-642"></a>      <span class='varid'>return</span> <span class='varid'>nt</span>-<a name="line-643"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType'"</span>-<a name="line-644"></a>	-<a name="line-645"></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-646"></a><span class='definition'>nodeType</span> -<a name="line-647"></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-648"></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-649"></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-650"></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-651"></a>             <span class='keyglyph'>]</span>-<a name="line-652"></a>      <span class='varop'>&lt;?&gt;</span> <span class='str'>"nodeType"</span>+<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'>-&gt;</span> <span class='conid'>XName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>NsEnv</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;-</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'>&lt;-</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&lt;|&gt;</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'>"&lt;="</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'>"&gt;="</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'>"&lt;"</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'>"&gt;"</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'>&lt;|&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>XParser</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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'>&lt;-</span> <span class='varid'>parserOp</span>+<a name="line-197"></a>      <span class='varid'>e2</span> <span class='keyglyph'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;-</span> <span class='varid'>step</span>+<a name="line-245"></a>      <span class='varid'>s2</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;|&gt;</span>+<a name="line-270"></a>      <span class='keyword'>do</span>+<a name="line-271"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>axisSpecifier'</span>+<a name="line-272"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>nodeTest</span> <span class='keyword'>as</span>+<a name="line-273"></a>      <span class='varid'>pr</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;|&gt;</span>+<a name="line-285"></a>      <span class='keyword'>do</span>+<a name="line-286"></a>      <span class='keyword'>as</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;?&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-327"></a>      <span class='keyword'>do</span>+<a name="line-328"></a>      <span class='varid'>processInst</span> <span class='keyglyph'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-331"></a>      <span class='keyword'>do</span>+<a name="line-332"></a>      <span class='varid'>nt</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-394"></a>      <span class='keyword'>do</span>+<a name="line-395"></a>      <span class='varid'>ex</span> <span class='keyglyph'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-398"></a>      <span class='keyword'>do</span>+<a name="line-399"></a>      <span class='varid'>li</span> <span class='keyglyph'>&lt;-</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'>&lt;|&gt;</span> +<a name="line-402"></a>      <span class='keyword'>do</span>+<a name="line-403"></a>      <span class='varid'>num</span> <span class='keyglyph'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-406"></a>      <span class='keyword'>do</span>+<a name="line-407"></a>      <span class='varid'>fc</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>functionName</span>+<a name="line-420"></a>      <span class='varid'>arg</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>pathExpr</span>+<a name="line-432"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;-</span> <span class='varid'>try</span> <span class='varid'>filterExpr</span>+<a name="line-441"></a>      <span class='varid'>path</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;|&gt;</span>+<a name="line-454"></a>      <span class='keyword'>do</span>+<a name="line-455"></a>      <span class='varid'>lp</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>primaryExpr</span>+<a name="line-465"></a>      <span class='varid'>predicates</span> <span class='keyglyph'>&lt;-</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'>&gt;</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>andExpr</span>+<a name="line-479"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>equalityExpr</span>+<a name="line-489"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>relationalExpr</span>+<a name="line-499"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>additiveExpr</span>+<a name="line-509"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>multiplicativeExpr</span>+<a name="line-521"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>unaryExpr</span>+<a name="line-531"></a>      <span class='varid'>eRest</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-544"></a>      <span class='keyword'>do</span>+<a name="line-545"></a>      <span class='varid'>u</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;|&gt;</span>+<a name="line-566"></a>      <span class='keyword'>do</span>+<a name="line-567"></a>      <span class='varid'>d</span> <span class='keyglyph'>&lt;-</span> <span class='varid'>many1</span> <span class='varid'>digit</span>+<a name="line-568"></a>      <span class='varid'>d1</span> <span class='keyglyph'>&lt;-</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>qName</span>+<a name="line-591"></a>            <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</span> <span class='varid'>getState</span>+<a name="line-592"></a>            <span class='varid'>u</span>      <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</span> <span class='varid'>qName</span>+<a name="line-609"></a>      <span class='varid'>uris</span>   <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>-&gt;</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</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'>&lt;-</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'>&lt;|&gt;</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'>&lt;-</span> <span class='varid'>qName</span>+<a name="line-628"></a>	 <span class='varid'>uris</span> <span class='keyglyph'>&lt;-</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'>&lt;?&gt;</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'>&lt;-</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'>&lt;?&gt;</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'>&lt;?&gt;</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-XSLT-Common.html view
@@ -10,404 +10,407 @@ <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-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>   Version    : $Id: Common.hs,v 1.5 2007/05/02 06:41:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>   Common imports and functions 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'>Common</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>-<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'>XmlNode</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'>XmlKeywords</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'>TypeDefs</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'>FormatXmlTree</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'>XPathDataTypes</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'>XPathParser</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'>XPathEval</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'>XPathFct</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'>XPath</span><span class='varop'>.</span><span class='conid'>XPathToString</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'>NavTree</span>-<a name="line-31"></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-32"></a>-<a name="line-33"></a>    <span class='comment'>-- Tree Functions</span>-<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>filterTree</span>                 <span class='comment'>-- Tree t =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</span>-<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>mapTreeCtx</span>                 <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</span>-<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>filterTreeCtx</span>              <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</span>-<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>zipTreeWith</span>                <span class='comment'>-- Tree t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</span>-<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>zipTree</span>                    <span class='comment'>-- Tree t =&gt; t a -&gt; t b -&gt; t (a,b)           (zipTreeWith (,))</span>-<a name="line-39"></a>    <span class='layout'>,</span> <span class='varid'>unzipTree</span>                  <span class='comment'>-- Tree t =&gt; t (a,b) -&gt; (t a, t b)           (mapTree fst &amp;&amp;&amp; mapTree snd)</span>-<a name="line-40"></a>    <span class='layout'>,</span> <span class='varid'>showTrees</span>-<a name="line-41"></a>-<a name="line-42"></a>    <span class='comment'>-- XML functions</span>-<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isElemType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>-<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isAttrType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>-<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>isWhitespaceNode</span>           <span class='comment'>-- XmlTree -&gt; Bool</span>-<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>collectTextnodes</span>           <span class='comment'>-- [XmlTree] -&gt; String</span>-<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>tryFetchAttribute</span>          <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Maybe String</span>-<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttributeWDefault</span>     <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String -&gt; String</span>-<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttribute</span>             <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String</span>-<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>hasAttribute</span>               <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Bool</span>-<a name="line-51"></a>    <span class='layout'>,</span> <span class='varid'>setAttribute</span>               <span class='comment'>-- XmlNode n =&gt; QName -&gt; String -&gt; n -&gt; n</span>-<a name="line-52"></a>-<a name="line-53"></a>    <span class='comment'>-- Namespace functions</span>-<a name="line-54"></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) -&gt; String (uri) -&gt; ExName</span>-<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>mkExName</span>                   <span class='comment'>-- QName -&gt; ExName</span>-<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>exLocal</span>		         <span class='comment'>-- ExName -&gt; String</span>-<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>exUri</span>		         <span class='comment'>-- ExName -&gt; String</span>-<a name="line-58"></a>    <span class='layout'>,</span> <span class='varid'>parseExName</span>                <span class='comment'>-- UriMapping -&gt; String -&gt; ExName</span>-<a name="line-59"></a>    <span class='layout'>,</span> <span class='conid'>UriMapping</span>                 <span class='comment'>-- Map String String</span>-<a name="line-60"></a>    <span class='layout'>,</span> <span class='varid'>getUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; n -&gt; UriMapping (extract an Ns-Uri Map from an Element node)</span>-<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>setUriMap</span>                  <span class='comment'>-- XmlNode n =&gt; UriMap -&gt; n -&gt; n</span>-<a name="line-62"></a>    <span class='layout'>,</span> <span class='varid'>uriMap2Attrs</span>               <span class='comment'>-- UriMapping -&gt; [XmlTree]      (create xmlns:* Attribute nodes for Uri-Mapping)</span>-<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>expandNSDecls</span>              <span class='comment'>-- XmlTree -&gt; XmlTree</span>-<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>lookupPrefix</span>               <span class='comment'>-- UriMapping -&gt; String -&gt; String</span>-<a name="line-65"></a>    <span class='layout'>,</span> <span class='varid'>isNsAttr</span>                   <span class='comment'>-- XmlTree -&gt; Bool</span>-<a name="line-66"></a>-<a name="line-67"></a>    <span class='comment'>-- additions to XPATH:</span>-<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>mkLiteralExpr</span>              <span class='comment'>-- String -&gt; Expr</span>-<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>mkStringExpr</span>               <span class='comment'>-- Expr -&gt; Expr</span>-<a name="line-70"></a>    <span class='layout'>,</span> <span class='varid'>mkBoolExpr</span>                 <span class='comment'>-- Expr -&gt; Expr</span>-<a name="line-71"></a>    <span class='layout'>,</span> <span class='varid'>mkTrueExpr</span>                 <span class='comment'>-- Expr</span>-<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>concatExpr</span>                 <span class='comment'>-- [Expr] -&gt; Expr</span>-<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>splitExpr</span>                  <span class='comment'>-- Expr -&gt; [Expr]</span>-<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>unionExpr</span>                  <span class='comment'>-- [Expr] -&gt; Expr</span>-<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>splitMatchByPrio</span>           <span class='comment'>-- Expr -&gt; [(Float, Expr)]</span>-<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>computePriority</span>            <span class='comment'>-- Expr -&gt; Float</span>-<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>computeNTestPriority</span>       <span class='comment'>-- NodeTest -&gt; Float</span>-<a name="line-78"></a>    <span class='layout'>,</span> <span class='varid'>isMatchExpr</span>                <span class='comment'>-- Expr -&gt; Bool</span>-<a name="line-79"></a>-<a name="line-80"></a>    <span class='comment'>-- Misc.:</span>-<a name="line-81"></a>    <span class='layout'>,</span> <span class='varid'>fromJustErr</span>                <span class='comment'>-- String -&gt; Maybe a -&gt; a, fromJust with error message</span>-<a name="line-82"></a>    <span class='layout'>,</span> <span class='varid'>readWDefault</span>               <span class='comment'>-- Read a =&gt; a -&gt; String -&gt; a</span>-<a name="line-83"></a>    <span class='layout'>)</span>-<a name="line-84"></a><span class='keyword'>where</span>-<a name="line-85"></a>-<a name="line-86"></a><span class='keyword'>import</span> <span class='conid'>Control</span><span class='varop'>.</span><span class='conid'>Arrow</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'>ListArrow</span>-<a name="line-88"></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-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'>Arrow</span><span class='varop'>.</span><span class='conid'>XmlArrow</span>-<a name="line-91"></a>    <span class='layout'>(</span> <span class='varid'>xshow</span>-<a name="line-92"></a>    <span class='layout'>)</span>-<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'>XmlNode</span>-<a name="line-94"></a>    <span class='layout'>(</span> <span class='conid'>XmlNode</span> <span class='layout'>(</span><span class='keyglyph'>..</span><span class='layout'>)</span>-<a name="line-95"></a>    <span class='layout'>,</span> <span class='varid'>mkElement</span>-<a name="line-96"></a>    <span class='layout'>,</span> <span class='varid'>mkRoot</span>-<a name="line-97"></a>    <span class='layout'>,</span> <span class='varid'>mkAttr</span>-<a name="line-98"></a>    <span class='layout'>,</span> <span class='varid'>mergeAttrl</span>-<a name="line-99"></a>    <span class='layout'>)</span>-<a name="line-100"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-101"></a>-<a name="line-102"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-103"></a>    <span class='layout'>(</span> <span class='conid'>XmlTree</span>-<a name="line-104"></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-105"></a>    <span class='layout'>,</span> <span class='conid'>QName</span><span class='layout'>(</span><span class='varid'>namePrefix</span><span class='layout'>,</span> <span class='varid'>localPart</span><span class='layout'>,</span> <span class='varid'>namespaceUri</span><span class='layout'>)</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>-<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'>DOM</span><span class='varop'>.</span><span class='conid'>FormatXmlTree</span>-<a name="line-112"></a>    <span class='layout'>(</span> <span class='varid'>formatXmlTree</span> <span class='layout'>)</span>-<a name="line-113"></a>-<a name="line-114"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-115"></a>    <span class='layout'>(</span> <span class='conid'>Expr</span><span class='layout'>(</span><span class='conid'>LiteralExpr</span><span class='layout'>,</span> <span class='conid'>FctExpr</span><span class='layout'>,</span> <span class='conid'>GenExpr</span><span class='layout'>,</span> <span class='conid'>PathExpr</span><span class='layout'>)</span>-<a name="line-116"></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-117"></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-118"></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-119"></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-120"></a>    <span class='layout'>,</span> <span class='conid'>NodeTest</span> <span class='layout'>(</span><span class='conid'>NameTest</span><span class='layout'>,</span> <span class='conid'>PI</span><span class='layout'>,</span> <span class='conid'>TypeTest</span><span class='layout'>)</span>-<a name="line-121"></a>    <span class='layout'>,</span> <span class='conid'>NavXmlTree</span>-<a name="line-122"></a>    <span class='layout'>,</span> <span class='conid'>XPathValue</span><span class='layout'>(</span><span class='conid'>XPVNode</span><span class='layout'>,</span> <span class='conid'>XPVBool</span><span class='layout'>,</span> <span class='conid'>XPVString</span><span class='layout'>,</span> <span class='conid'>XPVError</span><span class='layout'>)</span>-<a name="line-123"></a>    <span class='layout'>)</span>-<a name="line-124"></a>-<a name="line-125"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-126"></a>    <span class='layout'>(</span> <span class='varid'>parseXPath</span> <span class='layout'>)</span>-<a name="line-127"></a>-<a name="line-128"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-129"></a>    <span class='layout'>(</span> <span class='varid'>evalExpr</span> <span class='layout'>)</span>-<a name="line-130"></a>-<a name="line-131"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-132"></a>    <span class='layout'>(</span> <span class='varid'>isNotInNodeList</span> <span class='layout'>)</span>-<a name="line-133"></a>-<a name="line-134"></a><span class='keyword'>import</span> <span class='conid'>Text</span><span 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-135"></a>    <span class='layout'>(</span> <span class='varid'>xPValue2XmlTrees</span> <span class='layout'>)</span>-<a name="line-136"></a>-<a name="line-137"></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-138"></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-139"></a>-<a name="line-140"></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-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 =&gt; (a -&gt; Bool) -&gt; t a -&gt; Maybe (t a)</span>+<a name="line-34"></a>    <span class='layout'>,</span> <span class='varid'>mapTreeCtx</span>                 <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, b)) -&gt; c -&gt; t a -&gt; t b</span>+<a name="line-35"></a>    <span class='layout'>,</span> <span class='varid'>filterTreeCtx</span>              <span class='comment'>-- Tree t =&gt; (c -&gt; a -&gt; (c, Bool)) -&gt; c -&gt; t a -&gt; Maybe (t a)</span>+<a name="line-36"></a>    <span class='layout'>,</span> <span class='varid'>zipTreeWith</span>                <span class='comment'>-- Tree t =&gt; (a -&gt; b -&gt; c) -&gt; t a -&gt; t b -&gt; t c</span>+<a name="line-37"></a>    <span class='layout'>,</span> <span class='varid'>zipTree</span>                    <span class='comment'>-- Tree t =&gt; t a -&gt; t b -&gt; t (a,b)           (zipTreeWith (,))</span>+<a name="line-38"></a>    <span class='layout'>,</span> <span class='varid'>unzipTree</span>                  <span class='comment'>-- Tree t =&gt; t (a,b) -&gt; (t a, t b)           (mapTree fst &amp;&amp;&amp; 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 =&gt; QName -&gt; n -&gt; Bool</span>+<a name="line-43"></a>    <span class='layout'>,</span> <span class='varid'>isAttrType</span>                 <span class='comment'>-- XmlNode n =&gt; QName -&gt; n -&gt; Bool</span>+<a name="line-44"></a>    <span class='layout'>,</span> <span class='varid'>isWhitespaceNode</span>           <span class='comment'>-- XmlTree -&gt; Bool</span>+<a name="line-45"></a>    <span class='layout'>,</span> <span class='varid'>collectTextnodes</span>           <span class='comment'>-- [XmlTree] -&gt; String</span>+<a name="line-46"></a>    <span class='layout'>,</span> <span class='varid'>tryFetchAttribute</span>          <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Maybe String</span>+<a name="line-47"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttributeWDefault</span>     <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String -&gt; String</span>+<a name="line-48"></a>    <span class='layout'>,</span> <span class='varid'>fetchAttribute</span>             <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; String</span>+<a name="line-49"></a>    <span class='layout'>,</span> <span class='varid'>hasAttribute</span>               <span class='comment'>-- XmlNode n =&gt; n -&gt; QName -&gt; Bool</span>+<a name="line-50"></a>    <span class='layout'>,</span> <span class='varid'>setAttribute</span>               <span class='comment'>-- XmlNode n =&gt; QName -&gt; String -&gt; n -&gt; 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) -&gt; String (uri) -&gt; ExName</span>+<a name="line-54"></a>    <span class='layout'>,</span> <span class='varid'>mkExName</span>                   <span class='comment'>-- QName -&gt; ExName</span>+<a name="line-55"></a>    <span class='layout'>,</span> <span class='varid'>exLocal</span>		         <span class='comment'>-- ExName -&gt; String</span>+<a name="line-56"></a>    <span class='layout'>,</span> <span class='varid'>exUri</span>		         <span class='comment'>-- ExName -&gt; String</span>+<a name="line-57"></a>    <span class='layout'>,</span> <span class='varid'>parseExName</span>                <span class='comment'>-- UriMapping -&gt; String -&gt; 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 =&gt; n -&gt; 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 =&gt; UriMap -&gt; n -&gt; n</span>+<a name="line-61"></a>    <span class='layout'>,</span> <span class='varid'>uriMap2Attrs</span>               <span class='comment'>-- UriMapping -&gt; [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 -&gt; XmlTree</span>+<a name="line-63"></a>    <span class='layout'>,</span> <span class='varid'>lookupPrefix</span>               <span class='comment'>-- UriMapping -&gt; String -&gt; String</span>+<a name="line-64"></a>    <span class='layout'>,</span> <span class='varid'>isNsAttr</span>                   <span class='comment'>-- XmlTree -&gt; 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 -&gt; Expr</span>+<a name="line-68"></a>    <span class='layout'>,</span> <span class='varid'>mkStringExpr</span>               <span class='comment'>-- Expr -&gt; Expr</span>+<a name="line-69"></a>    <span class='layout'>,</span> <span class='varid'>mkBoolExpr</span>                 <span class='comment'>-- Expr -&gt; 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] -&gt; Expr</span>+<a name="line-72"></a>    <span class='layout'>,</span> <span class='varid'>splitExpr</span>                  <span class='comment'>-- Expr -&gt; [Expr]</span>+<a name="line-73"></a>    <span class='layout'>,</span> <span class='varid'>unionExpr</span>                  <span class='comment'>-- [Expr] -&gt; Expr</span>+<a name="line-74"></a>    <span class='layout'>,</span> <span class='varid'>splitMatchByPrio</span>           <span class='comment'>-- Expr -&gt; [(Float, Expr)]</span>+<a name="line-75"></a>    <span class='layout'>,</span> <span class='varid'>computePriority</span>            <span class='comment'>-- Expr -&gt; Float</span>+<a name="line-76"></a>    <span class='layout'>,</span> <span class='varid'>computeNTestPriority</span>       <span class='comment'>-- NodeTest -&gt; Float</span>+<a name="line-77"></a>    <span class='layout'>,</span> <span class='varid'>isMatchExpr</span>                <span class='comment'>-- Expr -&gt; 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 -&gt; Maybe a -&gt; 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 =&gt; a -&gt; String -&gt; 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'>NavTree</span>-<a name="line-143"></a>    <span class='layout'>(</span> <span class='conid'>NavTree</span>-<a name="line-144"></a>    <span class='layout'>,</span> <span class='varid'>ntree</span>-<a name="line-145"></a>    <span class='layout'>,</span> <span class='varid'>subtreeNT</span>-<a name="line-146"></a>    <span class='layout'>,</span> <span class='varid'>upNT</span>-<a name="line-147"></a>    <span class='layout'>,</span> <span class='varid'>downNT</span>-<a name="line-148"></a>    <span class='layout'>,</span> <span class='varid'>rightNT</span>-<a name="line-149"></a>    <span class='layout'>,</span> <span class='varid'>leftNT</span>-<a name="line-150"></a>    <span class='layout'>,</span> <span class='varid'>getChildrenNT</span>-<a name="line-151"></a>    <span class='layout'>)</span>-<a name="line-152"></a>-<a name="line-153"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Maybe</span>-<a name="line-154"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>List</span>-<a name="line-155"></a><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Char</span>-<a name="line-156"></a>-<a name="line-157"></a><span class='comment'>--------------------------- </span>-<a name="line-158"></a><span class='comment'>-- Tree functions</span>+<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'>-- mapTree :: Functor t =&gt; (a -&gt; b) -&gt; t a -&gt; t b</span>-<a name="line-161"></a><span class='comment'>-- mapTree = fmap</span>+<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'>-- "map" on a tree with a context. </span>-<a name="line-164"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>+<a name="line-163"></a><span class='comment'>-- mapTree :: Functor t =&gt; (a -&gt; b) -&gt; t a -&gt; t b</span>+<a name="line-164"></a><span class='comment'>-- mapTree = fmap</span> <a name="line-165"></a>-<a name="line-166"></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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span>-<a name="line-167"></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-168"></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-169"></a>  <span class='keyword'>where</span> -<a name="line-170"></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-171"></a>-<a name="line-172"></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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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-173"></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-174"></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-175"></a>                      <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-176"></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-177"></a>-<a name="line-178"></a><a name="filterTreeCtx"></a><span class='comment'>-- "filter" on a tree with a context. </span>-<a name="line-179"></a><span class='comment'>-- Contextual information from the ancestors of the current node can be collected in the context</span>-<a name="line-180"></a><span class='definition'>filterTreeCtx</span> <span class='keyglyph'>::</span> <span class='conid'>Tree</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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-181"></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-182"></a>  <span class='keyword'>if</span> <span class='varid'>b</span> -<a name="line-183"></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-184"></a>    <span class='keyword'>else</span> <span class='conid'>Nothing</span>-<a name="line-185"></a>  <span class='keyword'>where</span> -<a name="line-186"></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-187"></a>    <span class='varid'>node</span>    <span class='keyglyph'>=</span> <span class='varid'>getNode</span> <span class='varid'>tree</span>-<a name="line-188"></a>-<a name="line-189"></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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>c</span>-<a name="line-190"></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-191"></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-192"></a>-<a name="line-193"></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'>=&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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-194"></a><span class='definition'>zipTree</span>      <span class='keyglyph'>=</span> <span class='varid'>zipTreeWith</span> <span class='conid'>(,)</span>+<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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='varid'>c</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='layout'>(</span><span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>c</span><span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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="unzipTree"></a><span class='definition'>unzipTree</span>  <span class='keyglyph'>::</span> <span class='conid'>Functor</span> <span class='varid'>t</span> <span class='keyglyph'>=&gt;</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'>-&gt;</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-197"></a><span class='definition'>unzipTree</span>   <span class='keyglyph'>=</span> <span class='varid'>fmap</span> <span class='varid'>fst</span> <span class='varop'>&amp;&amp;&amp;</span> <span class='varid'>fmap</span> <span class='varid'>snd</span>+<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'>=&gt;</span> <span class='varid'>t</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>t</span> <span class='varid'>b</span> <span class='keyglyph'>-&gt;</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="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'>-&gt;</span> <span class='conid'>String</span>-<a name="line-200"></a><span class='definition'>showTrees</span> <span class='varid'>ts</span>-<a name="line-201"></a>    <span class='keyglyph'>=</span> <span class='varid'>concat</span> -<a name="line-202"></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-203"></a>-<a name="line-204"></a><span class='comment'>--------------------------- </span>-<a name="line-205"></a><span class='comment'>-- Xml Functions</span>+<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'>=&gt;</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'>-&gt;</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'>&amp;&amp;&amp;</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'>-&gt;</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><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'>-&gt;</span> <span class='conid'>String</span>-<a name="line-208"></a><span class='definition'>collectTextnodes</span>-<a name="line-209"></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-210"></a>-<a name="line-211"></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'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-212"></a><span class='definition'>isElemType</span> <span class='varid'>qn</span> <span class='varid'>node</span>-<a name="line-213"></a>    <span class='keyglyph'>=</span> <span class='varid'>isElem</span> <span class='varid'>node</span>-<a name="line-214"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-215"></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-216"></a>-<a name="line-217"></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'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-218"></a><span class='definition'>isAttrType</span> <span class='varid'>qname</span> <span class='varid'>node</span>-<a name="line-219"></a>    <span class='keyglyph'>=</span> <span class='varid'>isAttr</span> <span class='varid'>node</span>-<a name="line-220"></a>      <span class='varop'>&amp;&amp;</span>-<a name="line-221"></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-222"></a>-<a name="line-223"></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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>String</span>-<a name="line-224"></a><span class='definition'>tryFetchAttribute</span> <span class='varid'>node</span> <span class='varid'>qn</span>-<a name="line-225"></a>  <span class='keyglyph'>|</span> <span class='varid'>isElem</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-226"></a>-<a name="line-227"></a>      <span class='keyword'>if</span> <span class='varid'>null</span> <span class='varid'>candidates</span> -<a name="line-228"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>+<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'>-&gt;</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'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>else</span> <span class='keyword'>if</span> <span class='varid'>length</span> <span class='varid'>candidates</span> <span class='varop'>&gt;</span> <span class='num'>1</span>-<a name="line-231"></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-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='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-234"></a>-<a name="line-235"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span> <span class='keyglyph'>=</span> <span class='conid'>Nothing</span>    -<a name="line-236"></a>  <span class='keyword'>where</span> -<a name="line-237"></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-238"></a>-<a name="line-239"></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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-240"></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-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'>&gt;</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="fetchAttribute"></a><span class='definition'>fetchAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-243"></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-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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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="hasAttribute"></a><span class='definition'>hasAttribute</span> <span class='keyglyph'>::</span>  <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-246"></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-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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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="setAttribute"></a><span class='definition'>setAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>-<a name="line-249"></a><span class='definition'>setAttribute</span> <span class='varid'>qn</span> <span class='varid'>val</span> <span class='varid'>node</span>-<a name="line-250"></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-251"></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-252"></a>  <span class='keyword'>where</span> -<a name="line-253"></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-254"></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-255"></a>-<a name="line-256"></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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-257"></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-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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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><span class='comment'>--------------------------- </span>-<a name="line-260"></a><span class='comment'>-- Namespace Functions</span>+<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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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'>-- Expanded name, is unique can therefore be used as a key (unlike QName)</span>-<a name="line-263"></a>-<a name="line-264"></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-265"></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-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="mkExName"></a><span class='definition'>mkExName</span> <span class='keyglyph'>::</span> <span class='conid'>QName</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>-<a name="line-268"></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-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="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'>-&gt;</span> <span class='conid'>String</span>-<a name="line-271"></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-272"></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-273"></a>-<a name="line-274"></a><a name="parseExName"></a><span class='definition'>parseExName</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ExName</span>-<a name="line-275"></a><span class='definition'>parseExName</span> <span class='varid'>uris</span> <span class='varid'>str</span>-<a name="line-276"></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-277"></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-278"></a>    <span class='keyword'>where</span>-<a name="line-279"></a>    <span class='varid'>noPrefix</span>       <span class='keyglyph'>=</span> <span class='varid'>null</span> <span class='varid'>loc</span> -<a name="line-280"></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-281"></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-282"></a>-<a name="line-283"></a><span class='comment'>-- Mapping from namespace-Prefixes to namespace-URIs</span>-<a name="line-284"></a>-<a name="line-285"></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-286"></a>-<a name="line-287"></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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>-<a name="line-288"></a><span class='definition'>getUriMap</span>-<a name="line-289"></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-290"></a>      <span class='keyword'>where</span>-<a name="line-291"></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-292"></a>-<a name="line-293"></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'>=&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span>-<a name="line-294"></a><span class='definition'>setUriMap</span> <span class='varid'>nsMap</span> <span class='varid'>node</span>-<a name="line-295"></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-296"></a>-<a name="line-297"></a><a name="uriMap2Attrs"></a><span class='definition'>uriMap2Attrs</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span>-<a name="line-298"></a><span class='definition'>uriMap2Attrs</span>-<a name="line-299"></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-300"></a>-<a name="line-301"></a><a name="lookupPrefix"></a><span class='definition'>lookupPrefix</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span>-<a name="line-302"></a><span class='definition'>lookupPrefix</span> <span class='varid'>uris</span> <span class='varid'>prefix</span>-<a name="line-303"></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-304"></a>-<a name="line-305"></a><a name="expandNSDecls"></a><span class='definition'>expandNSDecls</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-306"></a><span class='definition'>expandNSDecls</span>-<a name="line-307"></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-308"></a>-<a name="line-309"></a><a name="expandNSElem"></a><span class='definition'>expandNSElem</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</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-310"></a><span class='definition'>expandNSElem</span> <span class='varid'>umap</span> <span class='varid'>node</span>-<a name="line-311"></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-312"></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-313"></a>  <span class='keyword'>where</span>-<a name="line-314"></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-315"></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-316"></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-317"></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-318"></a>-<a name="line-319"></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'>-&gt;</span> <span class='conid'>UriMapping</span>-<a name="line-320"></a><span class='definition'>uriMappingsFromNsAttrs</span>-<a name="line-321"></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-322"></a>-<a name="line-323"></a><a name="isNsAttr"></a><span class='definition'>isNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-324"></a><span class='definition'>isNsAttr</span>-<a name="line-325"></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-326"></a>-<a name="line-327"></a><a name="splitNsAttr"></a><span class='definition'>splitNsAttr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-328"></a><span class='definition'>splitNsAttr</span> <span class='varid'>node</span>-<a name="line-329"></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-330"></a>-<a name="line-331"></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'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-332"></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-333"></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-334"></a>-<a name="line-335"></a><span class='comment'>-------------------------</span>-<a name="line-336"></a><span class='comment'>-- additions to XPATH:</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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'>=&gt;</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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><a name="mkLiteralExpr"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-339"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>=</span> <span class='conid'>LiteralExpr</span>+<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="mkStringExpr"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-342"></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-341"></a><a name="mkLiteralExpr"></a><span class='definition'>mkLiteralExpr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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="mkBoolExpr"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-345"></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-344"></a><a name="mkStringExpr"></a><span class='definition'>mkStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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="mkTrueExpr"></a><span class='definition'>mkTrueExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span>-<a name="line-348"></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-347"></a><a name="mkBoolExpr"></a><span class='definition'>mkBoolExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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="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'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-351"></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-352"></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-353"></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-354"></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-355"></a>-<a name="line-356"></a><a name="splitExpr"></a><span class='definition'>splitExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-357"></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-358"></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-359"></a>-<a name="line-360"></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'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-361"></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-362"></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-363"></a>-<a name="line-364"></a><a name="splitMatchByPrio"></a><span class='comment'>-- Intelligent splitting: Split an expression into subexpressions with equal priority</span>-<a name="line-365"></a><span class='comment'>-- for example: "a|c/d|e|f/g"  =&gt; [(0.0, "a|e"), (0.5, "c/d|f/g")]</span>-<a name="line-366"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</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-367"></a><span class='definition'>splitMatchByPrio</span> <span class='keyglyph'>=</span> -<a name="line-368"></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'>&amp;&amp;&amp;</span> <span class='varid'>id</span><span class='layout'>)</span> <span class='varop'>.</span> <span class='varid'>splitExpr</span>-<a name="line-369"></a>  <span class='keyword'>where</span>-<a name="line-370"></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-371"></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-372"></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-373"></a>-<a name="line-374"></a><a name="computePriority"></a><span class='definition'>computePriority</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>-<a name="line-375"></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-376"></a><span class='definition'>computePriority</span> <span class='keyword'>_</span> <span class='keyglyph'>=</span> <span class='num'>0.5</span>-<a name="line-377"></a>-<a name="line-378"></a><a name="computeNTestPriority"></a><span class='definition'>computeNTestPriority</span> <span class='keyglyph'>::</span> <span class='conid'>NodeTest</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Float</span>-<a name="line-379"></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-380"></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-381"></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-382"></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-383"></a>    <span class='varop'>&amp;&amp;</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-384"></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-385"></a>  <span class='keyglyph'>|</span> <span class='varid'>otherwise</span>                     <span class='keyglyph'>=</span>  <span class='num'>0.0</span>-<a name="line-386"></a>-<a name="line-387"></a><a name="isMatchExpr"></a><span class='definition'>isMatchExpr</span> <span class='keyglyph'>::</span> <span class='conid'>Expr</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Bool</span>-<a name="line-388"></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-389"></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-390"></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-391"></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-392"></a><span class='definition'>isMatchExpr</span> <span class='keyword'>_</span>                                              <span class='keyglyph'>=</span> <span class='conid'>False</span>-<a name="line-393"></a>-<a name="line-394"></a><span class='comment'>--------------------------- </span>-<a name="line-395"></a><span class='comment'>-- Misc:</span>+<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'>-&gt;</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'>-&gt;</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'>-&gt;</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"  =&gt; [(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'>-&gt;</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'>&amp;&amp;&amp;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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><a name="fromJustErr"></a><span class='definition'>fromJustErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>-<a name="line-398"></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-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="readWDefault"></a><span class='definition'>readWDefault</span> <span class='keyglyph'>::</span> <span class='conid'>Read</span> <span class='varid'>a</span> <span class='keyglyph'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>-<a name="line-401"></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-400"></a><a name="fromJustErr"></a><span class='definition'>fromJustErr</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</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><span class='comment'>--------------------------- </span>+<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'>=&gt;</span> <span class='varid'>a</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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 view
@@ -16,497 +16,496 @@ <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: Compilation.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $-<a name="line-12"></a>-<a name="line-13"></a>   The compilation functions for XSLT 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'>Compilation</span> -<a name="line-20"></a>    <span class='layout'>(</span> <span class='varid'>prepareXSLTDocument</span>        <span class='comment'>-- :: XmlTree -&gt; XmlTree</span>-<a name="line-21"></a>    <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>         <span class='comment'>-- :: XmlTree -&gt; [CompiledStylesheet] -&gt; CompiledStylesheet</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'>Monad</span>-<a name="line-26"></a>-<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><span class='keyword'>import</span> <span class='conid'>Data</span><span class='varop'>.</span><span class='conid'>Either</span>-<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='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-31"></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-32"></a>-<a name="line-33"></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-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'>XSLT</span><span class='varop'>.</span><span class='conid'>Common</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'>Names</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'>XSLT</span><span class='varop'>.</span><span class='conid'>CompiledStylesheet</span>-<a name="line-38"></a>-<a name="line-39"></a><span class='comment'>-- No deep meaning just a shortcut notation for a *very* common expression...</span>-<a name="line-40"></a>-<a name="line-41"></a><span class='keyword'>infixl</span> <span class='num'>9</span> <span class='varop'>&gt;&lt;</span>-<a name="line-42"></a>-<a name="line-43"></a><a name="><"></a><span class='layout'>(</span><span class='varop'>&gt;&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>-<a name="line-44"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>&gt;&lt;</span> <span class='varid'>node</span>-<a name="line-45"></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-46"></a>-<a name="line-47"></a><span class='comment'>-- --------------------------</span>-<a name="line-48"></a>-<a name="line-49"></a><a name="parseExpr"></a><span class='definition'>parseExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Expr</span>-<a name="line-50"></a><span class='definition'>parseExpr</span> <span class='varid'>uris</span> <span class='varid'>selectStr</span>-<a name="line-51"></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-52"></a>    <span class='keyword'>where</span>-<a name="line-53"></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='conid'>Map</span><span class='varop'>.</span><span class='varid'>toList</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-54"></a>-<a name="line-55"></a><a name="parseSelect"></a><span class='definition'>parseSelect</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SelectExpr</span>-<a name="line-56"></a><span class='definition'>parseSelect</span> <span class='varid'>uris</span>-<a name="line-57"></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-58"></a>-<a name="line-59"></a><a name="parseTest"></a><span class='definition'>parseTest</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>TestExpr</span>-<a name="line-60"></a><span class='definition'>parseTest</span> <span class='varid'>uris</span>-<a name="line-61"></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-62"></a>-<a name="line-63"></a><a name="parseStringExpr"></a><span class='definition'>parseStringExpr</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>-<a name="line-64"></a><span class='definition'>parseStringExpr</span> <span class='varid'>uris</span>-<a name="line-65"></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-66"></a>-<a name="line-67"></a><a name="parseMatch"></a><span class='definition'>parseMatch</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>MatchExpr</span>-<a name="line-68"></a><span class='definition'>parseMatch</span> <span class='varid'>uris</span> <span class='varid'>str</span>-<a name="line-69"></a>    <span class='keyglyph'>=</span> <span class='keyword'>if</span> <span class='varid'>isMatchExpr</span> <span class='varid'>expr</span>-<a name="line-70"></a>      <span class='keyword'>then</span> <span class='conid'>MatchExpr</span> <span class='varid'>expr</span>-<a name="line-71"></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-72"></a>    <span class='keyword'>where</span> -<a name="line-73"></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-74"></a>-<a name="line-75"></a><span class='comment'>-- --------------------------</span>-<a name="line-76"></a>-<a name="line-77"></a><a name="parseAVT"></a><span class='definition'>parseAVT</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>StringExpr</span>-<a name="line-78"></a><span class='definition'>parseAVT</span> <span class='varid'>uris</span> <span class='varid'>str</span> <span class='keyglyph'>=</span> -<a name="line-79"></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-80"></a>  <span class='keyword'>where</span>-<a name="line-81"></a>-<a name="line-82"></a>    <span class='varid'>splitAVT</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span>-<a name="line-83"></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-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='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-86"></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-87"></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'>&amp;&amp;</span> <span class='varid'>head</span> <span class='varid'>rest</span> <span class='varop'>==</span> <span class='chr'>'}'</span>-<a name="line-88"></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-89"></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-90"></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-91"></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-92"></a>-<a name="line-93"></a>    <span class='varid'>acc2lit</span> <span class='keyglyph'>::</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Expr</span><span class='keyglyph'>]</span> -<a name="line-94"></a>    <span class='varid'>acc2lit</span> <span class='str'>""</span>  <span class='keyglyph'>=</span> <span class='conid'>[]</span>-<a name="line-95"></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-96"></a>-<a name="line-97"></a><span class='comment'>-- --------------------------</span>-<a name="line-98"></a>-<a name="line-99"></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-100"></a><span class='definition'>compileComputedQName</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>ComputedQName</span>-<a name="line-101"></a><span class='definition'>compileComputedQName</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-102"></a>    <span class='layout'>(</span><span class='conid'>CompQName</span><span class='varop'>&gt;&lt;</span><span class='varid'>node</span><span class='layout'>)</span> <span class='varid'>nameAVT</span> <span class='varid'>nsAVT</span>-<a name="line-103"></a>  <span class='keyword'>where</span> -<a name="line-104"></a>    <span class='varid'>nameAVT</span>  <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</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-105"></a>    <span class='varid'>nsAVT</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</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-106"></a>-<a name="line-107"></a><span class='comment'>-- --------------------------</span>-<a name="line-108"></a>-<a name="line-109"></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'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-110"></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-111"></a>-<a name="line-112"></a><a name="compileMessage"></a><span class='definition'>compileMessage</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-113"></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-114"></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-115"></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-116"></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-117"></a>-<a name="line-118"></a><a name="compileForEach"></a><span class='definition'>compileForEach</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-119"></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-120"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>       <span class='keyglyph'>=</span> <span class='varid'>parseSelect</span><span class='varop'>&gt;&lt;</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-121"></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-122"></a>        <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>cnt</span>-<a name="line-123"></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-124"></a>-<a name="line-125"></a><a name="compileChoose"></a><span class='definition'>compileChoose</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-126"></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-127"></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-128"></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-129"></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-130"></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-131"></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-132"></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-133"></a>-<a name="line-134"></a><a name="compileWhen"></a><span class='definition'>compileWhen</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>-<a name="line-135"></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-136"></a>  <span class='keyword'>where</span> <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseTest</span><span class='varop'>&gt;&lt;</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-137"></a>-<a name="line-138"></a><a name="compileOtherwise"></a><span class='comment'>-- Otherwise is treated as a when-Part with node-test "true()"</span>-<a name="line-139"></a><span class='definition'>compileOtherwise</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>When</span>-<a name="line-140"></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-141"></a>-<a name="line-142"></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-143"></a><span class='definition'>compileIf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-144"></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-145"></a>-<a name="line-146"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-147"></a>-<a name="line-148"></a><a name="parseExNames"></a><span class='definition'>parseExNames</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>ExName</span><span class='keyglyph'>]</span>-<a name="line-149"></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-150"></a>-<a name="line-151"></a><a name="compileElement"></a><span class='definition'>compileElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-152"></a><span class='definition'>compileElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-153"></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-154"></a>  <span class='keyword'>where</span> -<a name="line-155"></a>    <span class='varid'>compQName</span>   <span class='keyglyph'>=</span> <span class='varid'>compileComputedQName</span> <span class='varid'>node</span>-<a name="line-156"></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'>&gt;&lt;</span><span class='varid'>node</span>-<a name="line-157"></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-158"></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-159"></a>-<a name="line-160"></a><a name="compileAttribute"></a><span class='definition'>compileAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-161"></a><span class='definition'>compileAttribute</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-162"></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-163"></a>-<a name="line-164"></a><a name="compileText"></a><span class='comment'>-- compiles xsl:text</span>-<a name="line-165"></a><span class='definition'>compileText</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-166"></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-167"></a>-<a name="line-168"></a><a name="compileTextnode"></a><span class='comment'>-- compiles textNode </span>-<a name="line-169"></a><span class='definition'>compileTextnode</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-170"></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-171"></a>-<a name="line-172"></a><a name="compileValueOf"></a><span class='definition'>compileValueOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-173"></a><span class='definition'>compileValueOf</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-174"></a>    <span class='conid'>TemplValueOf</span> <span class='varop'>$</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</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-175"></a>-<a name="line-176"></a><a name="compileComment"></a><span class='definition'>compileComment</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-177"></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-178"></a>-<a name="line-179"></a><a name="compileProcInstr"></a><span class='definition'>compileProcInstr</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-180"></a><span class='definition'>compileProcInstr</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-181"></a>   <span class='conid'>TemplProcInstr</span> <span class='varid'>name</span> <span class='varid'>content</span>-<a name="line-182"></a>  <span class='keyword'>where</span>-<a name="line-183"></a>    <span class='varid'>name</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</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-184"></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-185"></a>-<a name="line-186"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-187"></a>-<a name="line-188"></a><a name="compileLiteralResultElement"></a><span class='definition'>compileLiteralResultElement</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-189"></a><span class='definition'>compileLiteralResultElement</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-190"></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-191"></a>  <span class='keyword'>where</span> -<a name="line-192"></a>    <span class='varid'>nsUris</span>             <span class='keyglyph'>=</span> <span class='varid'>extractAddUris</span> <span class='varid'>node</span>-<a name="line-193"></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-194"></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'>&gt;&lt;</span><span class='varid'>node</span> <span class='varop'>$</span> <span class='varid'>attrSetsStr</span>-<a name="line-195"></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-196"></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-197"></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'>&gt;&lt;</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-198"></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-199"></a>-<a name="line-200"></a><a name="compileLREAttribute"></a><span class='definition'>compileLREAttribute</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>Template</span>-<a name="line-201"></a><span class='definition'>compileLREAttribute</span> <span class='varid'>uris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-202"></a>    <span class='keyword'>if</span> <span class='varid'>isSpecial</span> -<a name="line-203"></a>      <span class='keyword'>then</span> <span class='conid'>Nothing</span>-<a name="line-204"></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-205"></a>  <span class='keyword'>where</span> -<a name="line-206"></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-207"></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-208"></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-209"></a>-<a name="line-210"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-211"></a>-<a name="line-212"></a><a name="compileApplyTempl"></a><span class='definition'>compileApplyTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-213"></a><span class='definition'>compileApplyTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-214"></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-215"></a>  <span class='keyword'>where</span>-<a name="line-216"></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'>&gt;&lt;</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-217"></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'>&gt;&lt;</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-218"></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-219"></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-220"></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-221"></a>-<a name="line-222"></a><a name="compileApplyImports"></a><span class='definition'>compileApplyImports</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-223"></a><span class='definition'>compileApplyImports</span> <span class='sel'>_node</span>-<a name="line-224"></a>    <span class='keyglyph'>=</span> <span class='conid'>TemplApplyImports</span>-<a name="line-225"></a>-<a name="line-226"></a><a name="compileCallTempl"></a><span class='definition'>compileCallTempl</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-227"></a><span class='definition'>compileCallTempl</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-228"></a>    <span class='conid'>TemplCall</span> <span class='varid'>name</span> <span class='varid'>args</span>-<a name="line-229"></a>  <span class='keyword'>where</span>-<a name="line-230"></a>    <span class='varid'>name</span> <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</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-231"></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-232"></a>-<a name="line-233"></a><a name="compileTemplVariable"></a><span class='definition'>compileTemplVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-234"></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-235"></a>-<a name="line-236"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-237"></a>-<a name="line-238"></a><a name="compileCopy"></a><span class='definition'>compileCopy</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-239"></a><span class='definition'>compileCopy</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-240"></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-241"></a>  <span class='keyword'>where</span>-<a name="line-242"></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'>&gt;&lt;</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-243"></a>-<a name="line-244"></a><a name="compileCopyOf"></a><span class='definition'>compileCopyOf</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-245"></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'>&gt;&lt;</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-246"></a>-<a name="line-247"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-248"></a>-<a name="line-249"></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'>-&gt;</span> <span class='conid'>Template</span>-<a name="line-250"></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-251"></a>   <span class='keyword'>if</span> <span class='varid'>isElem</span> <span class='varid'>node</span>-<a name="line-252"></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-253"></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-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'>xsltForEach</span>        <span class='keyword'>then</span> <span class='varid'>compileForEach</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'>xsltChoose</span>         <span class='keyword'>then</span> <span class='varid'>compileChoose</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'>xsltIf</span>             <span class='keyword'>then</span> <span class='varid'>compileIf</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'>xsltElement</span>        <span class='keyword'>then</span> <span class='varid'>compileElement</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'>xsltAttribute</span>      <span class='keyword'>then</span> <span class='varid'>compileAttribute</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'>xsltText</span>           <span class='keyword'>then</span> <span class='varid'>compileText</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'>xsltValueOf</span>        <span class='keyword'>then</span> <span class='varid'>compileValueOf</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'>xsltComment</span>        <span class='keyword'>then</span> <span class='varid'>compileComment</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'>xsltProcInstr</span>      <span class='keyword'>then</span> <span class='varid'>compileProcInstr</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'>xsltApplyTemplates</span> <span class='keyword'>then</span> <span class='varid'>compileApplyTempl</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'>xsltApplyImports</span>   <span class='keyword'>then</span> <span class='varid'>compileApplyImports</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'>xsltCallTemplate</span>   <span class='keyword'>then</span> <span class='varid'>compileCallTempl</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'>xsltVariable</span>       <span class='keyword'>then</span> <span class='varid'>compileTemplVariable</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'>xsltCopy</span>           <span class='keyword'>then</span> <span class='varid'>compileCopy</span>          <span class='varid'>node</span>-<a name="line-268"></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-269"></a>-<a name="line-270"></a>        <span class='comment'>-- no other xslt elements allowed here:</span>-<a name="line-271"></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-272"></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-273"></a>-<a name="line-274"></a>        <span class='comment'>-- for now all other elements will be considered as Literal Result Elements</span>-<a name="line-275"></a>        <span class='keyword'>else</span> <span class='varid'>compileLiteralResultElement</span> <span class='varid'>node</span>-<a name="line-276"></a>-<a name="line-277"></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-278"></a>-<a name="line-279"></a>   <span class='keyword'>else</span>-<a name="line-280"></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-281"></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-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 -&gt; XmlTree</span>+<a name="line-20"></a>    <span class='layout'>,</span> <span class='varid'>assembleStylesheet</span>         <span class='comment'>-- :: XmlTree -&gt; [CompiledStylesheet] -&gt; 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'>&gt;&lt;</span>+<a name="line-41"></a>+<a name="line-42"></a><a name="><"></a><span class='layout'>(</span><span class='varop'>&gt;&lt;</span><span class='layout'>)</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlNode</span> <span class='varid'>n</span> <span class='keyglyph'>=&gt;</span> <span class='layout'>(</span><span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span> <span class='layout'>)</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>n</span> <span class='keyglyph'>-&gt;</span> <span class='varid'>a</span>+<a name="line-43"></a><a name="f"></a><span class='definition'>f</span> <span class='varop'>&gt;&lt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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>-<a name="line-284"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-285"></a><span class='comment'>-- Assembling of the entire stylesheet</span>-<a name="line-286"></a>-<a name="line-287"></a><a name="assembleStylesheet"></a><span class='definition'>assembleStylesheet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>CompiledStylesheet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>CompiledStylesheet</span>-<a name="line-288"></a><span class='definition'>assembleStylesheet</span> <span class='varid'>xslNode</span> <span class='varid'>imports</span> <span class='keyglyph'>=</span>-<a name="line-289"></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-290"></a>  <span class='keyword'>where</span> -<a name="line-291"></a>    <span class='comment'>-- entire contents:</span>-<a name="line-292"></a>    <span class='layout'>(</span><span class='varid'>namedRules</span><span class='layout'>,</span>    -<a name="line-293"></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-294"></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-295"></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-296"></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-297"></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-298"></a>-<a name="line-299"></a>    <span class='comment'>-- element content:</span>-<a name="line-300"></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-301"></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-302"></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'>-&gt;</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-303"></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-304"></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-305"></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-306"></a>-<a name="line-307"></a>    <span class='comment'>-- imported stuff:</span>-<a name="line-308"></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-309"></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-310"></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-311"></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-312"></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-313"></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-314"></a>    <span class='varid'>revImports</span>            <span class='keyglyph'>=</span> <span class='varid'>reverse</span> <span class='varid'>imports</span>-<a name="line-315"></a>-<a name="line-316"></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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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-317"></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-318"></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-319"></a>  <span class='keyword'>where</span>-<a name="line-320"></a>  -<a name="line-321"></a>  <span class='comment'>-- matches:  </span>-<a name="line-322"></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-323"></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-324"></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-325"></a>-<a name="line-326"></a>  <span class='comment'>-- procedures:</span>-<a name="line-327"></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-328"></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-329"></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-330"></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-331"></a>-<a name="line-332"></a>  <span class='comment'>-- compile all xsl:template's:</span>-<a name="line-333"></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-334"></a>-<a name="line-335"></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'>-&gt;</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'>-&gt;</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-336"></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-337"></a>-<a name="line-338"></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'>-&gt;</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'>-&gt;</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-339"></a><span class='definition'>assembleAttrSets</span> <span class='varid'>attsetElems</span> <span class='keyglyph'>=</span>-<a name="line-340"></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-341"></a>  <span class='keyword'>where</span>-<a name="line-342"></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-343"></a>                            <span class='varop'>$</span> <span class='varid'>map</span> <span class='varid'>compileAttributeSet</span> <span class='varid'>attsetElems</span>-<a name="line-344"></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-345"></a>-<a name="line-346"></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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span>-<a name="line-347"></a><span class='definition'>assembleStrips</span> <span class='varid'>stripElems</span> <span class='varid'>preserveElems</span> <span class='keyglyph'>=</span>-<a name="line-348"></a>    <span class='layout'>(</span><span class='varid'>localStrips</span> <span class='conop'>:</span><span class='layout'>)</span>-<a name="line-349"></a>  <span class='keyword'>where</span>-<a name="line-350"></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-351"></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-352"></a>                  <span class='varop'>$</span> <span class='conid'>Map</span><span class='varop'>.</span><span class='varid'>empty</span>-<a name="line-353"></a>-<a name="line-354"></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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NSAliasing</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>NSAliasing</span>-<a name="line-355"></a><span class='definition'>assembleAliases</span> <span class='varid'>nsAliasElems</span> <span class='keyglyph'>=</span>-<a name="line-356"></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-357"></a>  <span class='keyword'>where</span>-<a name="line-358"></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-359"></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'>&gt;&lt;</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-360"></a>-<a name="line-361"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-362"></a>-<a name="line-363"></a><a name="compileRule"></a><span class='comment'>-- compile a rule from an xsl:template element.</span>-<a name="line-364"></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-365"></a><span class='comment'>-- The first argument is needed for xsl:apply-imports and contains</span>-<a name="line-366"></a><span class='comment'>-- a list of all subsequently imported rules</span>-<a name="line-367"></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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-368"></a><span class='definition'>compileRule</span> <span class='varid'>imports</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-369"></a>-<a name="line-370"></a>    <span class='keyword'>if</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>name</span> -<a name="line-371"></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-372"></a>-<a name="line-373"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>mode</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> -<a name="line-374"></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-375"></a>-<a name="line-376"></a>    <span class='keyword'>else</span> <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>priority</span> <span class='varop'>&amp;&amp;</span> <span class='varid'>isNothing</span> <span class='varid'>match</span> -<a name="line-377"></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-378"></a>-<a name="line-379"></a>    <span class='keyword'>else</span> -<a name="line-380"></a>      <span class='layout'>(</span>-<a name="line-381"></a>        <span class='varid'>liftM</span> <span class='layout'>(</span><span class='keyglyph'>\</span><span class='varid'>n</span> <span class='keyglyph'>-&gt;</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-382"></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-383"></a>      <span class='layout'>)</span> -<a name="line-384"></a>-<a name="line-385"></a>  <span class='keyword'>where</span>-<a name="line-386"></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'>&gt;&lt;</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-387"></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'>&gt;&lt;</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-388"></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-389"></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'>&gt;&lt;</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-390"></a>    <span class='varid'>template</span>   <span class='keyglyph'>=</span> <span class='varid'>compileTemplate</span> <span class='varid'>content</span>-<a name="line-391"></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-392"></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-393"></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-394"></a>-<a name="line-395"></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'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>MatchExpr</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span>-<a name="line-396"></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-397"></a>    <span class='keyword'>if</span> <span class='varid'>isJust</span> <span class='varid'>pri</span>-<a name="line-398"></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-399"></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-400"></a>  <span class='keyword'>where</span> -<a name="line-401"></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-402"></a>-<a name="line-403"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-404"></a>-<a name="line-405"></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'>-&gt;</span> <span class='conid'>Map</span> <span class='conid'>ExName</span> <span class='conid'>Variable</span>-<a name="line-406"></a><span class='definition'>compileVariables</span> <span class='varid'>nodes</span> <span class='keyglyph'>=</span>-<a name="line-407"></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-408"></a>  <span class='keyword'>where</span>-<a name="line-409"></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-410"></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-411"></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-412"></a>-<a name="line-413"></a><a name="compileVariable"></a><span class='definition'>compileVariable</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Variable</span>-<a name="line-414"></a><span class='definition'>compileVariable</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-415"></a>    <span class='conid'>MkVar</span> <span class='varid'>modus</span> <span class='varid'>name</span> <span class='varid'>exprOrRtf</span>-<a name="line-416"></a>  <span class='keyword'>where</span> -<a name="line-417"></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-418"></a>    <span class='varid'>name</span>      <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</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-419"></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-420"></a>                <span class='keyword'>then</span> <span class='conid'>Left</span> <span class='varop'>$</span> <span class='varid'>parseExpr</span><span class='varop'>&gt;&lt;</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-421"></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-422"></a>-<a name="line-423"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-424"></a>-<a name="line-425"></a><a name="compileAttributeSet"></a><span class='definition'>compileAttributeSet</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>AttributeSet</span>-<a name="line-426"></a><span class='definition'>compileAttributeSet</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-427"></a>    <span class='conid'>AttribSet</span> <span class='varid'>name</span> <span class='varid'>usedsets</span> <span class='varid'>template</span>-<a name="line-428"></a>  <span class='keyword'>where</span>-<a name="line-429"></a>    <span class='varid'>name</span>     <span class='keyglyph'>=</span> <span class='varid'>parseExName</span><span class='varop'>&gt;&lt;</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-430"></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'>&gt;&lt;</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-431"></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-432"></a>-<a name="line-433"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-434"></a>-<a name="line-435"></a><a name="compileSortKey"></a><span class='definition'>compileSortKey</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>SortKey</span>-<a name="line-436"></a><span class='definition'>compileSortKey</span> <span class='varid'>node</span> <span class='keyglyph'>=</span>-<a name="line-437"></a>    <span class='conid'>SortK</span> <span class='varid'>expr</span> <span class='varid'>dataType</span> <span class='varid'>order</span>-<a name="line-438"></a>  <span class='keyword'>where</span>-<a name="line-439"></a>    <span class='varid'>expr</span>     <span class='keyglyph'>=</span> <span class='varid'>parseStringExpr</span><span class='varop'>&gt;&lt;</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-440"></a>    <span class='varid'>dataType</span> <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</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-441"></a>    <span class='varid'>order</span>    <span class='keyglyph'>=</span> <span class='varid'>parseAVT</span><span class='varop'>&gt;&lt;</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-442"></a>-<a name="line-443"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-444"></a>-<a name="line-445"></a><a name="parseNTests"></a><span class='definition'>parseNTests</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>-<a name="line-446"></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-447"></a>-<a name="line-448"></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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NTest</span><span class='keyglyph'>]</span>-<a name="line-449"></a><span class='definition'>compileStrips</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> <span class='varid'>parseNTests</span><span class='varop'>&gt;&lt;</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-450"></a><a name="compilePreserves"></a><span class='definition'>compilePreserves</span> <span class='keyglyph'>=</span> <span class='varid'>compileStrips</span>-<a name="line-451"></a>-<a name="line-452"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-453"></a>-<a name="line-454"></a><a name="compileAlias"></a><span class='definition'>compileAlias</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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-455"></a><span class='definition'>compileAlias</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-456"></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-457"></a>-<a name="line-458"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-459"></a><span class='comment'>-- Document level preprocessing</span>-<a name="line-460"></a>-<a name="line-461"></a><a name="prepareXSLTDocument"></a><span class='definition'>prepareXSLTDocument</span>	<span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-462"></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-463"></a>-<a name="line-464"></a><a name="removePiCmt"></a><span class='definition'>removePiCmt</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-465"></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'>-&gt;</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'>&amp;&amp;</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-466"></a>-<a name="line-467"></a><span class='comment'>-- Expand exclude-result-prefixes AND extension-element-prefixes</span>-<a name="line-468"></a>-<a name="line-469"></a><a name="expandExEx"></a><span class='definition'>expandExEx</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>XmlTree</span>-<a name="line-470"></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-471"></a>-<a name="line-472"></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'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</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-473"></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-474"></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-475"></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-476"></a>  <span class='keyword'>where</span>-<a name="line-477"></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-478"></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-479"></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-480"></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'>&gt;&lt;</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-481"></a>    <span class='varid'>extNew</span>     <span class='keyglyph'>=</span>             <span class='varid'>parsePreList</span><span class='varop'>&gt;&lt;</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-482"></a>    <span class='layout'>(</span><span class='varid'>nameExcl</span><span class='layout'>,</span>-<a name="line-483"></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-484"></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-485"></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-486"></a>-<a name="line-487"></a><span class='comment'>-- parse a prefix list, create a list of uris: </span>-<a name="line-488"></a><span class='comment'>-- "pre1 pre2 pre3" -&gt; ["pre1.uri","pre2.uri","pre3.uri"]</span>-<a name="line-489"></a>-<a name="line-490"></a><a name="parsePreList"></a><span class='definition'>parsePreList</span> <span class='keyglyph'>::</span> <span class='conid'>UriMapping</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>String</span><span class='keyglyph'>]</span>-<a name="line-491"></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-492"></a>-<a name="line-493"></a><span class='comment'>-- -----------------------------------</span>-<a name="line-494"></a><span class='comment'>-- Extraction of contextual Information from an XML-Node</span>-<a name="line-495"></a>-<a name="line-496"></a><a name="extractAddUris"></a><span class='definition'>extractAddUris</span> <span class='keyglyph'>::</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>UriMapping</span>-<a name="line-497"></a><span class='definition'>extractAddUris</span> <span class='varid'>node</span> <span class='keyglyph'>=</span> -<a name="line-498"></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'>&gt;&lt;</span><span class='varid'>node</span>-<a name="line-499"></a>  <span class='keyword'>where</span>-<a name="line-500"></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-501"></a>-<a name="line-502"></a><span class='comment'>-- -----------------------------------</span>+<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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>CompiledStylesheet</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>XmlTree</span><span class='keyglyph'>]</span><span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Strips</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>NSAliasing</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</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'>&gt;&lt;</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'>-&gt;</span> <span class='conid'>XmlTree</span> <span class='keyglyph'>-&gt;</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'>&amp;&amp;</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'>&amp;&amp;</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'>&amp;&amp;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</span> <span class='conid'>Maybe</span> <span class='conid'>ExName</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>MatchRule</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='keyglyph'>[</span><span class='conid'>Variable</span><span class='keyglyph'>]</span> <span class='keyglyph'>-&gt;</span> <span class='conid'>Template</span> <span class='keyglyph'>-&gt;</span>  <span class='conid'>MatchExpr</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>&gt;&lt;</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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>-&gt;</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'>&amp;&amp;</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'>-&gt;</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'>-&gt;</span> <span class='conid'>XNode</span> <span class='keyglyph'>-&gt;</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'>&gt;&lt;</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'>&gt;&lt;</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" -&gt; ["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'>-&gt;</span> <span class='conid'>String</span> <span class='keyglyph'>-&gt;</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'>-&gt;</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'>&gt;&lt;</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/index.html view
@@ -1,12 +1,12 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>-    <title>Haskell XML Toolbox 8.2.0</title>+    <title>Haskell XML Toolbox 8.3.0</title>     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">   </head>    <body style="background-color: #ffffff;">-    <h1>Haskell XML Toolbox 8.2.0</h1>+    <h1>Haskell XML Toolbox 8.3.0</h1>      <h3>Contents</h3>     <ul>@@ -159,7 +159,7 @@     <p>       The description of the development of the <a href="http://www.w3.org/TR/xpath">XPath</a> modules       is described (in german) in <em>Konzeption und Implementierung-	eines XPath-Moduls für die Haskell XML Toolbox</em>+	eines XPath-Moduls f&uuml;r die Haskell XML Toolbox</em>       (<a href="./hxpath/diplomarbeit.pdf">PDF-document</a>).     </p> @@ -185,8 +185,8 @@     <a name="down"></a>     <h3>Downloads</h3>     <p>-      <a href="hxt-8.2.0.tar.gz">Haskell XML Toolbox 8.2.0</a>,-      released 2008-11-20:+      <a href="hxt-8.3.0.tar.gz">Haskell XML Toolbox 8.3.0</a>,+      released 2009-03-18:     </p>     <ul>       <li>This version works with ghc 6.10 with cabal 1.6.@@ -225,13 +225,12 @@     <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.2.0</tt>+      <tt>.../HXT-8.3.0</tt>     </p>     <pre>-    make setup-    ./setup configure --ghc-    ./setup build-    ./setup install		# with root privileges+    cabal configure+    cabal build+    sudo cabal install --global     </pre>     <p>       A quick test of the example programs:@@ -252,6 +251,27 @@     <a name="change"></a>     <h3>Change History</h3>     <ul>+      <li>In <a href="hxt-8.3.0.tar.gz">Version 8.3.0</a>+	<ul>+	  <li>+	    New output option "a_no_empty_elements" for preventing+	    the XML short format "&lt;name/&gt;" for HTML elements,+	    like "script", "p", and others. Especially a script tag+	    of the form "&lt;script href="..."/&gt;" does not work in+	    firefox.+	    Turning on this option gives the form "&lt;script href="..."&gt;&lt;/script&gt;".+	  </li>+	  <li>+	    An input option "a_strict_input" for bytestring input of+	    files added. Lazy input, especially when using the tagsoup+	    parser, can lead to error messages like "too many open+	    files" when processing a whole bunsh of documents.+	  </li>+	  <li>Internal representation of qualified names changed to gain+	    more space efficency.+	  </li>+	</ul>+      </li>       <li>In <a href="hxt-8.2.0.tar.gz">Version 8.2.0</a> 	<ul> 	  <li>@@ -512,7 +532,7 @@       The filter package will not be actively developed any more.       Please move to the arrow version for long term projects.       Installation works with cabal in the usual way.-      Download archive is <a href="hxt-filter-8.2.0.tar.gz">hxt-filter-8.2.0.tar.gz</a>,+      Download archive is <a href="hxt-filter-8.3.0.tar.gz">hxt-filter-8.3.0.tar.gz</a>,       <em><a href="./hdoc-filter/index.html">HXT Filter API Documentation</a></em>       with source links is availabe as well as a       darcs repository under <a href="http://darcs2.fh-wedel.de/repos/hxt-filter/">http://darcs2.fh-wedel.de/repos/hxt-filter</a>.@@ -570,7 +590,7 @@ 	    </a> 	  </td> 	</tr>-	<tr><td><i>Last modified: 2008-11-20</i></td><td>&nbsp;</td></tr>+	<tr><td><i>Last modified: 2009-03-18</i></td><td>&nbsp;</td></tr>     </table>    </body>
examples/arrows/Makefile view
@@ -9,7 +9,7 @@ 		hrelaxng \ 		RelaxTestSuite \ 		AGentleIntroductionToHXT \-		performance+		performance RegexXMLSchema  HXT_HOME	= ../.. PKGFLAGS	=
+ examples/arrows/RegexXMLSchema/Makefile view
@@ -0,0 +1,128 @@+# $Id: Makefile,v 1.9 2006/11/11 15:36:03 hxml Exp $++HXT_HOME	= ../../..+PKGFLAGS	= +GHCFLAGS	= -Wall -O2+GHC		= ghc $(GHCFLAGS) $(PKGFLAGS)++DIST		= $(HXT_HOME)/dist/examples/arrows+DIST_DIR	= $(DIST)/RegexXMLSchema++CNT		= 3++ropts		= +RTS -s -RTS ++prog		= ./REtest+prog2		= ./Lines+prog3		= ./RElines+prog4		= ./Words+prog5		= ./REwords+prog0		= ./Copy++progs		= $(prog) $(prog0) $(prog2) $(prog3) $(prog4) $(prog5)++all		: $(progs)++$(prog)		: $(prog).hs+		$(GHC) --make -o $@ $<++local		:+		$(GHC) --make -o $(prog) -fglasgow-exts -ignore-package hxt -i../../../src $(prog).hs++$(prog2)	: $(prog)+		ln -f $(prog) $(prog2)++$(prog3)	: $(prog)+		ln -f $(prog) $(prog3)++$(prog4)	: $(prog)+		ln -f $(prog) $(prog4)++$(prog5)	: $(prog)+		ln -f $(prog) $(prog5)++$(prog0)	: $(prog)+		ln -f $(prog) $(prog0)++# generate and read documents containing a binary tree+# with 2^i leaf nodes containing the numbers 1 to 2^i+# for i up to at least 22 (8M XML elements) output works fine+# for i up to 19 (1M XML elements) input works without swapping+# with i=20 swapping starts, but the program it still terminates+# the size of the XML file for i=20 is about 36Mb+# these tests have run on a box with 1Gb memory++tests		= 18++test		: $(prog)+		$(MAKE) genfiles   tests="$(tests)"+		$(MAKE) copy       tests="$(tests)"+		$(MAKE) lines      tests="$(tests)"+		$(MAKE) relines    tests="$(tests)"+		$(MAKE) words      tests="$(tests)"+		$(MAKE) rewords    tests="$(tests)"++perftest	: $(prog)+		$(MAKE) test tests="2 3 10 11 12 13 14 15 16 17 18 19 20"++genfiles	:+		@for i in $(tests) ; \+		do \+		echo time $(prog) $(ropts) $$i ; \+		time $(prog) $(ropts) $$i ; \+		ls -l tree-*$$i.xml ; \+		echo ; \+		done++copy	:+		@for i in $(tests) ; \+		do \+		echo time $(prog0) $(ropts) $$i ; \+		time $(prog0) $(ropts) $$i ; \+		ls -l tree-*$$i.xml.copy ; \+		echo ; \+		done++lines	:+		@for i in $(tests) ; \+		do \+		echo time $(prog2) $(ropts) $$i ; \+		time $(prog2) $(ropts) $$i ; \+		ls -l tree-*$$i.xml.lines ; \+		echo ; \+		done++relines	:+		@for i in $(tests) ; \+		do \+		echo time $(prog3) $(ropts) $$i ; \+		time $(prog3) $(ropts) $$i ; \+		ls -l tree-*$$i.xml.relines ; \+		echo ; \+		done++words	:+		@for i in $(tests) ; \+		do \+		echo time $(prog4) $(ropts) $$i ; \+		time $(prog4) $(ropts) $$i ; \+		ls -l tree-*$$i.xml.words ; \+		echo ; \+		done++rewords	:+		@for i in $(tests) ; \+		do \+		echo time $(prog5) $$i ; \+		time $(prog5) $(ropts) $$i ; \+		ls -l tree-*$$i.xml.rewords ; \+		echo ; \+		done++dist		:+		[ -d $(DIST_DIR) ] || mkdir -p $(DIST_DIR)+		cp Makefile REtest.hs $(DIST_DIR)++clean		:+		rm -f $(progs) *.o *.hi *.xml *.xml.*+
+ examples/arrows/RegexXMLSchema/REtest.hs view
@@ -0,0 +1,172 @@+{-# LANGUAGE BangPatterns#-}++-- ----------------------------------------++module Main(main)+where++import Text.XML.HXT.Arrow+import Text.XML.HXT.RelaxNG.XmlSchema.RegexMatch++import Text.XML.HXT.DOM.Unicode+    ( unicodeToXmlEntity+    )++import Control.Monad.State.Strict hiding (when)++import Data.List+import Data.Maybe++import System.IO			-- import the IO and commandline option stuff+import System.Environment++-- ----------------------------------------++main	:: IO ()+main+    = do+      p  <- getProgName+      al <- getArgs+      let i = if null al+	      then 4+	      else (read . head $ al)::Int+      main' p i+    where+    main' p' = fromMaybe main1 . lookup (pn p') $ mpt+    mpt = [ ("REtest",	   main1)+	  , ("Copy",       main2 "copy"    (:[]))+	  , ("Lines",      main2 "lines"   lines)+	  , ("RElines",    main2 "relines" relines)+	  , ("Words",      main2 "words"   words)+	  , ("REwords",    main2 "rewords" rewords)+	  ]++-- ----------------------------------------++-- generate a document containing a binary tree of 2^i leafs (= 2^(i-1) XML elements)++main1	:: Int -> IO ()+main1 i+    = do+      runX (genDoc i (fn i))+      return ()++-- ----------------------------------------++-- read a document containing a binary tree of 2^i leafs++main2	:: String -> (String -> [String]) -> Int -> IO ()+main2 ext lines' i+    = do+      hPutStrLn stderr "start processing"+      h  <- openFile (fn i) ReadMode+      c  <- hGetContents h+      let ls = lines' c+      o  <- openFile (fn i ++ "." ++ ext) WriteMode+      mapM_ (hPutStrLn o) ls+      hClose o+      hClose h+      hPutStrLn stderr "end  processing"++relines		:: String -> [String]+relines		= tokenize "[^\n\r]*"++rewords		:: String -> [String]+rewords		= tokenize "[^ \t\n\r]+"++-- ----------------------------------------++pn	:: String -> String+pn	= reverse . takeWhile (/= '/') . reverse++fn	:: Int -> String+fn	= ("tree-" ++) . (++ ".xml") . reverse . take 4 . reverse . ((replicate 4 '0') ++ ) . show++-- ----------------------------------------++genDoc		:: Int -> String -> IOSArrow b XmlTree+genDoc d out    = constA (mkBTree d)+		  >>>+		  xpickleVal xpickle+		  >>>+		  indentDoc+		  >>>+		  putDoc out++-- ----------------------------------------++type Counter a	= State Int a++incr	:: Counter Int+incr	= do+	  modify (+1)+	  get++-- ----------------------------------------++data BTree	= Leaf Int+		| Fork BTree BTree+		  deriving (Show)++instance XmlPickler BTree where+    xpickle = xpAlt tag ps+	where+	tag (Leaf _	) = 0+	tag (Fork _ _	) = 1+	ps = [ xpWrap ( Leaf, \ (Leaf i) -> i)+	       ( xpElem "leaf" $ xpAttr "value" $ xpickle )++	     , xpWrap ( uncurry Fork, \ (Fork l r) -> (l, r))+	       ( xpElem "fork" $ xpPair xpickle xpickle )+	       ]++-- ----------------------------------------++mkBTree		:: Int -> BTree+mkBTree	depth	= evalState (mkT depth) 0++mkT	:: Int -> Counter BTree+mkT 0	= do+	  i <- incr+	  return (Leaf i)+mkT n	= do+	  l <- mkT (n-1)+	  r <- mkT (n-1)+	  return (Fork l r)++-- ----------------------------------------++-- output is done with low level ops to write the+-- document i a lasy manner+-- adding an xml pi and encoding is done "by hand"+-- latin1 decoding is the identity, so please generate the+-- docs with latin1 encoding. Here ist done even with ASCCI+-- every none ASCII char is represented by a char ref (&nnn;)++putDoc	:: String -> IOStateArrow s XmlTree XmlTree+putDoc dst+    = addXmlPi+      >>>+      addXmlPiEncoding isoLatin1+      >>>+      xshow getChildren+      >>>+      arr unicodeToXmlEntity+      >>>+      arrIO (\ s -> hPutDocument (\h -> hPutStrLn h s))+      >>>+      none+      where+      isStdout	= null dst || dst == "-"++      hPutDocument	:: (Handle -> IO()) -> IO()+      hPutDocument action+	  | isStdout+	      = action stdout+	  | otherwise+	      = do+		handle <- openFile dst WriteMode+		action handle+		hClose handle++-- ----------------------------------------
examples/arrows/hparser/Makefile view
@@ -37,8 +37,9 @@ EX3		= ./namespace0.xml EX3a		= ./namespace1.xml EX4		= ./lousy.html+EX4a		= ./emptyElements.html -EX		= $(wildcard example*.xml) $(wildcard lousy*.html) $(wildcard *valid*.xml *valid*.rng) $(wildcard namespace*.xml)+EX		= $(wildcard example*.xml) $(wildcard lousy*.html) $(wildcard empty*.html) $(wildcard *valid*.xml *valid*.rng) $(wildcard namespace*.xml)  test0		: 		@echo "===> a 1. simple valid document"@@ -108,6 +109,11 @@ 		$(prog) --indent --preserve-comment --parse-html $(EX4) 		@sleep 2 ; echo ; echo "===> same with lasy parser with tagsoup" ; echo ; sleep 2 		$(prog) -H -T -r --indent $(EX4)+		@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+		$(prog) --indent --preserve-comment --parse-html --output-html --no-empty-elements $(EX4a) 		@echo  
+ examples/arrows/hparser/emptyElements.html view
@@ -0,0 +1,16 @@+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">+<html>+  <head>+    <title/>+    <meta name="description" value="a lousy HTML doc with empty elements">+    <script href="javascript.js"/>+  </head>+  <body>+    <h1/>+    <h2/>+    <p/>+    <div/>+      <br/>+      <img src="pic.jpg"/>+  </body>+</html>
examples/arrows/hxpath/Makefile view
@@ -13,6 +13,9 @@ force		: 		$(GHC) --make -o $(prog) $(prog).hs +local		:+		ghc --make -o $(prog2) $(GHCFLAGS) -fglasgow-exts -ignore-package hxt -i../../../src $(prog2).hs+ $(prog)		: $(prog).hs 		$(GHC) --make -o $@ $< 
examples/arrows/hxpath/XPathShell.hs view
@@ -40,6 +40,7 @@ import Text.ParserCombinators.Parsec     ( runParser ) +type NsEnv'	= AssocList String String  main	:: IO() main@@ -50,17 +51,20 @@ 	 then evalXPath path env (head doc) 	 else evalLoop env doc -evalArgs			:: [String] -> IO (String, NsEnv, XmlTrees)+evalArgs			:: [String] -> IO (String, NsEnv', XmlTrees) evalArgs []			= evalArgs (""   : "[]" : ""  : []) evalArgs [doc]			= evalArgs (""   : "[]" : doc : []) evalArgs [path, doc]		= evalArgs (path : "[]" : doc : [])-evalArgs [path, env, ""]	= return (path, addEntries (read env) $ defaultEnv, [])+evalArgs [path, env, ""]	= return (path, buildEnv env, []) evalArgs [path, env, doc]	= do 				  (d, ne) <- loadDoc doc-				  return (path, addEntries ne $ addEntries (read env) $ defaultEnv, d)+				  return (path, addEntries ne . buildEnv $ env, d) evalArgs al			= evalArgs (take 3 al) -loadDoc		:: String -> IO ([XmlTree], NsEnv)+buildEnv			:: String -> NsEnv'+buildEnv env			= (addEntries . read $ env) $ defaultEnv++loadDoc		:: String -> IO ([XmlTree], NsEnv') loadDoc doc     = do       d <- runX ( readDocument [ (a_tagsoup, v_0)@@ -98,7 +102,7 @@ 	   )       return () -evalXPath	:: String -> NsEnv -> XmlTree -> IO()+evalXPath	:: String -> NsEnv' -> XmlTree -> IO() evalXPath path env doc     | nr == xr 	= putStrLn . unlines $ "ok: " : nr@@ -112,11 +116,11 @@ 		       ] ++ nr 	  putStrLn $ xpt path     where-    xpt = either show show . runParser parseXPath env ""+    xpt = either show show . runParser parseXPath (toNsEnv env) ""     nr = runLA (XPS.getXPathTreesWithNsEnv env path >>> xshow this) doc     xr = runLA (    getXPathTreesWithNsEnv env path >>> xshow this) doc -evalLoop	:: NsEnv -> XmlTrees -> IO ()+evalLoop	:: NsEnv' -> XmlTrees -> IO () evalLoop env doc     = do       maybeLine <- readline "xpath> "@@ -163,7 +167,7 @@ 			  (nd, nv) <- loadDoc n 			  if null nd 			     then do-				  putStrLn ("error when loading " ++ show doc)+				  putStrLn ("error when loading " ++ show n) 				  evalLoop env doc 			     else evalLoop (addEntries nv env) nd     evalCmd ws@((':':_):_)@@ -177,9 +181,9 @@ 			     else evalXPath path env (head doc) 			  evalLoop env doc -defaultEnv	:: NsEnv-defaultEnv	= [ ("xml",xmlNamespace)-		  , ("xmlns",xmlnsNamespace)-		  ]+defaultEnv		:: NsEnv'+defaultEnv		= [ ("xml",xmlNamespace)+			  , ("xmlns",xmlnsNamespace)+			  ]  -- ----------------------------------------
examples/arrows/performance/GenDoc.hs view
@@ -102,7 +102,7 @@ 		    >>> 		    arr2 (\ ma mi -> "maximum value = " ++ show ma ++ ", minimum = " ++ show mi ) 		    >>>-		    traceString 1 id+		    traceValue 1 id 		  )       putStrLn x @@ -161,7 +161,8 @@ 		   , (a_remove_whitespace, v_1) 		   , (a_encoding, isoLatin1) 		   , (a_issue_warnings, v_0)-		   , (a_trace, "1")+		   , (a_trace, v_1)+		   , (a_strict_input, v_0) 		   ] src       >>>       processChildren (isElem `guards` this)
examples/arrows/performance/Makefile view
@@ -8,6 +8,10 @@ DIST		= $(HXT_HOME)/dist/examples/arrows DIST_DIR	= $(DIST)/performance +CNT		= 3++ropts		= +RTS -s -RTS + prog		= ./GenDoc prog2		= ./ReadDoc prog3		= ./PruneRight@@ -57,7 +61,7 @@ genfiles	: 		@for i in $(tests) ; \ 		do \-		echo time $(prog) $$i ; \+		echo time $(prog) $(ropts) $$i ; \ 		time $(prog) $$i ; \ 		ls -l tree-*$$i.xml ; \ 		echo ; \@@ -66,7 +70,7 @@ readfiles	: 		@for i in $(tests) ; \ 		do \-		echo time $(prog2) $$i ; \+		echo time $(prog2) $(ropts) $$i ; \ 		time $(prog2) $$i ; \ 		echo ; \ 		done@@ -74,7 +78,7 @@ pruneright	: 		@for i in $(tests) ; \ 		do \-		echo time $(prog3) $$i ; \+		echo time $(prog3) $(ropts) $$i ; \ 		time $(prog3) $$i ; \ 		echo ; \ 		done@@ -82,7 +86,7 @@ pruneleft	: 		@for i in $(tests) ; \ 		do \-		echo time $(prog4) $$i ; \+		echo time $(prog4) $(ropts) $$i ; \ 		time $(prog4) $$i ; \ 		echo ; \ 		done@@ -91,7 +95,7 @@ 		@for i in $(tests) ; \ 		do \ 		echo time $(prog5) $$i ; \-		time $(prog5) $$i ; \+		time $(prog5) $(ropts) $$i ; \ 		echo ; \ 		done 
hxt.cabal view
@@ -1,6 +1,6 @@ -- arch-tag: Haskell XML Toolbox main description file name: hxt-version: 8.2.0+version: 8.3.0 license: OtherLicense license-file: LICENCE maintainer: Uwe Schmidt <uwe@fh-wedel.de>@@ -31,7 +31,6 @@   Data.Char.UTF8,   Data.NavTree,   Data.Tree.Class,-  Data.Tree.NTree.Filter,   Data.Tree.NTree.TypeDefs,   Text.XML.HXT.Arrow,   Text.XML.HXT.Arrow.DTDProcessing,@@ -58,7 +57,6 @@   Text.XML.HXT.DOM.IsoLatinTables,   Text.XML.HXT.DOM.MimeTypeDefaults,   Text.XML.HXT.DOM.MimeTypes,-  Text.XML.HXT.DOM.NamespacePredicates,   Text.XML.HXT.DOM.QualifiedName,   Text.XML.HXT.DOM.ShowXml,   Text.XML.HXT.DOM.TypeDefs,@@ -68,7 +66,6 @@   Text.XML.HXT.DOM.XmlKeywords,   Text.XML.HXT.DOM.XmlNode,   Text.XML.HXT.DOM.XmlOptions,-  Text.XML.HXT.DOM.XmlTreeTypes,   Text.XML.HXT.DTDValidation.AttributeValueValidation,   Text.XML.HXT.DTDValidation.DTDValidation,   Text.XML.HXT.DTDValidation.DocTransformation,
src/Control/Arrow/ArrowNF.hs view
@@ -34,3 +34,5 @@ class (Arrow a) => ArrowNF a where     rnfA	:: (NFData c) => a b c -> a b c     rnfA f	= f >>> strictA++-- ------------------------------------------------------------
− src/Data/Tree/NTree/Filter.hs
@@ -1,913 +0,0 @@--- --------------------------------------------------------------{- |-   Module     : Data.Tree.NTree.Filter-   Copyright  : Copyright (C) 2005 Uwe Schmidt-   License    : MIT--   Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)-   Stability  : experimental-   Portability: portable-   Version    : $Id: Filter.hs,v 1.6 2006/11/12 14:52:59 hxml Exp $--Filter for n-ary tree structure with filter combinators-copied and modified from HxXml (<http://www.cs.york.ac.uk/fp/HaXml/>)--Similar but more flexible functions for tree processing are defined in the-arrow classes "Control.Arrow.ArrowList", "Control.Arrow.ArrowIf", "Control.Arrow.ArrowTree" and "Control.Arrow.ArrowState".-For new applications, especially for XML processing, it's recommended to use the arrow interface-"Text.XML.HXT.Arrow" instead of this filter approach as part of the api "Text.XML.HXT.Parser"---}---- --------------------------------------------------------------module Data.Tree.NTree.Filter-    ( module Data.Tree.NTree.TypeDefs-    , TFilter-    , TSFilter-    , satisfies--    -- * Filter-    , none		-- simple filter-    , this--    , isOf-    , isOfNode		-- predicate filter--    , mkNTree		-- contructor filter--    , replaceNode	-- simple editing-    , replaceChildren--    , modifyNode-    , modifyNode0-    , modifyChildren-    , substChildren-    , processChildren	-- filter combinators--    , o-    , (.>)-    , seqF-    , (..>)-    , (+++)-    , cat--    , orElse		-- choices-    , iff		-- if then else filter-    , choice-    , IfThen(..)-    , when-    , whenNot-    , guards-    , neg		-- negation-    , containing	-- previous: with, but with is keyword in haskell extensions-    , notContaining	-- previous: without--    , (/>)		-- selectors-    , (</)-    , deep		-- recursive search-    , deepest-    , multi-    , processBottomUp	-- recursive editing-    , processBottomUpIfNot-    , processTopDown-    , processTopDownUntil-    , insertChildrenAt-    , insertChildrenAfter--      -- * Monadic Filter-    , thisM		-- monadic filter-    , noneM-    , (.>>)		-- monadic composition-    , seqM		-- generalisation of .>>-    , (+++>>)		-- monadic parallel combination, monadic +++-    , catM		-- monadic form of cat-    , ifM		-- monadic if then else-    , choiceM		-- monadic choice-    , whenM		-- special monadic ifs-    , whenNotM-    , guardsM-    , containingM-    , processChildrenM	-- monadic versions of recursive editing-    , processTopDownM-    , processBottomUpM-    , liftMf		-- lift a normal filter to a monadic filter-    , ($$)		-- apply a filter to a list-    , ($$<)		-- apply a monad filter to a list-    , performAction	-- run a command within a filter-    )--where---import Data.Tree.NTree.TypeDefs--infixl 6 `containing`, `notContaining`, `containingM`-infixr 5 `o`, +++, +++>>-infixl 5 />, </, `orElse`, .>, ..>, .>>-infixr 4 `when`, `whenNot`, `guards`, `whenM`, `whenNotM`, `guardsM`-infixr 3 :->-infixr 0 $$, $$<---- |--- tree filter type: a function mapping a tree onto a list of trees------ filter can be used in various ways, as predicates, selectors, transformers, ...--type TFilter  node	= NTree  node -> NTrees node---- |--- a filter for sequences--type TSFilter node	= NTrees node -> NTrees node---- ---------------------------------------------------------------- |--- satisfies converts a result of a predicate filter into a boolean------ is a shortcut for not . null------ typical use in guards or ifs: @if (satisfies f) t then ... else ... @------    * 1.parameter f :  the predicate filter------    - 2.parameter t :  the tree to be tested------    - returns : @b = not (null (f t))@--satisfies	:: (a -> [b]) -> a -> Bool-satisfies f	= not . null . f---- ------------------------------------------------------------------ simple filter---- |--- the null filter, returns the empty list--none		:: a -> [b]-none _		= []---- |--- the unit filter, returns the single element list containing the argument--this		:: a -> [a]-this n		= [n]---- ------------------------------------------------------------------ selecting filter---- |--- conversion from predicate function to filter------    * 1.parameter p :  the predicate for testing the tree------    - returns : 'this' or 'none' depending on the predicate--isOf		:: (a -> Bool) -> (a -> [a])-isOf p t-    = if p t then [t] else []---- |--- select filter, selects trees with node values with a specific property------    * 1.parameter p :  the predicate for testing the node value------    - returns : @[]@ or @[t]@ depending on @p t@------ a special case of 'isOf' filter--isOfNode	:: (node -> Bool) -> TFilter node-isOfNode p	= isOf (p . getNode)---- ------------------------------------------------------------------ simple editing filters---- |--- filter for substituting an arbitray tree by a constant------    * 1.parameter t :  the result tree, the input tree is ignored------    - returns : the filter--mkNTree		:: NTree node -> TFilter node-mkNTree t	= const [t]---- |--- filter for replacing the node------    * 1.parameter n :  the new node------    - returns : the editing filter--replaceNode	:: node -> TFilter node-replaceNode n (NTree _ cs)-    = [NTree n cs]---- |--- filter for replacing the children------    * 1.parameter cs :  cs the list of children------    - returns : the filter--replaceChildren	:: NTrees node -> TFilter node-replaceChildren cs (NTree n _)-    = [NTree n cs]--modifyNode	:: (node -> Maybe node) -> TFilter node-modifyNode tf (NTree n cs)-    = maybe [] (\ n' -> [NTree n' cs]) (tf n)---- |--- filter for editing the node------    * 1.parameter nf :  the XNode editing funtion------    - returns : the filter--modifyNode0	:: (node -> node) -> TFilter node-modifyNode0 tf	= modifyNode (Just . tf)---- |--- filter for editing the children------ all children are processed with a filter mapping lists to lists,--- this enables not only elementwise editing by lifting a normal--- filter to a list filter with @(f $$)@ (see '($$)') but also manipulation--- of the order of the elements, e.g. "reverse" is an appropriate childen--- editing function.------    * 1.parameter csf :  the children editing function------    - returns : the filter------ see also : 'processChildren'--modifyChildren	:: TSFilter node -> TFilter node-modifyChildren f -- (NTree n cs)-    -- = [NTree n (f cs)]-    = substChildren (f . getChildren)---- |--- filter for substituting the children of a tree by--- a new list of childen computed by applying a filter to the input tree.--- 'modifyChildren' can be expressed by 'substChildren':--- @modifyChildren f t@ is equal to @substChildren (f . getChildren)@--substChildren	:: TFilter node -> TFilter node-substChildren f t@(NTree n _cs)-    = [NTree n (f t)]---- ------------------------------------------------------------------ combinators (copied from HaXml)------- |--- sequential composition of filters, usually written in infix notation f2 `o` f1.------ for predicate filter the logical AND------    * 1.parameter f2 :  the 2. filter------    - 2.parameter f1 :  the 1. filter------    - returns : the fiter applying first f1 to n and then f2 to the result (like function composition)--o		:: (a -> [b]) -> (c -> [a]) -> (c -> [b])-f `o` g		= concatMap f . g---- |--- pronounced \"followed by\", defined as: @f .> g = g \`o\` f@.------ allows filter composition in a more readable way from left to right------    * 1.parameter f1 :  the 1. filter------    - 2.parameter f2 :  the 2. filter------    - returns : the composition of f1 and f2------ see also : 'o', '(..>)'--(.>)		:: (a -> [b]) -> (b -> [c]) -> (a -> [c])-f .> g		= g `o` f---- |--- apply a list of filters sequentially with '(.>)', for predicate filters the generalized AND------ see also : '(.>)'--seqF		:: [a -> [a]] -> (a -> [a])-seqF		= foldl (.>) this---- |--- binary parallel composition, the logical OR for predicate filter------    * 1.parameter f1 :  the 1. filter------    - 2.parameter f2 :  the 2. filter------    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results--(+++)		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])-f +++ g		= \ t -> f t ++ g t---- |--- special sequential composition.------ filter f is applied to an argument t.--- then filter g is applied to all elements of the result list,--- but the argument t is also passed as extra parameter to g.------ This allows for step by step transformations of a tree--- with access to the original tree in every--- transformation step.------ see also : '(.>)', 'o'--(..>)		:: (a -> [b]) -> (a -> b -> [d]) -> (a -> [d])-f ..> g		= \ t -> (g t `o` f) t---- |--- apply a list of filters, a \"union\" for lists, for predicate filters the generalized OR------    * 1.parameter fs :  the list of filters------    - returns : the composing filter--cat		:: [a -> [b]] -> (a -> [b])-cat fs  t-    = concat [ f t | f <- fs ]---- |--- Filter for editing the children of a tree element wise------    * 1.parameter cf :  the filter applied to the children------    - returns : the editing filter------ see also : 'modifyChildren'--processChildren	:: TFilter node -> TFilter node-processChildren ft (NTree n cs)-    = [NTree n (ft $$ cs)]---- |--- infix operator for applying a filter to a list of trees------    * 1.parameter f :  the filter------    - 2.parameter ts :  the list of trees------    - returns : the concatenated list of results--($$)		:: (a -> [b]) -> [a] -> [b]-f $$ l-    = concatMap f l---- ------------------------------------------------------------------ choices------- |--- directional choice, usually written in infix notation as f `orElse` g------    * 1.parameter f :  the 1. filter------    - 2.parameter g :  the 2. filter------    - 3.parameter t :  the tree------    - returns : the filter, that applies f to t, if the result is not the empty list, the result is found, else g t is the result--orElse		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])-f `orElse` g-    = \ t-> let-	    res = f t-	    in-	    if null res-	    then g t-	    else res---- |--- if then else lifted to filters------    * 1.parameter p :  the predicate filter------    - 2.parameter t :  the \"then\" filter------    - 3.parameter e :  the \"else\" filter------    - returns : the resulting conditional filter--iff		:: (a -> [c]) -> (a -> [b]) -> (a -> [b]) -> (a -> [b])-iff p f g	= \ c -> if (satisfies p) c then f c else g c---- |--- when the predicate p holds, f is applied, else the identity filter this------    * 1.parameter f :  the conditinally applied filter------    - 2.parameter p :  the predicate------    - returns : the conditional filter------ see also : 'iff', 'whenNot', 'guards', 'whenM'--when		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])-f `when` g	= iff g f this---- |--- the complementary filter of when------ shortcut for f `when` neg g------ see also : 'iff', 'when', 'whenNotM', 'neg'--whenNot		:: (a -> [a]) -> (a -> [a]) -> (a -> [a])-f `whenNot` g	= iff g this f---- |--- when the predicate p holds, f is applied, else the null filter none------    * 1.parameter p :  the predicate filter------    - 2.parameter f :  the conditionally applied filter------    - returns : the conditional filter------ see also : 'iff', 'when', 'guardsM'--guards		:: (a -> [b]) -> (a -> [b]) -> (a -> [b])-g `guards` f	= iff g f none----- |--- negation lifted to filters------    * 1.parameter f :  the predicate filter------    - returns : the filter, that succeeds, when f failed--neg		:: (a -> [c]) -> a -> [a]-neg f		= iff f none this---- |--- auxiliary datatype for cases within choice filter--data IfThen a b = a :-> b---- |--- multiway branch. The list of cases @f :-> g@ is processed sequentially,--- in the first case for that f holds g is applied, if no case matches, 'none' is--- applied.--- This filter can be used like a case expression: @choice [ p1 :-> f1, p2 :-> f2, ... , this :-> defaultFilter]@------ see also : 'iff', 'choiceM'--choice	:: [IfThen (a -> [c]) (a -> [b])] -> (a -> [b])-choice []-    = none--choice ((g :-> f) : cs)-    = iff g f (choice cs)---- |--- pruning: keep only those results from f for which g holds, usually written in infix notation as f `containing` g------    * 1.parameter f :  the processing filter------    - 2.parameter g :  the predicate filter------    - 3.parameter t :  the tree------    - returns : all trees r from f t, for which g r holds (is not the empty list)------ see also : 'notContaining'--containing		:: (a -> [b]) -> (b -> [c]) -> a -> [b]-f `containing` g-    = filter (satisfies g) . f---- |--- pruning: keep only those results from f for which g does not hold------ see also : 'containing'--notContaining		:: (a -> [b]) -> (b -> [c]) -> a -> [b]-f `notContaining` g-    = filter (null . g) . f---- |--- pruning: monadic version of containing, usually written in infix notation as f `containingM` g------    * 1.parameter f :  the monadic processing filter------    - 2.parameter g :  the predicate filter------    - 3.parameter t :  the tree------    - returns : all trees r from f t, for which g r holds (is not the empty list)------ see also : 'notContaining'--containingM		:: Monad m => (a -> m [b]) -> (b -> [c]) -> a -> m [b]-f `containingM` g-    = \ t -> do-             res <- f t-             return $ filter (satisfies g) res---- |--- pronounced \"slash\", meaning g inside f--(/>)		:: TFilter node -> TFilter node -> TFilter node-f /> g-    = g `o` getChildren `o` f---- |--- pronounced \"outside\" meaning f containing g--(</)		:: TFilter node -> TFilter node -> TFilter node-f </ g-    = f `containing` (g `o` getChildren)---- ------------------------------------------------------------------ recursive search filters---- |--- top down search.------ search terminates, when filter f succeeds--- can e.g. be used for finding all outermost tag node of a specific kind--deep		:: TFilter node -> TFilter node-deep f-    = f `orElse` (deep f `o` getChildren)---- |--- bottom up search.------ first the children are processed,--- if this does not succeed, the node itself is processed--- can e.g. be used for finding all innermost tag nodes of a specific kind--deepest		:: TFilter node -> TFilter node-deepest f-    = (getChildren .> deepest f) `orElse` f---- |--- process all nodes of the whole tree.------ can e.g. be used for finding all nodes of a specific kind--multi		:: TFilter node -> TFilter node-multi f-    = f +++ (getChildren .> multi f)---- ------------------------------------------------------------------ recursive transformation filters------- |--- bottom up transformation------    * 1.parameter f :  the /simple/ transforming filter------    - returns : the filter that applies f to all subtrees and the tree itself in a deepth first left to right manner------ see also : 'processTopDown', 'processBottomUpIfNot'--processBottomUp	:: TFilter node -> TFilter node-processBottomUp f-    = processChildren (processBottomUp f) .> f---- |--- top down transformation------    * 1.parameter f :  the /simple/ transforming filter------    - returns : the filter that applies f first to the tree and then recursively to all subtrees of the result------ see also : 'processBottomUp'--processTopDown	:: TFilter node -> TFilter node-processTopDown f-    = f .> processChildren (processTopDown f)---- |--- guarded bottom up transformation, stops at subtrees for which a predicate p holds------    * 1.parameter f :  the transforming filter------    - 2.parameter p :  the predicate filter for the guard------    - returns : the filter for processing all (sub-)trees------ see also : 'processBottomUp'--processBottomUpIfNot	:: TFilter node -> TFilter node -> TFilter node-processBottomUpIfNot f p-    = (processChildren (processBottomUpIfNot f p) .> f) `whenNot` p---- |--- top down transformation until a node to be transformed is found------    * 1.parameter f :  the /simple/ transforming filter------    - returns : the filter that applies f first to the tree and, if the filter does not succeed,---		  recursively to all children of the input tree.------ Example:------ @processTopDownUntil none@------ is the identity filter (maybe a bit more inefficient).------ Example:------ @processTopDownUntil (add1Attr \"border\" \"2\" \`containing\` isTag \"table\")@------ is a filter for adding an attribute border=\"2\" in all top level table tags.---		  The content of table tags will remain unchanged.------ see also : 'processTopDown', 'processBottomUp'--processTopDownUntil	:: TFilter node -> TFilter node-processTopDownUntil f t-    | null res-	= processChildren (processTopDownUntil f) t-    | otherwise-	= res-    where-    res = f t---- ------------------------------------------------------------------- |--- insertion of trees into the list of children at a given position------ useful for inserting something into the list of children at a given position--- the list of children is split with the @splitAt@ function--- the nodes are inserted between these two sublists.------ examples: @insertChildrenAt 0 ins t@ inserts all elements computed with @ins t@ in front--- of the childen of @t@, @insertChildrenAt 1 ins t@ behind the first child------ see also: 'insertChildrenAfter'---insertChildrenAt	:: Int -> TFilter node -> TFilter node-insertChildrenAt i ins t-    = replaceChildren (cl1 ++ ins t ++ cl2) t-    where-    (cl1, cl2) = splitAt i $ getChildren t---- |--- insertion of trees into the list of children after specific elements------ useful for inserting something into the list of children of a node--- the list of children is split with the @span@ function and the filter p as predicate--- the nodes are inserted between these two sublists------ examples: @insertChildrenAfter none ins t@ inserts all elements computed with @ins t@ in front--- of the childen of @t@, @insertChildrenAfter this ins t@ appends the elements to the children------ see also: 'insertChildrenAt'--insertChildrenAfter	:: TFilter node -> TFilter node -> TFilter node-insertChildrenAfter p ins t-    = replaceChildren (cl1 ++ ins t ++ cl2) t-    where-    (cl1, cl2) = span (not . null . p) $ getChildren t---- ------------------------------------------------------------------ monadic filter---- |--- the monadic version of the identity filter this.------ see also : 'this'--thisM		:: Monad m => (a -> m [a])-thisM		= liftMf this---- |--- the monadic version of the null filter none.------ see also : 'none'--noneM		:: Monad m => (a -> m [b])-noneM		= liftMf none---- |--- sequential composition of monadic filters, monadic version of \".>\".------    * 1.parameter f1 :  the 1. monadic filter------    - 2.parameter f2 :  the 2. monadic filter------    - returns : the monadic fiter applying first f1 to n and then f2 to the result (like function composition)------ see also : '(.>)'--(.>>)	:: Monad m => (a -> m[b]) -> (b -> m [c]) -> (a -> m[c])-cmd1 .>> cmd2-    = \ t ->-      do-      r1 <- cmd1 t-      r2 <- mapM cmd2 r1-      return (concat r2)---- |--- generalized sequential composition of monadic filters--seqM	:: Monad m => [a -> m[a]] -> (a -> m[a])-seqM-    = foldr (.>>) thisM---- |--- binary parallel composition, the logical OR for predicate filter------    * 1.parameter f1 :  the 1. filter------    - 2.parameter f2 :  the 2. filter------    - returns : the filter for applying f1 and f2 both to an argument tree and concatenating the results--- see also: 'cat', '+++', 'catM'--(+++>>)		:: Monad m => (a -> m [b]) -> (a -> m [b]) -> (a -> m [b])-f +++>> g	= \ t -> do-			 r1 <- f t-			 r2 <- g t-			 return (r1 ++ r2)---- |--- apply a list of monadic filters------    * 1.parameter fs :  the list of filters------    - returns : the composing filter--- see also: 'cat', '+++', '+++>>'--catM	:: Monad m => [a -> m [b]] -> (a -> m [b])-catM fs  t-    = do-      res <- sequence (map ($ t) fs)-      return $ concat res---- |--- monadic if-then-else.------    * 1.parameter p :  the predicate------    - 2.parameter thenP :  the then part: the monadic filter, that is applied if p holds for the input tree------    - 3.parameter elseP :  the else part------    - returns : the monadic filter for the conditional--ifM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c]) -> (a -> m [c])-ifM p thenPart elsePart-    = \ t ->-      if (satisfies p) t-      then thenPart t-      else elsePart t---- |--- monadic version of multiway branch. The list of cases @f :-> g@ is processed sequentially,--- in the first case for that f holds g is applied, if no case matches, 'noneM' is--- applied.--- This filter can be used like a case expression: @choiceM [ p1 :-> f1, p2 :-> f2, ... , thisM :-> defaultFilter]@------ see also : 'choice', 'ifM'--choiceM		:: Monad m => [IfThen (a -> [c]) (a -> m [b])] -> (a -> m [b])-choiceM []-    = noneM--choiceM ((g :-> f) : cs)-    = ifM g f (choiceM cs)----- |--- when the predicate p holds, the monadic filter f is applied, else the identity filter.------    * 1.parameter f :  the conditinally applied monadic filter------    - 2.parameter p :  the simple predicate------    - returns : the conditional filter------ see also : 'ifM', 'when', 'guardsM', 'whenNotM'--whenM		:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])-f `whenM` g	= ifM g f thisM---- |--- the complementary filter of whenM.------ see also : 'ifM', 'whenM', 'whenNot'--whenNotM	:: Monad m => (a -> m [a]) -> (a -> [b]) -> (a -> m [a])-f `whenNotM` g	= ifM g thisM f---- |--- when the predicate p holds, the monadic filter f is applied, else the null filter.------    * 1.parameter p :  the simple predicate filter------    - 2.parameter f :  the conditionally applied monadic filter------    - returns : the conditional filter------ see also : 'ifM', 'guards', 'whenM'--guardsM		:: Monad m => (a -> [b]) -> (a -> m [c]) -> (a -> m [c])-g `guardsM` f	= ifM g f noneM---- |--- Filter for editing the children of a tree with a monadic filter------    * 1.parameter cf :  the monadic filter applied to the children------    - returns : the monadic editing filter------ see also : 'processChildren'--processChildrenM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])-processChildrenM ft (NTree n cs)-    = do-      res <- ft $$< cs-      return [NTree n res]---- |--- monadic variant of 'processTopDown'--processTopDownM		:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])-processTopDownM f-    = f .>> processChildrenM (processTopDownM f)---- |--- monadic variant of 'processBottomUp'--processBottomUpM	:: Monad m => (NTree node -> m [NTree node]) -> (NTree node -> m [NTree node])-processBottomUpM f-    = processChildrenM (processBottomUpM f) .>> f---- |--- infix operator for applying a monadic filter to a list of trees,--- typically used in do-notation for processing of intermediate results.------    * 1.parameter f :  the monadic filter------    - 2.parameter ts :  the list of trees------    - returns : the concatenated list of results------ see also : '($$)'--($$<)	:: Monad m => (a -> m [b]) -> [a] -> m [b]-cmd $$< l-    = do-      r <- mapM cmd l-      return (concat r)---- |--- lift a filter to a monadic filter------    * 1.parameter f :  the /simple/ filter------    - returns : the lifted monadic version--liftMf	:: Monad m => (a -> [b]) -> a -> m [b]-liftMf f t-    = return (f t)---- |--- run an arbitray command on a tree t and return the tree,--- used for inserting arbitray commands in a filter pipeline------    * 1.parameter cmd :  the command------    - 2.parameter t :  the argument tree------    - returns : the unchanged tree as a single element list--performAction	:: Monad m => (a -> m b) -> a -> m [a]-performAction cmd t-    = do-      cmd t-      return [t]---- eof ------------------------------------------------------------
src/Data/Tree/NTree/TypeDefs.hs view
@@ -2,7 +2,7 @@  {- |    Module     : Data.Tree.NTree.TypeDefs-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)
src/Makefile view
@@ -69,7 +69,6 @@ 	Data/Char/UTF8.hs \ 	Data/NavTree.hs \ 	Data/Tree/Class.hs \-	Data/Tree/NTree/Filter.hs \ 	Data/Tree/NTree/TypeDefs.hs \ 	Text/XML/HXT/Arrow/DocumentInput.hs \ 	Text/XML/HXT/Arrow/DocumentOutput.hs \@@ -96,7 +95,6 @@ 	Text/XML/HXT/DOM/IsoLatinTables.hs \ 	Text/XML/HXT/DOM/MimeTypeDefaults.hs \ 	Text/XML/HXT/DOM/MimeTypes.hs \-	Text/XML/HXT/DOM/NamespacePredicates.hs \ 	Text/XML/HXT/DOM/QualifiedName.hs \ 	Text/XML/HXT/DOM/ShowXml.hs \ 	Text/XML/HXT/DOM/TypeDefs.hs \@@ -106,7 +104,6 @@ 	Text/XML/HXT/DOM/XmlKeywords.hs \ 	Text/XML/HXT/DOM/XmlNode.hs \ 	Text/XML/HXT/DOM/XmlOptions.hs \-	Text/XML/HXT/DOM/XmlTreeTypes.hs \ 	Text/XML/HXT/DTDValidation/AttributeValueValidation.hs \ 	Text/XML/HXT/DTDValidation/DocTransformation.hs \ 	Text/XML/HXT/DTDValidation/DocValidation.hs \
src/Text/XML/HXT/Arrow/DocumentInput.hs view
@@ -113,11 +113,20 @@  getFileContents		:: IOStateArrow s XmlTree XmlTree getFileContents-    = applyA ( getAttrValue transferURI+    = applyA ( ( ( getAttrValue  a_strict_input+		   >>>+		   arr isTrueValue+		 )+		 &&&+		 ( getAttrValue transferURI+		   >>>+		   getPathFromURI+		 )+	       ) 	       >>>-	       getPathFromURI+	       traceValue 2 (\ (b, f) -> "read file " ++ show f ++ " (strict input = " ++ show b ++ ")") 	       >>>-	       arrIO FILE.getCont+	       arrIO (uncurry FILE.getCont) 	       >>> 	       ( arr addError		-- io error occured 		 |||@@ -129,7 +138,11 @@  getStdinContents		:: IOStateArrow s XmlTree XmlTree getStdinContents-    = applyA ( arrIO (\ _ -> FILE.getStdinCont)+    = applyA (  getAttrValue  a_strict_input+		>>>+		arr isTrueValue+		>>>+		arrIO FILE.getStdinCont 	       >>> 	       ( arr addError		-- io error occured 		 |||@@ -267,7 +280,7 @@     getCont 	= applyA ( getBaseURI				-- compute the handler and call it 		   >>>-		   traceString 2 (("getURIContents: reading " ++) . show)+		   traceValue 2 (("getURIContents: reading " ++) . show) 		   >>> 		   getSchemeFromURI 		   >>>@@ -338,7 +351,7 @@ 	>>> 	perform ( getAttrValue transferURI 		  >>>-		  traceString 1 (("getXmlContents: content read and decoded for " ++) . show)+		  traceValue 1 (("getXmlContents: content read and decoded for " ++) . show) 		) 	>>> 	traceTree
src/Text/XML/HXT/Arrow/DocumentOutput.hs view
@@ -1,7 +1,19 @@--- |--- state arrows for document output------ version: $Id: DocumentOutput.hs,v 1.7 2006/11/02 09:34:08 hxml Exp $+-- ------------------------------------------------------------++{- |+   Module     : Text.XML.HXT.Arrow.DocumentOutput+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)+   Stability  : experimental+   Portability: portable++   State arrows for document output++-}++-- ------------------------------------------------------------  module Text.XML.HXT.Arrow.DocumentOutput     ( module Text.XML.HXT.Arrow.DocumentOutput )
src/Text/XML/HXT/Arrow/Edit.hs view
@@ -2,7 +2,7 @@  {- |    Module     : Text.XML.HXT.Arrow.Edit-   Copyright  : Copyright (C) 2006 Uwe Schmidt+   Copyright  : Copyright (C) 2006-9 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)@@ -33,6 +33,7 @@      , indentDoc     , numberLinesInXmlDoc+    , preventEmptyElements       , removeComment     , removeAllComment@@ -56,35 +57,23 @@     ) where -import Control.Arrow-import Control.Arrow.ArrowList-import Control.Arrow.ArrowIf-import Control.Arrow.ArrowTree--import Control.Arrow.ListArrow--import Text.XML.HXT.Arrow.XmlArrow--import Text.XML.HXT.DOM.Interface--import qualified-       Text.XML.HXT.DOM.XmlNode as XN--import Text.XML.HXT.DOM.Unicode-    ( isXmlSpaceChar )--import Text.XML.HXT.DOM.FormatXmlTree-    ( formatXmlTree )--import Text.XML.HXT.Parser.XmlEntities-    ( xmlEntities )--import Text.XML.HXT.Parser.XhtmlEntities-    ( xhtmlEntities )+import           Control.Arrow+import           Control.Arrow.ArrowList+import           Control.Arrow.ArrowIf+import           Control.Arrow.ArrowTree+import 		 Control.Arrow.ListArrow -import Data.Maybe+import           Text.XML.HXT.Arrow.XmlArrow+import           Text.XML.HXT.DOM.Interface+import qualified Text.XML.HXT.DOM.XmlNode 	as XN+import           Text.XML.HXT.DOM.Unicode		( isXmlSpaceChar )+import           Text.XML.HXT.DOM.FormatXmlTree 	( formatXmlTree )+import           Text.XML.HXT.Parser.HtmlParsec         ( emptyHtmlTags )+import           Text.XML.HXT.Parser.XmlEntities	( xmlEntities )+import           Text.XML.HXT.Parser.XhtmlEntities	( xhtmlEntities ) -import qualified Data.Map as M+import qualified Data.Map 			as M+import           Data.Maybe  -- ------------------------------------------------------------ @@ -304,6 +293,8 @@ escapeHtmlEntityRef	:: Char -> XmlTree escapeHtmlEntityRef	= escapeEntityRef xhtmlEntityRefTable +-- ------------------------------------------------------------+ -- | -- escape all special XML chars into XML entity references or char references --@@ -328,6 +319,8 @@ -- in attribute values also \', \", \>, \\n, \\r and \\t are converted into entity or char references, -- in comments nothing is converted +-- ------------------------------------------------------------+ escapeHtmlDoc		:: ArrowList a => a XmlTree XmlTree escapeHtmlDoc     = fromLA $ escapeDoc escHtmlText escHtmlAttrValue@@ -342,6 +335,8 @@     isHtmlAttrEsc c 	= c >= toEnum(128) || ( c `elem` "<>\"\'&\n\r\t" ) +-- ------------------------------------------------------------+ escapeDoc		:: LA XmlTree XmlTree -> LA XmlTree XmlTree -> LA XmlTree XmlTree escapeDoc escText escAttr     = escape@@ -359,6 +354,28 @@ 	  ]     escVal   = processChildren escAttr     escDTD   = escVal `when` ( isDTDEntity <+> isDTDPEntity )++-- ------------------------------------------------------------++preventEmptyElements	:: ArrowList a => Bool -> a XmlTree XmlTree+preventEmptyElements isHtml+    = fromLA $ insertDummyElem+    where+    isNoneEmpty+	| isHtml	= hasNameWith (localPart >>> (`notElem` emptyHtmlTags))+	| otherwise	= this++    insertDummyElem+	= processBottomUp+	  ( replaceChildren (txt "")+	    `when`+	    ( isElem+	      >>>+	      isNoneEmpty+	      >>>+	      neg getChildren+	    )+	  )  -- ------------------------------------------------------------ 
src/Text/XML/HXT/Arrow/GeneralEntitySubstitution.hs view
@@ -132,7 +132,7 @@     addInternalEntity 	= ( ( getDTDAttrValue a_name 	      >>>-	      traceString 2 (("processGeneralEntity: general entity definition for " ++) . show)+	      traceValue 2 (("processGeneralEntity: general entity definition for " ++) . show) 	    ) 	    &&& 	    xshow (getChildren >>> isText)@@ -160,7 +160,7 @@     addExternalEntity 	= ( ( getDTDAttrValue a_name 	      >>>-	      traceString 2 (("processGeneralEntity: external entity definition for " ++) . show)+	      traceValue 2 (("processGeneralEntity: external entity definition for " ++) . show)             ) 	    &&& 	    getDTDAttrValue a_url 			-- the absolute URL, not the relative in attr: k_system@@ -174,7 +174,7 @@     addUnparsedEntity 	= getDTDAttrValue a_name 	  >>>-	  traceString 2 (("processGeneralEntity: unparsed entity definition for " ++) . show)+	  traceValue 2 (("processGeneralEntity: unparsed entity definition for " ++) . show)           >>> 	  applyA (arr (insertEntity substUnparsed)) 	  >>>@@ -236,7 +236,7 @@     substEntityRef 	= applyA ( ( ( getEntityRef				-- get the entity name and the env 		       >>>					-- and compute the arrow to be applied-		       traceString 2 (("processGeneralEntity: entity reference for entity " ++) . show)+		       traceValue 2 (("processGeneralEntity: entity reference for entity " ++) . show) 		       >>> 		       traceMsg 3 ("recursion list = " ++ show recl) 		     )
src/Text/XML/HXT/Arrow/Namespace.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.Arrow.Namespace-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: Namespace.hs,v 1.13 2006/11/12 14:52:59 hxml Exp $     namespace specific arrows @@ -41,13 +40,10 @@ import Text.XML.HXT.DOM.Interface import Text.XML.HXT.Arrow.XmlArrow -import Data.Maybe-    ( isNothing-    , fromJust-    )--import Data.List-    ( nub )+import Data.Maybe		    ( isNothing+				    , fromJust+				    )+import Data.List		    ( nub )  -- ------------------------------------------------------------ @@ -56,14 +52,7 @@ isNamespaceDeclAttr	:: ArrowXml a => a XmlTree XmlTree isNamespaceDeclAttr     = fromLA $-      (getAttrName >>> isA isNsQName) `guards` this-      where-      isNsQName n-	  = px == a_xmlns-	    &&-	    (null lp || (not . null . tail $ lp))-	  where-	  (px, lp) = span (/= ':') . qualifiedName $ n+      (getAttrName >>> isA isNameSpaceName) `guards` this  -- | get the namespace prefix and the namespace URI out of -- an attribute tree with a namespace declaration (see 'isNamespaceDeclAttr')@@ -145,7 +134,7 @@  cleanupNamespaces	:: LA XmlTree (String, String) -> LA XmlTree XmlTree cleanupNamespaces collectNamespaces-    = renameNamespaces $< (listA collectNamespaces >>^ nub)+    = renameNamespaces $< (listA collectNamespaces >>^ (toNsEnv >>> nub))     where     renameNamespaces :: NsEnv -> LA XmlTree XmlTree     renameNamespaces env@@ -163,11 +152,11 @@ 	where 	renamePrefix	:: QName -> QName 	renamePrefix n-	    | null uri		= n+	    | isNullXName uri	= n 	    | isNothing newPx	= n-	    | otherwise		= n {namePrefix = fromJust newPx}+	    | otherwise		= setNamePrefix' (fromJust newPx) n 	    where-	    uri   = namespaceUri n+	    uri   = namespaceUri' n 	    newPx = lookup uri revEnv1 	             revEnv1 = map (\ (x, y) -> (y, x)) env1@@ -175,13 +164,13 @@ 	env1 :: NsEnv 	env1 = newEnv [] uris -	uris :: [String]+	uris :: [XName] 	uris = nub . map snd $ env -	genPrefixes :: [String]-        genPrefixes = map (("ns" ++) . show) [(0::Int)..]+	genPrefixes :: [XName]+        genPrefixes = map (newXName . ("ns" ++) . show) [(0::Int)..] -        newEnv	:: NsEnv -> [String] -> NsEnv+        newEnv	:: NsEnv -> [XName] -> NsEnv 	newEnv env' [] 	    = env' @@ -225,7 +214,7 @@      extendEnv	:: NsEnv -> XmlTree -> NsEnv     extendEnv env' t'-	= addEntries newDecls env'+	= addEntries (toNsEnv newDecls) env' 	where 	newDecls = runLA ( getAttrl >>> getNamespaceDecl ) t' @@ -270,12 +259,13 @@     nsAttrl		:: [LA XmlTree XmlTree]     nsAttrl		= map nsDeclToAttr env -    nsDeclToAttr	:: (String, String) -> LA XmlTree XmlTree+    nsDeclToAttr	:: (XName, XName) -> LA XmlTree XmlTree     nsDeclToAttr (n, uri)-	= mkAttr qn (txt uri)+	= mkAttr qn (txt (show uri)) 	where 	qn :: QName-	qn = mkNsName (a_xmlns ++ (if null n then "" else ':' : n)) xmlnsNamespace+	qn | isNullXName n	= mkQName' nullXName  xmlnsXName xmlnsNamespaceXName+	   | otherwise		= mkQName' xmlnsXName n          xmlnsNamespaceXName  -- ----------------------------------------------------------------------------- @@ -288,7 +278,10 @@ -- The arrow may be applied repeatedly if neccessary.  propagateNamespaces	:: ArrowXml a => a XmlTree XmlTree-propagateNamespaces	= fromLA $ propagateNamespaceEnv [ (a_xml, xmlNamespace), (a_xmlns, xmlnsNamespace) ]+propagateNamespaces	= fromLA $+			  propagateNamespaceEnv [ (xmlXName,   xmlNamespaceXName)+						, (xmlnsXName, xmlnsNamespaceXName)+						]  -- | -- attaches the namespace info given by the namespace table@@ -308,7 +301,7 @@      attachNamespaceUriToAttr	:: NsEnv -> LA XmlTree XmlTree     attachNamespaceUriToAttr attrEnv-	= ( ( getName >>> isA hasPrefixLocalPart )+	= ( ( getQName >>> isA (not . null . namePrefix) ) 	    `guards` 	    changeAttrName (setNamespace attrEnv) 	  )@@ -317,16 +310,6 @@ 	    `when` 	    hasName a_xmlns 	  )-	where-	hasPrefixLocalPart	:: String -> Bool-	hasPrefixLocalPart s-	    = ( ':' `elem` s )				-- small optimization: only do some string handling when is ':' found-	      &&-	      ( let					-- check none empty prefix and local part-		(px, lp) = span (/= ':') s-		in-		not (null px) && not (null (drop 1 lp))-	      )  -- ----------------------------------------------------------------------------- @@ -334,7 +317,7 @@ -- validate the namespace constraints in a whole tree. -- -- Result is the list of errors concerning namespaces.--- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespaces'+-- Predicates 'isWellformedQName', 'isWellformedQualifiedName', 'isDeclaredNamespace' -- and 'isWellformedNSDecl' are applied to the appropriate elements and attributes.  validateNamespaces	:: ArrowXml a => a XmlTree XmlTree@@ -420,7 +403,7 @@     where     nsError	:: (String -> String) -> LA XmlTree XmlTree     nsError msg-	= getName >>> nsErr msg+	= (getQName >>> arr show) >>> nsErr msg      nsErr	:: (String -> String) -> LA String XmlTree     nsErr msg	= arr msg >>> mkError c_err
src/Text/XML/HXT/Arrow/Pickle/Xml.hs view
@@ -2,35 +2,34 @@  {- |    Module     : Text.XML.HXT.Arrow.Pickle.Xml-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id$ -Pickler functions for converting between user defined data types-and XmlTree data. Usefull for persistent storage and retreival-of arbitray data as XML documents+   Pickler functions for converting between user defined data types+   and XmlTree data. Usefull for persistent storage and retreival+   of arbitray data as XML documents -This module is an adaptation of the pickler combinators-developed by Andrew Kennedy-( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf )+   This module is an adaptation of the pickler combinators+   developed by Andrew Kennedy+   ( http:\/\/research.microsoft.com\/~akenn\/fun\/picklercombinators.pdf ) -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.+   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. -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+   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 -There is an example program demonstrating the use-of the picklers for a none trivial data structure.-(see \"examples\/arrows\/pickle\" directory)+   There is an example program demonstrating the use+   of the picklers for a none trivial data structure.+   (see \"examples\/arrows\/pickle\" directory)  -} @@ -77,12 +76,12 @@ dropCont	:: St -> St dropCont s	= s { contents = drop 1 (contents s) } -getAtt		:: String -> St -> Maybe XmlTree-getAtt name s+getAtt		:: QName -> St -> Maybe XmlTree+getAtt qn s     = listToMaybe $       runLA ( arrL attributes 	      >>>-	      isAttr >>> hasName name+	      isAttr >>> hasQName qn 	    ) s  getCont		:: St -> Maybe XmlTree@@ -494,41 +493,48 @@  -- | Pickler for wrapping\/unwrapping data into an XML element ----- Extra parameter is the element name. THE pickler for constructing+-- Extra parameter is the element name given as a QName. THE pickler for constructing -- nested structures -- -- Example: ----- > xpElem "number" $ xpickle+-- > xpElemQN (mkName "number") $ xpickle -- -- will map an (42::Int) onto -- -- > <number>42</number> -xpElem	:: String -> PU a -> PU a-xpElem name pa+xpElemQN	:: QName -> PU a -> PU a+xpElemQN qn pa     = PU { appPickle   = ( \ (a, st) -> 			   let 	                   st' = appPickle pa (a, emptySt) 			   in-			   addCont (XN.mkElement (mkName name) (attributes st') (contents st')) st+			   addCont (XN.mkElement qn (attributes st') (contents st')) st 			 ) 	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleElement st)-	 , theSchema   = scElem name (theSchema pa)+	 , theSchema   = scElem (qualifiedName qn) (theSchema pa) 	 }       where       unpickleElement st 	  = do 	    t <- getCont st 	    n <- XN.getElemName t-	    if qualifiedName n /= name-	       then fail "element name does not match"+	    if n /= qn+	       then fail ("element name " ++ show n ++ " does not match" ++ show qn) 	       else do 		    let cs = XN.getChildren t 		    al <- XN.getAttrl t 		    res <- fst . appUnPickle pa $ St {attributes = al, contents = cs} 		    return (Just res, dropCont st) +-- | convenient Pickler for xpElemQN+--+-- > xpElem n = xpElemQN (mkName n)++xpElem		:: String -> PU a -> PU a+xpElem		= xpElemQN . mkName+ -- ------------------------------------------------------------  -- | Pickler for wrapping\/unwrapping data into an XML element with an attribute with given value@@ -590,25 +596,32 @@ -- -- The attribute is inserted in the surrounding element constructed by the 'xpElem' pickler -xpAttr	:: String -> PU a -> PU a-xpAttr name pa+xpAttrQN	:: QName -> PU a -> PU a+xpAttrQN qn pa     = PU { appPickle   = ( \ (a, st) -> 			   let 			   st' = appPickle pa (a, emptySt) 			   in-			   addAtt (XN.mkAttr (mkName name) (contents st')) st+			   addAtt (XN.mkAttr qn (contents st')) st 			 ) 	 , appUnPickle = \ st -> fromMaybe (Nothing, st) (unpickleAttr st)-	 , theSchema   = scAttr name (theSchema pa)+	 , theSchema   = scAttr (qualifiedName qn) (theSchema pa) 	 }       where       unpickleAttr st 	  = do-	    a <- getAtt name st+	    a <- getAtt qn st 	    let av = XN.getChildren a 	    res <- fst . appUnPickle pa $ St {attributes = [], contents = av} 	    return (Just res, st)	-- attribute is not removed from attribute list, 					-- attributes are selected by name++-- | convenient Pickler for xpAttrQN+--+-- > xpAttr n = xpAttrQN (mkName n)++xpAttr		:: String -> PU a -> PU a+xpAttr		= xpAttrQN . mkName  -- | Add an optional attribute for an optional value (Maybe a). 
src/Text/XML/HXT/Arrow/ProcessDocument.hs view
@@ -10,9 +10,9 @@    Portability: portable    Version    : $Id: ProcessDocument.hs,v 1.3 2006/08/30 16:20:52 hxml Exp $ -Compound arrows for reading, parsing, validating and writing XML documents+   Compound arrows for reading, parsing, validating and writing XML documents -All arrows use IO and a global state for options, errorhandling, ...+   All arrows use IO and a global state for options, errorhandling, ... -}  -- ------------------------------------------------------------@@ -131,7 +131,7 @@  parseHtmlDocument	:: Bool -> Bool -> Bool -> Bool -> Bool -> Bool -> IOStateArrow s XmlTree XmlTree parseHtmlDocument withTagSoup withNamespaces warnings preserveCmt removeWhitespace asHtml-    = ( perform ( getAttrValue a_source >>> traceString 1 (("parseHtmlDoc: parse HTML document " ++) . show) )+    = ( perform ( getAttrValue a_source >>> traceValue 1 (("parseHtmlDoc: parse HTML document " ++) . show) ) 	>>> 	replaceChildren ( ( getAttrValue a_source		-- get source name 			    &&&@@ -151,7 +151,7 @@ 	>>> 	perform ( getAttrValue a_source 		  >>>-		  traceString 1 (\ src -> "parse HTML document " ++ show src ++ " finished")+		  traceValue 1 (\ src -> "parse HTML document " ++ show src ++ " finished") 		)       )       `when` documentStatusOk
src/Text/XML/HXT/Arrow/ReadDocument.hs view
@@ -109,6 +109,10 @@  - '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+                     the tagsoup parser and not processing the whole input data. Default is off. The @ByteString@ input usually is not faster than the buildin @hGetContents@+		     for strings.+ - 'a_options_curl' : 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@@ -147,11 +151,12 @@ >              ] ""  reads a HTML document from standard input, no validation is done when parsing HTML, default encoding is 'isoLatin1',-parsing is done with tagsoup parser+parsing is done with tagsoup parser, but input is read strictly  > readDocument [ (a_encoding, isoLatin1) >              , (a_mime_type,    "/etc/mime.types")->              , (a_tagsoup,    "1")+>              , (a_tagsoup,      "1")+>              , (a_strict_input, "1") >              ] "test.svg"  reads an SVG document from standard input, sets the mime type by looking in the system mimetype config file, default encoding is 'isoLatin1',@@ -198,6 +203,7 @@     defaultOptions 	= [ ( a_parse_html,		  v_0 ) 	  , ( a_tagsoup,		  v_0 )+	  , ( a_strict_input,		  v_0 ) 	  , ( a_validate,		  v_1 ) 	  , ( a_issue_warnings,		  v_1 ) 	  , ( a_check_namespaces,	  v_0 )
src/Text/XML/HXT/Arrow/WriteDocument.hs view
@@ -2,15 +2,14 @@  {- |    Module     : Text.XML.HXT.Arrow.WriteDocument-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: WriteDocument.hs,v 1.8 2006/11/09 20:27:42 hxml Exp $ -Compound arrow for writing XML documents+   Compound arrow for writing XML documents  -} @@ -32,19 +31,18 @@ import Text.XML.HXT.Arrow.XmlArrow import Text.XML.HXT.Arrow.XmlIOStateArrow -import Text.XML.HXT.Arrow.Edit-    ( indentDoc-    , removeDocWhiteSpace-    , treeRepOfXmlDoc-    , haskellRepOfXmlDoc-    , escapeXmlDoc-    , escapeHtmlDoc-    )+import Text.XML.HXT.Arrow.Edit			( escapeHtmlDoc+						, escapeXmlDoc+						, haskellRepOfXmlDoc+						, indentDoc+						, preventEmptyElements+						, removeDocWhiteSpace+						, treeRepOfXmlDoc+						) -import Text.XML.HXT.Arrow.DocumentOutput-    ( putXmlDocument-    , encodeDocument-    )+import Text.XML.HXT.Arrow.DocumentOutput	( putXmlDocument+						, encodeDocument+						)  -- ------------------------------------------------------------ @@ -73,6 +71,11 @@  - 'a_output_html' : issue XHTML: quote alle XML chars, use HTML entity refs or char refs for none ASCII chars +- 'a_no_empty_elements' : do not write the short form \<name .../\> for empty elements. When 'a_output_html' 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.+ - 'a_no_xml_pi' : suppress generation of \<?xml ... ?\> processing instruction  - 'a_show_tree' : show tree representation of document (for debugging)@@ -158,6 +161,9 @@       >>>       format     where+    formatEmptyElems+	| hasOption a_no_empty_elements = preventEmptyElements+	| otherwise                     = const this     indent 	| hasOption a_indent		= indentDoc			-- document indentation 	| hasOption a_remove_whitespace	= removeDocWhiteSpace		-- remove all whitespace between tags@@ -166,12 +172,16 @@     format 	| hasOption a_show_tree		= treeRepOfXmlDoc 	| hasOption a_show_haskell	= haskellRepOfXmlDoc-	| hasOption a_output_html	= escapeHtmlDoc			-- escape al XML and HTML chars >= 128+	| hasOption a_output_html	= formatEmptyElems True 					  >>>+					  escapeHtmlDoc			-- escape al XML and HTML chars >= 128+					  >>> 					  encodeDocument		-- convert doc into text with respect to output encoding with ASCII as default 					    suppressXmlPi ( lookupDef usAscii a_output_encoding options )-	| hasOption a_output_xml	= escapeXmlDoc			-- escape lt, gt, amp, quot, +	| hasOption a_output_xml	= formatEmptyElems False 					  >>>+					  escapeXmlDoc			-- escape lt, gt, amp, quot, +					  >>> 					  encodeDocument		-- convert doc into text with respect to output encoding 					    suppressXmlPi ( lookupDef "" a_output_encoding options ) 	| otherwise			= this@@ -191,6 +201,7 @@ 	      , ( a_show_haskell,	v_0 ) 	      , ( a_output_html,	v_0 ) 	      , ( a_no_xml_pi,          v_0 )+	      , ( a_no_empty_elements,  v_0 ) 	      ]  -- ------------------------------------------------------------
src/Text/XML/HXT/Arrow/XPath.hs view
@@ -83,7 +83,7 @@  -- | Same as 'getXPathTreesInDoc' but with namespace environment for the XPath names -getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesInDocWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath 					  >>> 					  arrL (PT.getXPathSubTreesWithNsEnv env query)@@ -106,7 +106,7 @@  -- | Same as 'getXPathTrees' but with namespace environment for the XPath names -getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesWithNsEnv			:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree getXPathTreesWithNsEnv env query	= arrL (PT.getXPathSubTreesWithNsEnv env query)  -- | Select a set of nodes via an XPath expression from an arbitray XML tree@@ -122,7 +122,7 @@  -- | Same as 'getXPathNodeSet' but with namespace environment for the XPath names -getXPathNodeSetWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlNodeSet+getXPathNodeSetWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlNodeSet getXPathNodeSetWithNsEnv nsEnv query	= arr (PT.getXPathNodeSetWithNsEnv nsEnv query)  -- ------------------------------------------------------------@@ -226,7 +226,7 @@  -- | Same as 'processXPathTrees' but with namespace environment for the XPath names -processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> NsEnv -> String -> a XmlTree XmlTree+processXPathTreesWithNsEnv	:: ArrowXml a => a XmlTree XmlTree  -> Attributes -> String -> a XmlTree XmlTree processXPathTreesWithNsEnv f nsEnv query     = choiceA       [ isRoot :-> processChildren pns
src/Text/XML/HXT/Arrow/XPathSimple.hs view
@@ -42,42 +42,37 @@ module Text.XML.HXT.Arrow.XPathSimple where +-- import qualified Debug.Trace as T+ import Control.Monad import Control.Arrow.ListArrows  import Data.Maybe -import Text.ParserCombinators.Parsec-    ( runParser )+import Text.ParserCombinators.Parsec		( runParser )  import Text.XML.HXT.DOM.Interface import Text.XML.HXT.Arrow.XmlArrow -import qualified Text.XML.HXT.Arrow.XPath as XP-    ( getXPathTreesWithNsEnv-    )--import Text.XML.HXT.Arrow.Edit-    ( canonicalizeForXPath-    )--import Text.XML.HXT.XPath.XPathDataTypes-    ( XPNumber (..)-    , Expr (..)-    , Op (..)-    , XPathNode (..)-    , LocationPath (..)-    , Path (..)-    , XStep (..)-    , AxisSpec (..)-    , NodeTest (..)-    , XPathValue (..)-    )+import qualified Text.XML.HXT.Arrow.XPath as XP	( getXPathTreesWithNsEnv+						)+import Text.XML.HXT.Arrow.Edit			( canonicalizeForXPath+						) -import Text.XML.HXT.XPath.XPathParser-    ( parseXPath-    , parseNumber-    )+import Text.XML.HXT.XPath.XPathDataTypes	( XPNumber (..)+						, Expr (..)+						, Op (..)+						, XPathNode (..)+						, LocationPath (..)+						, Path (..)+						, XStep (..)+						, AxisSpec (..)+						, NodeTest (..)+						, XPathValue (..)+						)+import Text.XML.HXT.XPath.XPathParser		( parseXPath+						, parseNumber+						)  -- ---------------------------------------- @@ -90,7 +85,7 @@ -- | -- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesInDocWithNsEnv' -getXPathTreesInDocWithNsEnv		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesInDocWithNsEnv		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree getXPathTreesInDocWithNsEnv env query	= canonicalizeForXPath 					  >>> 					  tryGetXPath env query@@ -103,11 +98,11 @@ -- | -- Same Functionality as 'Text.XML.HXT.Arrow.XPath.getXPathTreesWithNsEnv' -getXPathTreesWithNsEnv			:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree+getXPathTreesWithNsEnv			:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree getXPathTreesWithNsEnv			= tryGetXPath  -tryGetXPath				:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree+tryGetXPath				:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree tryGetXPath env query			= ( listA (getXPathTreesWithNsEnvSimple env query) 					    &&& 					    listA (   XP.getXPathTreesWithNsEnv env query)@@ -123,25 +118,26 @@ -- In case of a too complicated or illegal xpath expression an error -- node is returned, else the list of selected XML trees -getXPathTreesWithNsEnvSimple		:: ArrowXml a => NsEnv -> String -> a XmlTree XmlTree-getXPathTreesWithNsEnvSimple env s	= fromLA $ getXP env s+getXPathTreesWithNsEnvSimple		:: ArrowXml a => Attributes -> String -> a XmlTree XmlTree+getXPathTreesWithNsEnvSimple env s	= fromLA $ getXP (toNsEnv env) s  -- ---------------------------------------- -getXP			:: NsEnv -> String -> LA XmlTree XmlTree-getXP env s		= either (err-				  .-				  (("Syntax error in XPath expression " ++ show s ++ ": ") ++)+getXP				:: NsEnv -> String -> LA XmlTree XmlTree+getXP env s			= either ( err+					   .+					   (("Syntax error in XPath expression " ++ show s ++ ": ") ++)+					   .+					   show . show+					 ) (fromMaybe (err ( "XPath expression " ++ show s +++							     " too complicated for simple arrow evaluation"+							   )+						      ) . compXPath+					   )+				  -- . ( \ e -> T.trace (("getXP: xp = "++) . show $ e) e) 				  .-				  show . show-				 ) (fromMaybe (err ( "XPath expression " ++ show s ++-						     " too complicated for simple arrow evaluation"-						   )-					      ) . compXPath-				   )-			  .-			  runParser parseXPath env ""-			  $ s+				  runParser parseXPath env ""+				  $ s  -- ---------------------------------------- 
src/Text/XML/HXT/Arrow/XmlArrow.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.Arrow.XmlArrow-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-9 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: XmlArrow.hs,v 1.34 2006/11/02 16:43:39 hxml Exp $     Basic arrows for processing XML documents @@ -22,25 +21,26 @@     ( module Text.XML.HXT.Arrow.XmlArrow ) where -import Data.Maybe+import           Control.Arrow			-- classes+import           Control.Arrow.ArrowList+import           Control.Arrow.ArrowIf+import           Control.Arrow.ArrowTree -import Control.Arrow			-- classes-import Control.Arrow.ArrowList-import Control.Arrow.ArrowIf-import Control.Arrow.ArrowTree+import           Control.Arrow.ListArrow		-- arrow types+import           Control.Arrow.StateListArrow+import           Control.Arrow.IOListArrow+import           Control.Arrow.IOStateListArrow -import Control.Arrow.ListArrow		-- arrow types-import Control.Arrow.StateListArrow-import Control.Arrow.IOListArrow-import Control.Arrow.IOStateListArrow+import           Data.Maybe  import           Text.XML.HXT.DOM.Interface-import           Text.XML.HXT.DOM.Unicode-    ( isXmlSpaceChar-    )+import           Text.XML.HXT.DOM.Unicode	( isXmlSpaceChar+						) import qualified Text.XML.HXT.DOM.XmlNode as XN import qualified Text.XML.HXT.DOM.ShowXml as XS +-- ------------------------------------------------------------+ {- | Arrows for processing 'Text.XML.HXT.DOM.TypeDefs.XmlTree's  These arrows can be grouped into predicates, selectors, constructors, and transformers.@@ -237,21 +237,21 @@     mkqelem		:: QName -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree     mkqelem  n afs cfs	= mkElement n (catA afs) (catA cfs) -    -- | convenient arrow for element construction with strings instead of qualified names as tagnames, see also 'mkElement' and 'mkelem'+    -- | convenient arrow for element construction with strings instead of qualified names as element names, see also 'mkElement' and 'mkelem'     mkelem		:: String -> [a n XmlTree] -> [a n XmlTree] -> a n XmlTree-    mkelem  n afs cfs	= mkElement (mkSNsName n) (catA afs) (catA cfs)+    mkelem  n afs cfs	= mkElement (mkName n) (catA afs) (catA cfs)      -- | convenient arrow for element constrution with attributes but without content, simple variant of 'mkelem' and 'mkElement'     aelem		:: String -> [a n XmlTree]                  -> a n XmlTree-    aelem n afs		= catA afs >. \ al -> XN.mkElement (mkSNsName n) al []+    aelem n afs		= catA afs >. \ al -> XN.mkElement (mkName n) al []      -- | convenient arrow for simple element constrution without attributes, simple variant of 'mkelem' and 'mkElement'     selem		:: String                  -> [a n XmlTree] -> a n XmlTree-    selem n cfs		= catA cfs >.         XN.mkElement (mkSNsName n) []+    selem n cfs		= catA cfs >.         XN.mkElement (mkName n) []      -- | convenient arrow for constrution of empty elements without attributes, simple variant of 'mkelem' and 'mkElement'     eelem		:: String                                   -> a n XmlTree-    eelem n		= constA      (XN.mkElement (mkSNsName n) [] [])+    eelem n		= constA      (XN.mkElement (mkName n) [] [])      -- | construction of an element node with name \"\/\" for document roots     root		::           [a n XmlTree] -> [a n XmlTree] -> a n XmlTree@@ -263,7 +263,7 @@      -- | convenient arrow for attribute constrution, simple variant of 'mkAttr'     attr		:: String -> a n XmlTree -> a n XmlTree-    attr		= mkAttr . mkSNsName+    attr		= mkAttr . mkName      -- constant arrows (ignoring the input) for tree construction ------------------------------ @@ -297,7 +297,7 @@      -- | constant arrow for simple processing instructions, see 'mkPi'     spi			:: String -> String -> a n XmlTree-    spi piName piCont	= constA (XN.mkPi   (mkSNsName piName) [XN.mkText piCont])+    spi piName piCont	= constA (XN.mkPi   (mkName piName) [XN.mkText piCont])      -- | constant arrow for attribute nodes, attribute name is a qualified name and value is a text,     -- | see also 'mkAttr', 'qattr', 'attr'@@ -307,7 +307,7 @@     -- | constant arrow for attribute nodes, attribute name and value are     -- | given by parameters, see 'mkAttr'     sattr		:: String -> String -> a n XmlTree-    sattr an av		= constA (XN.mkAttr (mkSNsName an)     [XN.mkText av])+    sattr an av		= constA (XN.mkAttr (mkName an)     [XN.mkText av])      -- selector arrows -------------------------------------------------- 
src/Text/XML/HXT/Arrow/XmlIOStateArrow.hs view
@@ -101,6 +101,7 @@       withTraceLevel,       trace,       traceMsg,+      traceValue,       traceString,       traceSource,       traceTree,@@ -633,7 +634,7 @@ setBaseURI     = changeSysParam (\ b s -> s { xio_baseURI = b } )       >>>-      traceString 2 (("setBaseURI: new base URI is " ++) . show)+      traceValue 2 (("setBaseURI: new base URI is " ++) . show)  -- | read the base URI from the globale state @@ -675,7 +676,7 @@       >>>       changeSysParam (\ b s -> s { xio_defaultBaseURI = b } )       >>>-      traceString 2 (("setDefaultBaseURI: new default base URI is " ++) . show)+      traceValue 2 (("setDefaultBaseURI: new default base URI is " ++) . show)     where     getDir _ = do 	       cwd <- getCurrentDirectory@@ -768,17 +769,25 @@ 	       isA (>= level) 	     ) --- | issue a string message as trace +-- | trace the current value transfered in a sequence of arrows.+--+-- The value is formated by a string conversion function. This is a substitute for+-- the old and less general traceString function++traceValue		:: Int -> (b -> String) -> IOStateArrow s b b+traceValue level trc+    = trace level (arr $ (('-' : "- (" ++ show level ++ ") ") ++) . trc)++-- | an old alias for 'traceValue'++traceString		:: Int -> (b -> String) -> IOStateArrow s b b+traceString		= traceValue++-- | issue a string message as trace+ traceMsg	:: Int -> String -> IOStateArrow s b b traceMsg level msg-    = perform ( trace level $-		constA ('-' : "- (" ++ show level ++ ") " ++ msg)-	      )---- | issue the string input of an arrow-traceString	:: Int -> (String -> String) -> IOStateArrow s String String-traceString level f-    = perform (applyA (arr f >>> arr (traceMsg level)))+    = traceValue level (const msg)  -- | issue the source representation of a document if trace level >= 3 --@@ -832,7 +841,7 @@ 			applyA (arr formatParam) 		      ) 		>>>-		traceString 2 ("global state:\n" ++)+		traceValue 2 ("global state:\n" ++) 	      )       where       -- formatParam	:: (String, XmlTrees) -> IOStateArrow s b1 XmlTree
src/Text/XML/HXT/DOM/Interface.hs view
@@ -20,7 +20,6 @@ module Text.XML.HXT.DOM.Interface     ( module Text.XML.HXT.DOM.XmlKeywords     , module Text.XML.HXT.DOM.TypeDefs-    , module Text.XML.HXT.DOM.NamespacePredicates     , module Text.XML.HXT.DOM.Util     , module Text.XML.HXT.DOM.XmlOptions     , module Text.XML.HXT.DOM.MimeTypes@@ -29,7 +28,6 @@  import Text.XML.HXT.DOM.XmlKeywords		-- constants import Text.XML.HXT.DOM.TypeDefs		-- XML Tree types-import Text.XML.HXT.DOM.NamespacePredicates import Text.XML.HXT.DOM.Util import Text.XML.HXT.DOM.XmlOptions		-- predefined options import Text.XML.HXT.DOM.MimeTypes		-- mime types related stuff
src/Text/XML/HXT/DOM/MimeTypes.hs view
@@ -18,11 +18,14 @@ module Text.XML.HXT.DOM.MimeTypes where -import           Control.Monad (mplus)+import           Control.Monad		( mplus ) +import qualified Data.ByteString	as B+import qualified Data.ByteString.Char8  as C+ import           Data.Char import           Data.List-import qualified Data.Map as M+import qualified Data.Map		as M import           Data.Maybe  import           System.IO@@ -93,9 +96,8 @@ readMimeTypeTable	:: FilePath -> IO MimeTypeTable readMimeTypeTable inp     = do-      h <- openFile inp ReadMode-      c <- hGetContents h-      return . M.fromList . parseMimeTypeTable $ c+      cb <- B.readFile inp+      return . M.fromList . parseMimeTypeTable . C.unpack $ cb  parseMimeTypeTable	:: String -> [(String, String)] parseMimeTypeTable
− src/Text/XML/HXT/DOM/NamespacePredicates.hs
@@ -1,128 +0,0 @@--- |--- basic Namespace and QName predicates and functions------ $Id: NamespacePredicates.hs,v 1.3 2006/11/12 14:53:00 hxml Exp $-----module Text.XML.HXT.DOM.NamespacePredicates-    ( module Text.XML.HXT.DOM.NamespacePredicates-    )-where--import Text.XML.HXT.DOM.XmlTreeTypes		-- NTree and XNode types-import Text.XML.HXT.DOM.XmlKeywords		-- keywords for DTD--import Text.XML.HXT.DOM.Unicode-    ( isXmlNCNameStartChar-    , isXmlNCNameChar-    )---- ------------------------------------------------------------------------------------ |--- Compute the name prefix and the namespace uri for a qualified name.------ This function does not test whether the name is a wellformed qualified name.--- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,--- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.--setNamespace	:: NsEnv -> QName -> QName-setNamespace nst n-    = uncurry ns . span (/= ':') $ qn-    where-    qn = qualifiedName n	-- using qualifiedName instead of localPart enables recomputing of setNamespace--    ns :: String -> String -> QName-    ns lp ""					-- no ":" found in name, use default namespace uri-	= mkQName "" lp (lookup1 "" nst)--    ns px@(_:_) (':' : lp@(_:_))		-- non empty prefix and non empty local part found-	= mkQName px lp (lookup1 px nst)--    ns _ _					-- not a legal qualified name, don't change name-	= n--xmlnsQN	:: QName-xmlnsQN	= mkQName "" a_xmlns xmlnsNamespace---- ------------------------------------------------------------------------------------ |--- test for wellformed NCName, rule [4] XML Namespaces--isNCName	:: String -> Bool-isNCName []-    = False-isNCName n-    = and ( zipWith ($)-	    (isXmlNCNameStartChar : repeat isXmlNCNameChar)-	    n-	  )---- |--- test for wellformed QName, rule [6] XML Namespaces--- predicate is used in filter 'valdateNamespaces'.--isWellformedQualifiedName	:: String -> Bool-isWellformedQualifiedName s-    | null lp-	= isNCName px-    | otherwise-	= isNCName px && isNCName (tail lp)-    where-    (px, lp) = span (/= ':') s---- |--- test for wellformed QName values.--- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.--- predicate is used in filter 'valdateNamespaces'.--isWellformedQName	:: QName -> Bool-isWellformedQName n-    = isNCName lp				-- rule [8] XML Namespaces-      &&-      ( null px					-- rule [6] XML Namespaces-	||-	isNCName px				-- rule [7] XML Namespaces-      )-    where-    px = namePrefix n-    lp = localPart n---- |--- test for a wellformed namespace declaration--- all namespace prefixes starting with \"xml\" are reserved for XML related definitions.--- predicate is used in filter 'valdateNamespaces'.--isWellformedNSDecl	:: QName -> Bool-isWellformedNSDecl n-    = null px-      ||-      px /= a_xmlns-      ||-      (take 3 lp) /= a_xml-    where-    lp = localPart  n-    px = namePrefix n---- |--- --- predicate is used in filter 'valdateNamespaces'.--isDeclaredNamespace	:: QName -> Bool-isDeclaredNamespace n-    | null px					-- no namespace used-	= True-    | px == a_xmlns				-- "xmlns" has a predefined namespace uri-	= ns == xmlnsNamespace-    | px == a_xml				-- "xml" has a predefiend namespace"-	= ns == xmlNamespace-    | otherwise					-- namespace values are not empty-	= (not . null) ns-    where-    px = namePrefix   n-    ns = namespaceUri n---- -----------------------------------------------------------------------------
src/Text/XML/HXT/DOM/QualifiedName.hs view
@@ -16,17 +16,100 @@ -- ------------------------------------------------------------  module Text.XML.HXT.DOM.QualifiedName-    ( module Text.XML.HXT.DOM.QualifiedName+    ( QName+    , XName+    , NsEnv++    , mkQName+    , mkName+    , mkNsName+    , mkSNsName+    , mkPrefixLocalPart++    , equivQName+    , equivUri+    , equalQNameBy++    , namePrefix+    , localPart+    , namespaceUri++    , newXName+    , nullXName+    , isNullXName++    , mkQName'+    , namePrefix'+    , localPart'+    , namespaceUri'++    , setNamePrefix'+    , setLocalPart'+    , setNamespaceUri'++    , qualifiedName+    , universalName+    , universalUri+    , buildUniversalName++    , normalizeNsUri++    , setNamespace                      -- namespace related functions+    , isNCName+    , isWellformedQualifiedName+    , isWellformedQName+    , isWellformedNSDecl+    , isWellformedNameSpaceName+    , isNameSpaceName+    , isDeclaredNamespace++    , xmlNamespaceXName+    , xmlXName+    , xmlnsNamespaceXName+    , xmlnsXName+    , xmlnsQN++    , toNsEnv     )  where-import Control.Parallel.Strategies -import Data.Char		(toLower)-import Data.Typeable+{-+import           Debug.Trace+ -} +import           Control.Arrow                  ( (***) )++import           Control.Concurrent.MVar+import           Control.Parallel.Strategies++import           Data.AssocList+import           Data.Char                      ( toLower )+import           Data.List                      ( isPrefixOf )+import qualified Data.Map               as M+import           Data.Maybe+import           Data.Typeable++import           System.IO.Unsafe               ( unsafePerformIO )++import           Text.XML.HXT.DOM.XmlKeywords   ( a_xml+                                                , a_xmlns+                                                , xmlNamespace+                                                , xmlnsNamespace+                                                )++import           Text.XML.HXT.DOM.Unicode       ( isXmlNCNameStartChar+                                                , isXmlNCNameChar+                                                )+ -- --------------------------------------------------------------------------------++-- | 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++type XName      = Atom+ -- | -- Namespace support for element and attribute names. --@@ -36,179 +119,419 @@ -- When dealing with namespaces, the document tree must be processed by "propagateNamespaces" -- to split names of structure \"prefix:localPart\" and label the name with the apropriate namespace uri -data QName = QN { namePrefix	:: String	-- ^ the name prefix part of a qualified name \"namePrefix:localPart\"-		, localPart	:: String	-- ^ the local part of a qualified name \"namePrefix:localPart\"-		, namespaceUri	:: String	-- ^ the associated namespace uri-		}-	     deriving (Ord, Show, Read, Typeable)+data QName      = LP ! XName+                | PX ! XName ! QName+                | NS ! XName ! QName+             deriving (Ord, Show, Read, Typeable) +-- |+-- Type for the namespace association list, used when propagating namespaces by+-- modifying the 'QName' values in a tree++type NsEnv = AssocList XName XName++-- -----------------------------------------------------------------------------+ -- | Two QNames are equal if (1. case) namespaces are both empty and the qualified names -- (prefix:localpart) are the same or (2. case) namespaces are set and namespaces and -- local parts both are equal      instance Eq QName where-    q1 == q2-	| null ns1 && null ns2-	    = qualifiedName q1 == qualifiedName q2-	| otherwise-	    = localPart q1 == localPart q2-	      &&-	      ns1 == ns2-	where-	ns1 = namespaceUri q1-	ns2 = namespaceUri q2+    (LP lp1)     == (LP lp2)            = lp1 == lp2+    (PX px1 qn1) == (PX px2 qn2)        = px1 == px2 && qn1== qn2+    (NS ns1 qn1) == (NS ns2 qn2)        = ns1 == ns2 && localPart' qn1 == localPart' qn2+    n1@(PX _ _)  == n2@(LP _)           = qualifiedName n1 == qualifiedName n2+    n1@(LP _)    == n2@(PX _ _)         = qualifiedName n1 == qualifiedName n2+    _            == _                   = False +-- the 4. and 5. rule are only neccessary when someone+-- uses XML names not in a systematical way+-- and does things like "mkName("x:y") == mkPrefixLocalPart("x","y")+ instance NFData QName where-    rnf (QN np lp ns)	= rnf np `seq` rnf lp `seq` rnf ns +-- ----------------------------------------------------------------------------- --- just for adding the module to the lib+newXName                :: String -> XName+newXName                = newAtom++isNullXName             :: XName -> Bool+isNullXName             = (== nullXName)++nullXName               :: XName+nullXName               = newXName ""++-- | access name prefix++namePrefix'             :: QName -> XName+namePrefix' (LP _)      = nullXName+namePrefix' (PX px _)   = px+namePrefix' (NS _ n)    = namePrefix' n++-- | access local part++localPart'              :: QName -> XName+localPart' (LP lp)      = lp+localPart' (PX _ n)     = localPart' n+localPart' (NS _ n)     = localPart' n++-- | access namespace uri++namespaceUri'           :: QName -> XName+namespaceUri' (NS ns _) = ns+namespaceUri' _         = nullXName++namePrefix              :: QName -> String+namePrefix              = show . namePrefix'++localPart               :: QName -> String+localPart               = show . localPart'++namespaceUri            :: QName -> String+namespaceUri            = show . namespaceUri'++-- ------------------------------------------------------------++-- | set name prefix++setNamespaceUri'                :: XName -> QName -> QName+setNamespaceUri' ns (NS _ n)    = if isNullXName ns+                                  then n+                                  else NS ns n+setNamespaceUri' ns n           = if isNullXName ns+                                  then n+                                  else NS ns n++-- | set local part++setLocalPart'                   :: XName -> QName -> QName+setLocalPart' lp (LP _)         = LP lp+setLocalPart' lp (PX px n)      = PX px (setLocalPart' lp n)+setLocalPart' lp (NS ns n)      = NS ns (setLocalPart' lp n)++-- | set name prefix++setNamePrefix'                  :: XName -> QName -> QName+setNamePrefix' px (PX _ n)      = if px == nullXName+                                  then n+                                  else PX px n+setNamePrefix' px n@(LP _)      = if px == nullXName+                                  then n+                                  else PX px n+setNamePrefix' px (NS ns n)     = NS ns (setNamePrefix' px n)+++-- ------------------------------------------------------------+ -- | -- builds the full name \"prefix:localPart\", if prefix is not null, else the local part is the result -qualifiedName		:: QName -> String-qualifiedName n-    | null px-	= lp-    | otherwise-	= px ++ (':' : lp)-    where-    px = namePrefix n-    lp = localPart  n+qualifiedName                   :: QName -> String+qualifiedName (LP lp)           = show lp+qualifiedName (PX px n)         = show px ++ (':' : qualifiedName n)+qualifiedName (NS _ n)          = qualifiedName n  -- | -- builds the \"universal\" name, that is the namespace uri surrounded with \"{\" and \"}\" followed by the local part -- (specialisation of 'buildUniversalName') -universalName	:: QName -> String-universalName	= buildUniversalName (\ ns lp -> '{' : ns ++ '}' : lp)+universalName                   :: QName -> String+universalName                   = buildUniversalName (\ ns lp -> '{' : ns ++ '}' : lp)  -- | -- builds an \"universal\" uri, that is the namespace uri followed by the local part. This is usefull for RDF applications, -- where the subject, predicate and object often are concatenated from namespace uri and local part -- (specialisation of 'buildUniversalName') -universalUri	:: QName -> String-universalUri	= buildUniversalName (++)+universalUri                    :: QName -> String+universalUri                    = buildUniversalName (++)  -- | -- builds a string from the namespace uri and the local part. If the namespace uri is empty, the local part is returned, else -- namespace uri and local part are combined with the combining function given by the first parameter -buildUniversalName	:: (String -> String -> String) -> QName -> String-buildUniversalName bf n-    | null ns-	= lp-    | otherwise-	= bf ns lp-    where-    ns = namespaceUri n-    lp = localPart    n---- |--- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.+buildUniversalName              :: (String -> String -> String) -> QName -> String+buildUniversalName bf (NS ns n) = show ns `bf` localPart n+buildUniversalName _  n         = localPart n -mkQName	:: String -> String -> String -> QName-mkQName p l n-    = QN { namePrefix	= p-	 , localPart	= l-	 , namespaceUri	= n-	 }+-- ------------------------------------------------------------+--+-- internal XName functions --- |--- constructs a simple, namespace unaware name, 'namePrefix' and 'namespaceUri' are set to the empty string.+mkQName'                        :: XName -> XName -> XName -> QName+mkQName' px lp ns+    | isNullXName ns            =       px_lp+    | otherwise                 = NS ns px_lp+    where+    px_lp+        | isNullXName px        = LP lp+        | otherwise             = PX px (LP lp) -mkName	:: String -> QName-mkName s-    = QN { namePrefix	= ""-	 , localPart	= s-	 , namespaceUri	= ""-	 }+-- ------------------------------------------------------------  -- | -- constructs a simple name, with prefix and localPart but without a namespace uri. ----- see also 'mkName', 'mkNsName', 'mkSNsName'+-- see also 'mkQName', 'mkName' -mkPrefixLocalPart	:: String -> String -> QName-mkPrefixLocalPart p l-    = QN { namePrefix	= p-	 , localPart	= l-	 , namespaceUri	= ""-	 }+mkPrefixLocalPart               :: String -> String -> QName+mkPrefixLocalPart px lp+    | null px                   =                  n1+    | otherwise                 = PX (newXName px) n1+    where+    n1 = LP (newXName lp)  -- |--- constructs a simple, namespace aware name, with prefix:localPart as first parameter, namspace uri as second.------ see also 'mkName', 'mkPrefixLocalPart'--mkNsName	:: String -> String -> QName-mkNsName n ns-    = QN { namePrefix	= p-	 , localPart	= l-	 , namespaceUri	= ns-	 }-      where-      (x1, x2) = span (/= ':') n-      (p, l)-	  | null x2	= ("", x1)-	  | otherwise	= (x1, tail x2)+-- constructs a simple, namespace unaware name.+-- If the name is in @prefix:localpart@ form and the prefix is not empty+-- the name is split internally into+-- a prefix and a local part. +mkName                          :: String -> QName+mkName n                        +    | (':' `elem` n)+      &&+      not (null px)			-- more restrictive: isWellformedQualifiedName n+                                = mkPrefixLocalPart px lp+    | otherwise                 = mkPrefixLocalPart "" n+    where+    (px, (_:lp)) = span (/= ':') n  -- |--- constructs a simple name, with prefix:localPart as 1 parameter, with empty namspace uri, same as 'mkPrefixLocalPart, but with a single parameter------ see also 'mkNsName', 'mkPrefixLocalPart'+-- constructs a complete qualified name with 'namePrefix', 'localPart' and 'namespaceUri'.+-- This function can be used to build not wellformed prefix:localpart names.+-- The XPath module uses wildcard names like @xxx:*@. These must be build with 'mkQName'+-- and not with mkName. -mkSNsName	:: String -> QName-mkSNsName n	= mkNsName n ""+mkQName                         :: String -> String -> String -> QName+mkQName px lp ns+    | null ns                   =                  n1+    | otherwise                 = NS (newXName ns) n1+    where+    n1 = mkPrefixLocalPart px lp --- | Empty QName+-- ------------------------------------------------------------ -nullQName	:: QName-nullQName	= QN "" "" ""+-- |+-- old name for 'mkName' --- | Equality of QNames: Two QNames are equal, if the local parts are equal--- and the namespace URIs are equal.--- The comparison works with and without namespace propagation.--- If namespaces have been propagated, the name is split into prefix and local part--- and the namespace uri is set. In this case the prefix is not significant for equality test.--- If namespaces have not been propagated, the local part contains the full name, prefix--- and namespace URI are empty. The full name (prefix and local part) is used for comparison.+mkSNsName                       :: String -> QName+mkSNsName                       = mkName -equalQName	:: QName -> QName -> Bool-equalQName 	= equalQNameBy (==)+-- |+-- constructs a simple, namespace aware name, with prefix:localPart as first parameter,+-- namspace uri as second.+--+-- see also 'mkName', 'mkPrefixLocalPart' +mkNsName                        :: String -> String -> QName+mkNsName n ns+    | null ns                   =                   mkName n+    | otherwise                 = NS (newXName ns) (mkName n)++-- ------------------------------------------------------------+ -- | Equivalent QNames are defined as follows: The URIs are normalized before comparison. -- Comparison is done with 'equalQNameBy' and 'equivUri' -equivQName	:: QName -> QName -> Bool-equivQName	= equalQNameBy equivUri+equivQName                      :: QName -> QName -> Bool+equivQName                      = equalQNameBy equivUri  -- | Comparison of normalized namespace URIs using 'normalizeNsUri' -equivUri	:: String -> String -> Bool-equivUri x y	= normalizeNsUri x == normalizeNsUri y+equivUri                        :: String -> String -> Bool+equivUri x y                    = normalizeNsUri x == normalizeNsUri y  -- | Sometimes a weaker equality relation than 'equalQName' is appropriate, e.g no case significance in names, ... -- a name normalization function can be applied to the strings before comparing. Called by 'equalQName' and -- 'equivQName' -equalQNameBy	:: (String -> String -> Bool) -> QName -> QName -> Bool-equalQNameBy equiv q1 q2-    = localPart q1 == localPart q2-      &&-      (namespaceUri q1 `equiv` namespaceUri q2)+equalQNameBy                    :: (String -> String -> Bool) -> QName -> QName -> Bool+equalQNameBy equiv q1 q2        = localPart q1 == localPart q2+                                  &&+                                  (namespaceUri q1 `equiv` namespaceUri q2)  -- |  Normalization of URIs: Normalization is done by conversion into lowercase letters. A trailing \"\/\" is ignored -normalizeNsUri	:: String -> String-normalizeNsUri-    = map toLower . stripSlash+normalizeNsUri                  :: String -> String+normalizeNsUri                  = map toLower . stripSlash     where-    stripSlash ""	= ""+    stripSlash ""               = ""     stripSlash s-	| last s == '/'	= init s-	| otherwise	= s+        | last s == '/'         = init s+        | otherwise             = s  -- -----------------------------------------------------------------------------++-- Namespace predicates++-- |+-- Compute the name prefix and the namespace uri for a qualified name.+--+-- This function does not test whether the name is a wellformed qualified name.+-- see Namespaces in XML Rule [6] to [8]. Error checking is done with separate functions,+-- see 'isWellformedQName' and 'isWellformedQualifiedName' for error checking.++setNamespace                    :: NsEnv -> QName -> QName+setNamespace env n@(PX px _)    = attachNS env px        n              -- none empty prefix found+setNamespace env n@(LP _)       = attachNS env nullXName n              -- use default namespace uri+setNamespace env (NS _ n)       = setNamespace env n++attachNS                        :: NsEnv -> XName -> QName -> QName+attachNS env px n1              = maybe n1 (\ ns -> NS ns n1) . lookup px $ env++xmlnsNamespaceXName             :: XName+xmlnsNamespaceXName             = newXName xmlnsNamespace++xmlnsXName                      :: XName+xmlnsXName                      = newXName a_xmlns++xmlnsQN                         :: QName+xmlnsQN                         = NS xmlnsNamespaceXName (LP xmlnsXName)++xmlNamespaceXName               :: XName+xmlNamespaceXName               = newXName xmlNamespace++xmlXName                        :: XName+xmlXName                        = newXName a_xml++-- -----------------------------------------------------------------------------+--++-- |+-- test for wellformed NCName, rule [4] XML Namespaces++isNCName                        :: String -> Bool+isNCName []                     = False+isNCName n                      = and ( zipWith ($)+                                        (isXmlNCNameStartChar : repeat isXmlNCNameChar)+                                        n+                                      )++-- |+-- test for wellformed QName, rule [6] XML Namespaces+-- predicate is used in filter 'valdateNamespaces'.++isWellformedQualifiedName       :: String -> Bool+isWellformedQualifiedName s+    | null lp                   = isNCName px+    | otherwise                 = isNCName px && isNCName (tail lp)+    where+    (px, lp)                    = span (/= ':') s++-- |+-- test for wellformed QName values.+-- A QName is wellformed, if the local part is a NCName, the namePrefix, if not empty, is also a NCName.+-- predicate is used in filter 'valdateNamespaces'.++isWellformedQName               :: QName -> Bool+isWellformedQName (LP lp)       = isNCName . show $ lp                          -- rule [8] XML Namespaces+isWellformedQName (PX px n)     = (isNCName . show) px                          -- rule [7] XML Namespaces+                                  &&+                                  isWellformedQName n+isWellformedQName (NS _ n)      = isWellformedQName n++-- |+-- 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'.++isWellformedNSDecl              :: QName -> Bool+isWellformedNSDecl n            = not (isNameSpaceName n)+                                  ||+                                  isWellformedNameSpaceName n++-- |+-- test for a namespace name to be well formed++isWellformedNameSpaceName               :: QName -> Bool+isWellformedNameSpaceName (LP lp)       = lp == xmlnsXName+isWellformedNameSpaceName (PX px n)     = px == xmlnsXName+                                          &&+                                          not (null lp')+                                          &&+                                          not (a_xml `isPrefixOf` lp')+                                          where+                                          lp' = localPart n+isWellformedNameSpaceName (NS _ n)      = isWellformedNSDecl n++-- |+-- test whether a name is a namespace declaration attribute name++isNameSpaceName                 :: QName -> Bool+isNameSpaceName (LP lp)         = lp == xmlnsXName+isNameSpaceName (PX px _)       = px == xmlnsXName+isNameSpaceName (NS _  n)       = isNameSpaceName n++-- |+-- +-- predicate is used in filter 'valdateNamespaces'.++isDeclaredNamespace             :: QName -> Bool+isDeclaredNamespace (NS ns n)   = isNS ns        n+isDeclaredNamespace        n    = isNS nullXName n++isNS                            :: XName -> QName -> Bool+isNS _  (LP _)                  = True                          -- no namespace used+isNS ns (PX px _)+    | px == xmlnsXName          = ns == xmlnsNamespaceXName     -- "xmlns" has a predefined namespace uri+    | px == xmlXName            = ns == xmlNamespaceXName       -- "xml" has a predefiend namespace"+    | otherwise                 = ns /= nullXName               -- namespace values are not empty+isNS ns (NS _ n)                = isNS ns n                     -- this does not occur, but warning is prevented++-- -----------------------------------------------------------------------------++toNsEnv                         :: AssocList String String -> NsEnv+toNsEnv                         = map (newXName *** newXName)++-- -----------------------------------------------------------------------------++-- the name cache, same implementation strategy as in Data.Atom,+-- but conversion to and from ByteString prevented++type Atoms      = M.Map String String++newtype Atom    = A String+                  deriving (Eq, Ord, Typeable)++-- ------------------------------------------------------------++-- | the internal cache for the strings++theAtoms        :: MVar Atoms+theAtoms        = unsafePerformIO (newMVar M.empty)+{-# NOINLINE theAtoms #-}++-- | insert a bytestring into the atom cache++insertAtom      :: String -> Atoms -> (Atoms, Atom)+insertAtom s m  = maybe (M.insert {- (trace (show s) s) -} s s m, A s `demanding` rnf s)+                        (\ s' -> (m, A s'))+                  .+                  M.lookup s $ m++-- | creation of an @Atom@ from a @String@++newAtom         :: String -> Atom+newAtom         = unsafePerformIO . newAtom'+{-# NOINLINE newAtom #-}++-- | The internal operation running in the IO monad+newAtom'        :: String -> IO Atom+newAtom' s      = do+                  m <- takeMVar theAtoms+                  let (m', a) = insertAtom s m+                  putMVar theAtoms m'+                  return a++instance Read Atom where+    readsPrec p str = [ (newAtom x, y) | (x, y) <- readsPrec p str ]++instance Show Atom where+    show (A s)  = s++instance NFData Atom where++-----------------------------------------------------------------------------
src/Text/XML/HXT/DOM/ShowXml.hs view
@@ -2,7 +2,7 @@  {- |    Module     : Text.XML.HXT.DOM.ShowXml-   Copyright  : Copyright (C) 2008 Uwe Schmidt+   Copyright  : Copyright (C) 2008-9 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)@@ -21,15 +21,14 @@     ) where +import Data.Maybe import Data.Tree.NTree.TypeDefs  import Text.XML.HXT.DOM.TypeDefs		-- XML Tree types import Text.XML.HXT.DOM.XmlKeywords-import Text.XML.HXT.DOM.XmlNode-    ( mkDTDElem-    , getDTDAttrl-    )-import Data.Maybe+import Text.XML.HXT.DOM.XmlNode			( mkDTDElem+						, getDTDAttrl+						)  -- ----------------------------------------------------------------------------- --
src/Text/XML/HXT/DOM/TypeDefs.hs view
@@ -29,7 +29,7 @@ import Data.Tree.NTree.TypeDefs import Data.Typeable -import Text.XML.HXT.DOM.QualifiedName hiding ( QN )+import Text.XML.HXT.DOM.QualifiedName  -- ----------------------------------------------------------------------------- --@@ -126,15 +126,6 @@ -- used for storing option lists and features of DTD parts  type Attributes	= AssocList String String---- ------------------------------------------------------------------------------------ |--- Type for the namespace association list, used when propagating namespaces by--- modifying the 'QName' values in a tree--type NsEnv = AssocList String String  -- ----------------------------------------------------------------------------- --
src/Text/XML/HXT/DOM/Unicode.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.DOM.Unicode-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id$     Unicode and UTF-8 Conversion Functions @@ -279,9 +278,9 @@  isXmlPubidChar		:: Unicode -> Bool isXmlPubidChar c-    = isInList c [ ('A', 'Z')+    = isInList c [ ('0', '9')+		 , ('A', 'Z') 		 , ('a', 'z')-		 , ('0', '9') 		 ]       ||       ( c `elem` " \r\n-'()+,./:=?;!*#@$_%" )
src/Text/XML/HXT/DOM/XmlKeywords.hs view
@@ -56,6 +56,7 @@  a_module,  a_modifier,  a_name,+ a_no_empty_elements,  a_no_xml_pi,  a_options_curl,  a_output_encoding,@@ -75,6 +76,7 @@  a_source,  a_status,  a_standalone,+ a_strict_input,  a_tagsoup,  a_trace,  a_type,@@ -162,6 +164,7 @@ a_module			= "module" a_modifier			= "modifier" a_name				= "name"+a_no_empty_elements		= "no-empty-elements" a_no_xml_pi                     = "no-xml-pi" a_options_curl			= "options-curl" a_output_file			= "output-file"@@ -181,6 +184,7 @@ a_source			= "source" a_standalone			= "standalone" a_status			= "status"+a_strict_input			= "strict-input" a_tagsoup			= "tagsoup" a_trace				= "trace" a_type				= "type"
src/Text/XML/HXT/DOM/XmlNode.hs view
@@ -303,7 +303,7 @@ mkElement n al	= mkTree (mkElementNode n al)  mkRoot		:: XmlTrees -> XmlTrees -> XmlTree-mkRoot al	= mkTree (mkElementNode (mkSNsName t_root) al)+mkRoot al	= mkTree (mkElementNode (mkName t_root) al)  mkAttr		:: QName -> XmlTrees -> XmlTree mkAttr n	= mkTree (mkAttrNode n)
src/Text/XML/HXT/DOM/XmlOptions.hs view
@@ -58,6 +58,7 @@       , Option "H"	[a_parse_html]			(NoArg	(att a_parse_html        v_1))	"parse input as HTML, try to interprete everything as HTML, no validation"       , Option "M"	[a_parse_by_mimetype]		(NoArg  (att a_parse_by_mimetype v_1))	"parse dependent on mime type: text/html as HTML, text/xml and text/xhtml and others as XML, else no parse"       , Option ""	[a_parse_xml]			(NoArg	(att a_parse_html        v_0))	"parse input as XML, (default)"+      , Option ""       [a_strict_input]		(NoArg  (att a_strict_input      v_1))  "read input files strictly, this ensures closing the files correctly even if not read completely"       , Option "T"	[a_tagsoup]			(NoArg	(att a_tagsoup           v_1))	"lasy tagsoup parser, for HTML and XML, no DTD, no validation, no PIs, only XHTML entityrefs"       , Option ""	[a_issue_warnings]		(NoArg	(att a_issue_warnings    v_1))	"issue warnings, when parsing HTML (default)"       , Option "Q"	[a_do_not_issue_warnings]	(NoArg	(att a_issue_warnings    v_0))	"ignore warnings, when parsing HTML"@@ -112,6 +113,7 @@       , Option "f"	[a_output_file]		(ReqArg (att a_output_file)        "FILE")	"output file for resulting document (default: stdout)"       , Option ""	[a_output_html]	        (NoArg  (att a_output_html           v_1))	"output of none ASCII chars as HTMl entity references"       , Option ""       [a_no_xml_pi]	        (NoArg  (att a_no_xml_pi             v_1))      ("output without <?xml ...?> processing instruction, useful in combination with --" ++ show a_output_html)+      , Option ""       [a_no_empty_elements]   (NoArg  (att a_no_empty_elements     v_1))      "output of empty elements done in format <elem...></elem> instead of <elem/>"       ]     where     att n v	= (n, v)
− src/Text/XML/HXT/DOM/XmlTreeTypes.hs
@@ -1,77 +0,0 @@--- |--- exports the core data types--- and some additional types and functions--- for compatibility with none arrow modules------ Version : $Id: XmlTreeTypes.hs,v 1.6 2006/05/09 15:30:43 hxml Exp $--module Text.XML.HXT.DOM.XmlTreeTypes-    ( module Data.Tree.NTree.Filter-    , module Text.XML.HXT.DOM.TypeDefs-    , module Text.XML.HXT.DOM.XmlTreeTypes-    )--where--import Data.Tree.NTree.Filter-import Text.XML.HXT.DOM.TypeDefs---- aliases for compatiblility reasons--mkNode		:: node -> NTrees node -> NTree node-mkNode		= mkTree--formatNTree	:: (node -> String) -> NTree node -> String-formatNTree	= formatTree--foldNTree	:: (a -> [b] -> b) -> NTree a -> b-foldNTree 	= foldTree--mapNTree	:: (a -> b) -> NTree a -> NTree b-mapNTree 	= fmap--nTreeToList	:: NTree a -> [a]-nTreeToList	= nodesTree--depthNTree	:: NTree a -> Int-depthNTree	= depthTree--cardNTree	:: NTree a -> Int-cardNTree	= cardNTree---- ----------------------------------------------------------------------------------- Basic types for filters---- | A functions that takes a node and returns a list of nodes--type XmlFilter	= TFilter  XNode---- | A function that takes a list of nodes and returns a list of nodes--type XmlSFilter	= TSFilter XNode----- ------------------------------------------------------------------------------------ | Tag name-type TagName	= QName---- | Attribute name-type AttrName	= QName---- --------------------------------------------------------------------------------- | shortcut for 'qualifiedName'--tName	:: QName -> String-tName	= qualifiedName---- | shortcut for 'qualifiedName'--aName	:: QName -> String-aName	= qualifiedName---- ------------------------------------------------------------------------------
src/Text/XML/HXT/IO/GetFILE.hs view
@@ -1,40 +1,55 @@ -- ------------------------------------------------------------------ GET for local file access------ Version : $Id: GetFILE.hs,v 1.6 2006/09/04 06:03:03 hxml Exp $ +{- |+   Module     : Text.XML.HXT.IO.GetFILE+   Copyright  : Copyright (C) 2008 Uwe Schmidt+   License    : MIT++   Maintainer : Uwe Schmidt (uwe@fh-wedel.de)+   Stability  : stable+   Portability: portable++   The GET method for file protocol++-}++-- ------------------------------------------------------------+ module Text.XML.HXT.IO.GetFILE-    ( module Text.XML.HXT.IO.GetFILE+    ( getStdinCont+    , getCont     )  where -import System.IO-    ( IOMode(..)-    , openFile-    -- , getContents  is defined in the prelude-    , hGetContents-    )+import qualified Data.ByteString        as B+import qualified Data.ByteString.Char8  as C -import System.IO.Error-    ( ioeGetErrorString-    , try-    )+import           System.IO		( IOMode(..)+					, openFile+					  -- , getContents  is defined in the prelude+					, hGetContents+					) -import System.Directory-    ( doesFileExist-    , getPermissions-    , readable-    )+import           System.IO.Error	( ioeGetErrorString+					, try+					) +import           System.Directory	( doesFileExist+					, getPermissions+					, readable+					)+ -- ------------------------------------------------------------ -getStdinCont		:: IO (Either String String)-getStdinCont+getStdinCont		:: Bool -> IO (Either String String)+getStdinCont strictInput     = do-      c <- try ( do-		 getContents+      c <- try ( if strictInput+		 then do+		      cb <- B.getContents+		      return  (C.unpack cb)+		 else getContents 	       )       return (either readErr Right c)     where@@ -43,8 +58,8 @@ 		 ++ ioeGetErrorString e 	       ) -getCont		:: String -> IO (Either String String)-getCont source+getCont		:: Bool -> String -> IO (Either String String)+getCont strictInput source     = do			-- preliminary       exists <- doesFileExist source'       if not exists@@ -54,12 +69,17 @@ 	      if not (readable perm) 	         then return (Left ("file " ++ show source' ++ " not readable")) 	         else do-		      c <- try ( do-				 h <- openFile source' ReadMode-				 hGetContents h+		      c <- try ( if strictInput+				 then do+				      cb <- B.readFile source+				      return (C.unpack cb)+				 else do+				      h <- openFile source' ReadMode+				      hGetContents h 			       ) 		      return (either readErr Right c)     where+     -- please NO call of unEscapeString for file names, NOT: source' = drivePath . unEscapeString $ source     source' = drivePath $ source     readErr e
src/Text/XML/HXT/Parser/TagSoup.hs view
@@ -2,7 +2,7 @@  {- |    Module     : Text.XML.HXT.Parser.TagSoup-   Copyright  : Copyright (C) 2005 Uwe Schmidt+   Copyright  : Copyright (C) 2005-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)@@ -23,60 +23,41 @@  -- ------------------------------------------------------------ -import           Data.Char (toLower)-import           Data.Maybe-import qualified Data.Map as M-+import Data.Char (toLower)+import Data.Maybe  import Text.HTML.TagSoup-import Text.HTML.TagSoup.Entity-    ( lookupNumericEntity-    )--import Text.XML.HXT.DOM.Unicode-    ( isXmlSpaceChar-    )--import Text.XML.HXT.DOM.NamespacePredicates-    ( isWellformedQualifiedName-    )--import Text.XML.HXT.Parser.XmlEntities-    ( -- xmlEntities-    )-+import Text.HTML.TagSoup.Entity		( lookupNumericEntity+					)+import Text.XML.HXT.DOM.Unicode		( isXmlSpaceChar+					)+import Text.XML.HXT.Parser.HtmlParsec	( isEmptyHtmlTag+					, isInnerHtmlTagOf+					, closesHtmlTag+					) import Text.XML.HXT.Parser.XhtmlEntities-    ( xhtmlEntities-    )--import Text.XML.HXT.Parser.HtmlParsec-    ( isEmptyHtmlTag-    , isInnerHtmlTagOf-    , closesHtmlTag-    )--import Text.XML.HXT.DOM.Interface-    ( XmlTrees-    , QName-    , NsEnv-    , mkQName-    , mkName-    , mkPrefixLocalPart-    , c_warn-    , a_xml-    , a_xmlns-    , xmlNamespace-    , xmlnsNamespace-    )--import Text.XML.HXT.DOM.XmlNode-    ( isElem-    , mkError-    , mkCmt-    , mkText-    , mkElement-    , mkAttr-    )+import Text.XML.HXT.DOM.Interface	( XmlTrees+					, QName+					, NsEnv+					, toNsEnv+					, newXName+					, nullXName+					, mkQName'+					, mkName+					, isWellformedQualifiedName+					, c_warn+					, a_xml+					, a_xmlns+					, xmlNamespace+					, xmlnsNamespace+					)+import Text.XML.HXT.DOM.XmlNode		( isElem+					, mkError+					, mkCmt+					, mkText+					, mkElement+					, mkAttr+					)  -- ----------------------------------------  @@ -84,15 +65,13 @@ -- the first time they are ecountered, and later always this name is used, -- not a string built by the parser. -type Tags	= [Tag]--type NameTable	= M.Map QName QName+type Tags		= [Tag] -type Context	= ([String], NsEnv)+type Context		= ([String], NsEnv) -data State	= S !Tags !NameTable		-- the name table must be evaluated striktly, else a stack overflow occurs+type State		= Tags -newtype Parser a = P { parse :: State -> (a, State)}+newtype Parser a 	= P { parse :: State -> (a, State)}  instance Monad Parser where     return x	= P $ \ ts -> (x, ts)@@ -102,7 +81,7 @@ 			      parse (f res) ts'  runParser	:: Parser a -> Tags -> a-runParser p ts	= fst . parse p $ S ts M.empty+runParser p ts	= fst . parse p $ ts  -- ---------------------------------------- @@ -112,13 +91,13 @@ 		  if p then t else e  lookAhead	:: (Tag -> Bool) -> Parser Bool-lookAhead p	= P $ \ s@(S ts _) -> (not (null ts) && p (head ts), s)+lookAhead p	= P $ \ s -> (not (null s) && p (head s), s)  -- ---------------------------------------- -- primitive look ahead tests  isEof		:: Parser Bool-isEof		= P $ \ s@(S ts _) -> (null ts, s)+isEof		= P $ \ s -> (null s, s)  isText		:: Parser Bool isText		= lookAhead is@@ -160,7 +139,7 @@ -- primitive symbol parsers  getTag		:: Parser Tag-getTag		= P $ \ (S (t1:ts1) nt) -> (t1, S ts1 nt)+getTag		= P $ \ (t1:ts1) -> (t1, ts1)  getSym		:: (Tag -> a) -> Parser a getSym f	= do@@ -207,7 +186,7 @@ -- pushback parsers for inserting missing tags  pushBack	:: Tag -> Parser ()-pushBack t	= P $ \ (S ts nt) -> ((), S (t:ts) nt)+pushBack t	= P $ \ ts -> ((), t:ts)  insCls		:: String -> Parser () insCls n	= pushBack (TagClose n)@@ -217,43 +196,31 @@  -- ---------------------------------------- -insertQName	:: QName -> Parser QName-insertQName n	= P $ \ (S ts nt) -> let-				     (n', nt') = insert n nt-				     in-				     (n', S ts nt')-		  where-		  insert s nt-		      | isJust r	= (fromJust r, nt)-		      | otherwise	= (s, M.insert s s nt)-		      where-		      r = M.lookup s nt- mkQN		:: Bool -> Bool -> NsEnv -> String -> Parser QName mkQN withNamespaces isAttr env s     | withNamespaces-	= insertQName qn1+	= return qn1     | otherwise-	= insertQName qn0+	= return qn0     where     qn1-	| isAttr && isSimpleName	= mkName s-	| isSimpleName			= mkQName "" s (nsUri "")-	| isWellformedQualifiedName s	= mkQName px lp (nsUri px)-	| otherwise			= mkName s-    qn0-	| isSimpleName			= mkName s-	| isWellformedQualifiedName s	= mkPrefixLocalPart px lp-	| otherwise			= mkName s+	| isAttr && isSimpleName	= s'+	| isSimpleName			= mkQName' nullXName (newXName s) (nsUri nullXName)+	| isWellformedQualifiedName s	= mkQName' px'        lp'         (nsUri px')+	| otherwise			= s'+    qn0					= s' -    nsUri x		= fromMaybe "" . lookup x $ env-    isSimpleName	= all (/= ':') s-    (px, (_ : lp))	= span(/= ':') s+    nsUri x				= fromMaybe nullXName . lookup x $ env+    isSimpleName			= all (/= ':') s+    (px, (_ : lp))			= span(/= ':') s+    px'                 		= newXName px+    lp'                 		= newXName lp+    s'                                  = mkName   s  extendNsEnv	:: Bool -> [(String, String)] -> NsEnv -> NsEnv extendNsEnv withNamespaces al1 env     | withNamespaces-	= concatMap (uncurry addNs) al1 ++ env+	= toNsEnv (concatMap (uncurry addNs) al1) ++ env     | otherwise 	= env     where@@ -336,7 +303,8 @@ 	= take 1 . filter isElem      initContext		= ( []-			  , [ (a_xml,   xmlNamespace)+			  , toNsEnv $+			    [ (a_xml,   xmlNamespace) 			    , (a_xmlns, xmlnsNamespace) 			    ] 			  )
src/Text/XML/HXT/RelaxNG/Simplification.hs view
@@ -89,7 +89,7 @@ 	( processHref $< getBaseURI ) 	>>> 	-- 4.10 QNames-	processWithNsEnv processEnvNames [("xml",xmlNamespace)]+	processWithNsEnv processEnvNames (toNsEnv [("xml",xmlNamespace)]) 	>>> 	-- 4.4 For any data or value element that does not have a datatypeLibrary attribute, 	-- a datatypeLibrary attribute is added.@@ -229,7 +229,7 @@                 ) 	      ) -    processEnvNames :: [(String, String)] -> IOSArrow XmlTree XmlTree+    processEnvNames :: NsEnv -> IOSArrow XmlTree XmlTree     processEnvNames env 	= ( ( (replaceQNames env $< getAttrValue "name")               `when`@@ -252,29 +252,29 @@ 	    = setBaseUri &&& constA (map createAttr env) >>> arr2L (:) 	    where -	    createAttr :: (String, String) -> XmlTree+	    createAttr :: (XName, XName) -> XmlTree 	    createAttr (pre, uri)-		= XN.mkAttr (mkName nm) [XN.mkText uri]+		= XN.mkAttr (mkName nm) [XN.mkText (show uri)] 		where-		nm  | null pre	= "RelaxContextDefault"-		    | otherwise	= contextAttributes ++ pre+		nm  | isNullXName pre	= "RelaxContextDefault"+		    | otherwise		= contextAttributes ++ show pre  	    setBaseUri :: IOSArrow String XmlTree 	    setBaseUri = mkAttr (mkName contextBaseAttr) (txt $< this) -	replaceQNames :: [(String, String)] -> String -> IOSArrow XmlTree XmlTree                        +	replaceQNames :: NsEnv -> String -> IOSArrow XmlTree XmlTree                         	replaceQNames e name 	    | isNothing uri 		= mkRelaxError "" ( "No Namespace-Mapping for the prefix " ++ show pre ++  				    " in the Context of Element: " ++ show name 				  ) 	    | otherwise-		= addAttr "name" ( "{" ++ (fromJust uri) ++ "}" ++ local )+		= addAttr "name" ( "{" ++ (show . fromJust $ uri) ++ "}" ++ local ) 	    where 	    (pre, local') = span (/= ':') name 	    local         = tail local'-	    uri 	:: Maybe String-	    uri           = lookup pre e+	    uri 	:: Maybe XName+	    uri           = lookup (newXName pre) e      -- The value of the added datatypeLibrary attribute is the value of the      -- datatypeLibrary attribute of the nearest ancestor element that 
src/Text/XML/HXT/RelaxNG/XmlSchema/DataTypeLibW3C.hs view
@@ -54,25 +54,21 @@   ) where -import Text.XML.HXT.RelaxNG.DataTypeLibUtils  --import Network.URI-  ( isURIReference )+import Data.Maybe+import Data.Ratio -import Text.XML.HXT.DOM.NamespacePredicates-  ( isWellformedQualifiedName-  , isNCName-  )+import Network.URI				( isURIReference ) -import Text.XML.HXT.RelaxNG.XmlSchema.Regex-    ( Regex-    , matchWithRE-    )+import Text.XML.HXT.DOM.QualifiedName		( isWellformedQualifiedName+						, isNCName+						)+import Text.XML.HXT.RelaxNG.DataTypeLibUtils+import Text.XML.HXT.RelaxNG.XmlSchema.Regex	( Regex+						, matchWithRE+						) import Text.XML.HXT.RelaxNG.XmlSchema.RegexParser-    ( parseRegex )--import Data.Maybe-import Data.Ratio+                                                ( parseRegex+						)    -- ------------------------------------------------------------ 
src/Text/XML/HXT/RelaxNG/XmlSchema/Regex.hs view
@@ -39,6 +39,8 @@     , nullable     , delta     , matchWithRE+    , (<&&>)+    , (<||>)     ) where @@ -80,68 +82,74 @@     inv (Dif e1 e2)	= inv e1 && 			  inv e2 -}--- ------------------------------------------------------------------ smart constructors +-- ------------------------------------------------------------ -- | enumerate all chars specified by a predicate -- -- this function is expensive, it should only be used for testing -chars		:: (Char -> Bool) -> [Char]-chars p		= filter p $ [minBound .. maxBound]+chars				:: (Char -> Bool) -> [Char]+chars p				= filter p $ [minBound .. maxBound] -charRngs	:: [Char] -> [(Char, Char)]-charRngs []	= []-charRngs (x:xs)	= charRng x xs-                  where-		  charRng y []		= (x,y) : []-		  charRng y xs'@(x1:xs1)-		      | x1 == succ y	= charRng x1 xs1-		      | otherwise	= (x,y) : charRngs xs'+charRngs			:: [Char] -> [(Char, Char)]+charRngs []			= []+charRngs (x:xs)			= charRng x xs+                  		where+		  		charRng y []		= (x,y) : []+		  		charRng y xs'@(x1:xs1)+		      		    | x1 == succ y	= charRng x1 xs1+				    | otherwise		= (x,y) : charRngs xs' -mkZero		:: String -> Regex-mkZero		= Zero+-- ------------------------------------------------------------+--+-- smart constructors -mkUnit		:: Regex-mkUnit		= Unit+mkZero				:: String -> Regex+mkZero				= Zero+{-# INLINE mkZero #-} -mkSym		:: (Char -> Bool) -> Regex-mkSym		= Sym+mkUnit				:: Regex+mkUnit				= Unit+{-# INLINE mkUnit #-} -mkSym1		:: Char	-> Regex-mkSym1	c	= mkSym (==c)+mkSym				:: (Char -> Bool) -> Regex+mkSym				= Sym+{-# INLINE mkSym #-} -mkSymRng	:: Char -> Char -> Regex+mkSym1				:: Char	-> Regex+mkSym1	c			= mkSym (==c)++mkSymRng			:: Char -> Char -> Regex mkSymRng c1 c2     | c1 == minBound &&-      c2 == maxBound	= mkDot-    | c1 <= c2		= mkSym  $ ( \ x -> x >= c1 && x<= c2 )-    | otherwise		= mkZero $ "empty char range"+      c2 == maxBound		= mkDot+    | c1 <= c2			= mkSym  $ (>= c1) <&&> (<= c2)+    | otherwise			= mkZero $ "empty char range" -mkDot	:: Regex-mkDot	= Dot+mkDot				:: Regex+mkDot				= Dot+{-# INLINE mkDot #-} -mkStar			:: Regex -> Regex-mkStar (Zero _)		= mkUnit		-- {}* == ()-mkStar e@Unit		= e			-- ()* == ()-mkStar e@(Star _e1)	= e			-- (r*)* == r*-mkStar (Rep 1 e1)	= mkStar e1		-- (r+)* == r*-mkStar e@(Alt _ _)	= Star (rmStar e)	-- (a*|b)* == (a|b)*-mkStar e		= Star e+mkStar				:: Regex -> Regex+mkStar (Zero _)			= mkUnit		-- {}* == ()+mkStar e@Unit			= e			-- ()* == ()+mkStar e@(Star _e1)		= e			-- (r*)* == r*+mkStar (Rep 1 e1)		= mkStar e1		-- (r+)* == r*+mkStar e@(Alt _ _)		= Star (rmStar e)	-- (a*|b)* == (a|b)*+mkStar e			= Star e -rmStar	:: Regex -> Regex-rmStar (Alt e1 e2)	= mkAlt (rmStar e1) (rmStar e2)-rmStar (Star e1)	= rmStar e1-rmStar (Rep 1 e1)	= rmStar e1-rmStar e1		= e1+rmStar				:: Regex -> Regex+rmStar (Alt e1 e2)		= mkAlt (rmStar e1) (rmStar e2)+rmStar (Star e1)		= rmStar e1+rmStar (Rep 1 e1)		= rmStar e1+rmStar e1			= e1  mkAlt					:: Regex -> Regex -> Regex mkAlt e1            (Zero _)		= e1				-- e1 u {} = e1 mkAlt (Zero _)      e2			= e2				-- {} u e2 = e2 mkAlt e1@(Star Dot) _e2			= e1				-- A* u e1 = A* mkAlt _e1           e2@(Star Dot)	= e2				-- e1 u A* = A*-mkAlt (Sym p1)      (Sym p2)		= mkSym $ \ x -> p1 x || p2 x	-- melting of predicates+mkAlt (Sym p1)      (Sym p2)		= mkSym $ p1 <||> p2		-- melting of predicates mkAlt e1            e2@(Sym _)		= mkAlt e2 e1			-- symmetry: predicates always first mkAlt e1@(Sym _)    (Alt e2@(Sym _) e3)	= mkAlt (mkAlt e1 e2) e3	-- prepare melting of predicates mkAlt (Alt e1 e2)   e3			= mkAlt e1 (mkAlt e2 e3)	-- associativity@@ -172,8 +180,8 @@ mkRng _l _u e@Unit		= e mkRng lb ub e			= Rng lb ub e -mkOpt	:: Regex -> Regex-mkOpt	= mkRng 0 1+mkOpt				:: Regex -> Regex+mkOpt				= mkRng 0 1  mkDif	:: Regex -> Regex -> Regex mkDif e1@(Zero _) _e2		= e1@@ -186,8 +194,8 @@ 				= mkZero "empty set of chars in difference expr" mkDif e1          e2		= Dif e1 e2 -mkCompl		:: Regex -> Regex-mkCompl		= mkDif mkDot+mkCompl				:: Regex -> Regex+mkCompl				= mkDif mkDot  -- ------------------------------------------------------------ @@ -231,6 +239,7 @@ isZero			:: Regex -> Bool isZero (Zero _)		= True isZero _		= False+{-# INLINE isZero #-}  nullable		:: Regex -> Bool nullable (Zero _)	= False@@ -291,5 +300,18 @@     res re 	| nullable re	= Nothing	-- o.k. 	| otherwise	= Just $ "input does not match " ++ show e++-- ------------------------------------------------------------++(<&&>)		:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)+f <&&> g	= \ x -> f x && g x		-- liftA2 (&&)++{-# INLINE (<&&>) #-}+++(<||>)		:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)+f <||> g	= \ x -> f x || g x		-- liftA2 (||)++{-# INLINE (<||>) #-}  -- ------------------------------------------------------------
src/Text/XML/HXT/RelaxNG/XmlSchema/RegexMatch.hs view
@@ -37,8 +37,11 @@ import Text.XML.HXT.RelaxNG.XmlSchema.Regex import Text.XML.HXT.RelaxNG.XmlSchema.RegexParser --- ------------------------------------------------------------+{-+import qualified Debug.Trace as T+-} +-- ------------------------------------------------------------  splitRegex		:: Regex -> String -> Maybe (String, String) splitRegex re ""@@ -47,14 +50,16 @@  splitRegex re inp@(c : inp')     | isZero   re	= Nothing-    | otherwise		= evalRes . splitRegex (delta re c) $ inp'+    | otherwise		= evalRes . splitRegex {- (T.trace (show re') re') -} re' $ inp'     where+    re' = delta re c     evalRes Nothing 	| nullable re	= Just ("", inp) 	| otherwise	= Nothing      evalRes (Just (tok, rest)) 	    		= Just (c : tok, rest)+ -- ------------------------------------------------------------  -- | split a string by taking the longest prefix matching a regular expression@@ -65,7 +70,8 @@ -- examples: -- -- > splitRE "a*b" "abc" = Just ("ab","c")--- > splitRE "a*"  "bc"  = Just ("", "bc)+-- > splitRE "a*"  "bc"  = Just ("", "bc")+-- > splitRE "a+"  "bc"  = Nothing -- > splitRE "["   "abc" = Nothing  splitRE	:: String -> String -> Maybe (String, String)@@ -116,10 +122,11 @@ 	| null inp	= [] 	| otherwise	= evalRes . splitRegex re $ inp 	where-	evalRes Nothing	= token' re (tail inp)	-- re does not match any prefix+	token''         = token' re+	evalRes Nothing	= token'' (tail inp)		-- re does not match any prefix 	evalRes (Just (tok, rest))-	    | null tok	= token' re (tail rest)	-- re is nullable and only the empty prefix matches-	    | otherwise	= tok : token' re rest	-- token found, tokenize the rest+	    | null tok	= token'' (tail rest)		-- re is nullable and only the empty prefix matches+	    | otherwise	= tok : token'' rest		-- token found, tokenize the rest  -- | convenient function for tokenizeRE a string --@@ -229,4 +236,3 @@  -- ------------------------------------------------------------ --- ------------------------------------------------------------
src/Text/XML/HXT/RelaxNG/XmlSchema/RegexParser.hs view
@@ -22,8 +22,8 @@     ( parseRegex ) where -import Control.Applicative ( liftA2 ) import Data.Maybe+ import Text.ParserCombinators.Parsec  import Text.XML.HXT.DOM.Unicode@@ -176,9 +176,9 @@ 	 , ('w', not . isNotWord		) 	 , ('W',       isNotWord		) 	 ]-    isDigit   = ('0' <=) &&& (<= '9')-    isNotWord = isUnicodeP |||-		isUnicodeZ |||+    isDigit   = ('0' <=) <&&> (<= '9')+    isNotWord = isUnicodeP <||>+		isUnicodeZ <||> 		isUnicodeC  catEsc	:: Parser Regex@@ -204,7 +204,7 @@ 	 then return $ let 		       (lb, ub) = fromJust b 		       in-		       (lb <=) &&& (<= ub)+		       (lb <=) <&&> (<= ub) 	 else fail   $ "unknown Unicode code block " ++ show name     where     legalChar c	 = 'A' <= c && c <= 'Z' ||@@ -350,13 +350,5 @@       char '.'       return $ mkSym (`notElem` "\n\r") ---- --------------------------------------------------------------(&&&)	:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)-(&&&)	= liftA2 (&&)--(|||)	:: (Char -> Bool) -> (Char -> Bool) -> (Char -> Bool)-(|||)	= liftA2 (||)  -- ------------------------------------------------------------
src/Text/XML/HXT/Version.hs view
@@ -1,4 +1,4 @@ module Text.XML.HXT.Version where hxt_version :: String-hxt_version = "8.2.0"+hxt_version = "8.3.0"
src/Text/XML/HXT/XPath/XPathEval.hs view
@@ -95,10 +95,10 @@ -- Works like 'getXPath' but the prefix:localpart names in the XPath expression -- are interpreted with respect to the given namespace environment -getXPathWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees+getXPathWithNsEnv	:: Attributes -> String -> XmlTree -> XmlTrees getXPathWithNsEnv env s	= runLA ( canonicalizeForXPath 				  >>>-				  arrL (getXPathValues xPValue2XmlTrees xPathErr env s)+				  arrL (getXPathValues xPValue2XmlTrees xPathErr (toNsEnv env) s) 				)  -- |@@ -119,9 +119,9 @@  -- | Same as 'getXPathSubTrees' but with namespace aware XPath expression -getXPathSubTreesWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlTrees+getXPathSubTreesWithNsEnv	:: Attributes -> String -> XmlTree -> XmlTrees getXPathSubTreesWithNsEnv nsEnv xpStr-    = getXPathValues xPValue2XmlTrees xPathErr nsEnv xpStr+    = getXPathValues xPValue2XmlTrees xPathErr (toNsEnv nsEnv) xpStr  -- | compute the node set of an XPath query @@ -130,9 +130,9 @@  -- | compute the node set of a namespace aware XPath query -getXPathNodeSetWithNsEnv	:: NsEnv -> String -> XmlTree -> XmlNodeSet+getXPathNodeSetWithNsEnv	:: Attributes -> String -> XmlTree -> XmlNodeSet getXPathNodeSetWithNsEnv nsEnv xpStr-    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) nsEnv xpStr+    = getXPathValues xPValue2NodeSet (const (const emptyNodeSet)) (toNsEnv nsEnv) xpStr  -- | parse xpath, evaluate xpath expr and prepare results 
src/Text/XML/HXT/XPath/XPathParser.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.XPath.XPathParser-   Copyright  : Copyright (C) 2006 Uwe Schmidt+   Copyright  : Copyright (C) 2006-2008 Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: XPathParser.hs,v 1.6 2006/10/12 11:51:29 hxml Exp $     the XPath Parser @@ -39,27 +38,26 @@     , qName     ) -lookupNs		:: NsEnv -> String -> String+lookupNs				:: NsEnv -> XName -> XName lookupNs uris prefix-    -- downwards compatibility: if namespace env is not supported-    -- no error is raised, but the uri remains empty-    -- not conformant to XPath spec: If namespaces are used, an complete env must be supported,-    -- but we don't care about this--    = lookup1 prefix uris+					-- downwards compatibility: if namespace env is not supported+					-- no error is raised, but the uri remains empty+					-- not conformant to XPath spec:+					-- If namespaces are used, a complete env must be supported,+					-- but we don't care about this+					= fromMaybe nullXName $ lookup prefix uris -enhanceAttrQName	:: NsEnv -> QName -> QName+enhanceAttrQName			:: NsEnv -> QName -> QName enhanceAttrQName uris qn-    | null (namePrefix qn)	= qn-    | otherwise			= enhanceQName uris qn+    | isNullXName (namePrefix' qn)	= qn+    | otherwise				= enhanceQName uris qn -enhanceQName 		:: NsEnv -> QName -> QName-enhanceQName uris qn-    = qn {namespaceUri = lookupNs uris (namePrefix qn)}+enhanceQName 				:: NsEnv -> QName -> QName+enhanceQName uris qn			= setNamespaceUri' ( lookupNs uris (namePrefix' qn) ) qn -enhanceQN		::  AxisSpec -> NsEnv -> QName -> QName-enhanceQN Attribute	= enhanceAttrQName-enhanceQN _		= enhanceQName+enhanceQN				::  AxisSpec -> NsEnv -> QName -> QName+enhanceQN Attribute			= enhanceAttrQName+enhanceQN _				= enhanceQName  type XParser a = GenParser Char NsEnv a @@ -591,7 +589,9 @@     = try ( do                        (p, n) <- qName             uris   <- getState-            u      <- return $ if null p then "" else '{' : lookupNs uris p ++ "}"+            u      <- return $ if null p+	                       then ""+                               else '{' : show (lookupNs uris (newXName p)) ++ "}"             let fn = (u ++ n) in               if fn `elem` ["processing-instruction", "comment", "text", "node"]                 then fail ("function name: " ++ fn ++ "not allowed")@@ -607,29 +607,27 @@       tokenParser (symbol "$")       (p,n) <- qName       uris   <- getState-      return (lookupNs uris p, n)+      return (show (lookupNs uris (newXName p)), n)       <?> "variableReference"   -- [37] NameTest nameTest :: AxisSpec -> XParser QName nameTest as-    = do-      tokenParser (symbol "*")-      uris <- getState-      return (enhanceQN as uris $ mkName "*")-      <|> try ( do-                  pre <- ncName-                  symbol ":*"-                  uris <- getState-                  return (enhanceQN as uris $ mkNsName (pre ++ ":*") "")                -              )+    = do tokenParser (symbol "*")+	 uris <- getState+	 return (enhanceQN as uris $ mkPrefixLocalPart "" "*")       <|>-      do-      (pre,local) <- qName      	      -      uris <- getState-      return (enhanceQN as uris $ mkNsName (pre ++ ":" ++ local) "")-      <?> "nameTest"	+      try ( do pre <- ncName+               symbol ":*"+               uris <- getState+               return (enhanceQN as uris $ mkPrefixLocalPart pre "*")+	  )+      <|>+      do (pre,local) <- qName+	 uris <- getState+	 return (enhanceQN as uris $ mkPrefixLocalPart pre local)+      <?> "nameTest"  	 -- [38] NodeType@@ -650,3 +648,5 @@              , symbolParser (n_node, XPNode)              ]       <?> "nodeType"++-- ------------------------------------------------------------
src/Text/XML/HXT/XSLT/Common.hs view
@@ -2,13 +2,12 @@  {- |    Module     : Text.XML.HXT.XSLT.Application-   Copyright  : Copyright (C) 2006 Tim Walkenhorst, Uwe Schmidt+   Copyright  : Copyright (C) 2006-2008 Tim Walkenhorst, Uwe Schmidt    License    : MIT     Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: Common.hs,v 1.5 2007/05/02 06:41:05 hxml Exp $     Common imports and functions for HXSLT @@ -87,69 +86,73 @@ import Control.Arrow.ListArrow import Control.Arrow.ArrowList -import Text.XML.HXT.Arrow.XmlArrow-    ( xshow-    )-import Text.XML.HXT.DOM.XmlNode-    ( XmlNode (..)-    , mkElement-    , mkRoot-    , mkAttr-    , mergeAttrl-    )+import Text.XML.HXT.Arrow.XmlArrow	( xshow+					) import Text.XML.HXT.DOM.XmlKeywords--import Text.XML.HXT.DOM.TypeDefs-    ( XmlTree-    , XNode(XTag, XAttr)-    , QName(namePrefix, localPart, namespaceUri)-    , equivQName-    , mkName-    , mkQName-    )--import Text.XML.HXT.DOM.FormatXmlTree-    ( formatXmlTree )--import Text.XML.HXT.XPath.XPathDataTypes-    ( Expr(LiteralExpr, FctExpr, GenExpr, PathExpr)-    , Op(Union)-    , LocationPath (LocPath)-    , Path (Rel)-    , XStep (Step)-    , NodeTest (NameTest, PI, TypeTest)-    , NavXmlTree-    , XPathValue(XPVNode, XPVBool, XPVString, XPVError)-    )--import Text.XML.HXT.XPath.XPathParser-    ( parseXPath )--import Text.XML.HXT.XPath.XPathEval-    ( evalExpr )+import Text.XML.HXT.DOM.XmlNode		( XmlNode (..)+					, mkElement+					, mkRoot+					, mkAttr+					, mergeAttrl+					) -import Text.XML.HXT.XPath.XPathFct-    ( isNotInNodeList )+import Text.XML.HXT.DOM.TypeDefs	( XmlTree+					, XNode(XTag, XAttr)+					, QName+					, toNsEnv+					, namePrefix+					, localPart+					, namespaceUri+					, equivQName+					, mkName+					, mkQName+					)+import Text.XML.HXT.DOM.FormatXmlTree	( formatXmlTree+					) -import Text.XML.HXT.XPath.XPathToString-    ( xPValue2XmlTrees )+import Text.XML.HXT.XPath.XPathDataTypes( Expr		( LiteralExpr+							, FctExpr+							, GenExpr+							, PathExpr+							)+					, Op		( Union )+					, LocationPath	( LocPath )+					, Path		( Rel )+					, XStep 	( Step )+					, NodeTest	( NameTest+							, PI+							, TypeTest+							)+					, NavXmlTree+					, XPathValue	( XPVNode+							, XPVBool+							, XPVString+							, XPVError+							)+					)+import Text.XML.HXT.XPath.XPathParser	( parseXPath+					)+import Text.XML.HXT.XPath.XPathEval	( evalExpr+					)+import Text.XML.HXT.XPath.XPathFct	( isNotInNodeList+					)+import Text.XML.HXT.XPath.XPathToString ( xPValue2XmlTrees+					) -import Data.Map (Map)+import           Data.Map (Map) import qualified Data.Map as Map hiding (Map)  import Data.Tree.Class  -import Data.NavTree-    ( NavTree-    , ntree-    , subtreeNT-    , upNT-    , downNT-    , rightNT-    , leftNT-    , getChildrenNT-    )-+import Data.NavTree			( NavTree+					, ntree+					, subtreeNT+					, upNT+					, downNT+					, rightNT+					, leftNT+					, getChildrenNT+					) import Data.Maybe import Data.List import Data.Char
src/Text/XML/HXT/XSLT/Compilation.hs view
@@ -8,7 +8,6 @@    Maintainer : Uwe Schmidt (uwe\@fh-wedel.de)    Stability  : experimental    Portability: portable-   Version    : $Id: Compilation.hs,v 1.7 2007/05/02 06:41:05 hxml Exp $     The compilation functions for XSLT stylesheets @@ -22,19 +21,19 @@     ) where -import Control.Monad+import           Control.Monad -import Data.Maybe-import Data.Either-import Data.List+import           Data.Maybe+import           Data.Either+import           Data.List import qualified Data.Map as Map hiding (Map)-import Data.Map(Map)+import           Data.Map(Map) -import Text.ParserCombinators.Parsec.Prim(runParser)+import           Text.ParserCombinators.Parsec.Prim	( runParser ) -import Text.XML.HXT.XSLT.Common-import Text.XML.HXT.XSLT.Names-import Text.XML.HXT.XSLT.CompiledStylesheet+import           Text.XML.HXT.XSLT.Common+import           Text.XML.HXT.XSLT.Names+import           Text.XML.HXT.XSLT.CompiledStylesheet  -- No deep meaning just a shortcut notation for a *very* common expression... @@ -50,7 +49,7 @@ parseExpr uris selectStr     = either (error.show) id parseResult                                    where-    parseResult = runParser parseXPath (Map.toList uris) ("select-expr:"++selectStr) selectStr +    parseResult = runParser parseXPath (toNsEnv . Map.toList $ uris) ("select-expr:"++selectStr) selectStr   parseSelect :: UriMapping -> String -> SelectExpr parseSelect uris
src/hxt-package.hs view
@@ -61,7 +61,7 @@       , "depends: base-4.0.0.0,"       , "         haskell98-1.0.1.0,"       , "         bytestring-0.9.1.4,"-      , "         parallel-1.0.0.1,"+      , "         parallel-1.1.0.0,"       , "         parsec-2.1.0.1,"       , "         network-2.2.0.1,"       , "         containers-0.2.0.0,"