<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Text.XML.HaXml.Lex</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock.js" TYPE="text/javascript" ></SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >HaXml-1.13.2: Utilities for manipulating XML documents</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Text.XML.HaXml.Lex</FONT ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Entry points to the lexer </A ></DT ><DT ><A HREF="#2" >Token and position types </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 >You don't normally need to use this Lex module directly - it is called automatically by the parser. (This interface is only exposed for debugging purposes.) </P ><P >This is a hand-written lexer for tokenising the text of an XML document so that it is ready for parsing. It attaches position information in (line,column) format to every token. The main entry point is <TT ><A HREF="Text-XML-HaXml-Lex.html#v%3AxmlLex" >xmlLex</A ></TT >. A secondary entry point, <TT ><A HREF="Text-XML-HaXml-Lex.html#v%3AxmlReLex" >xmlReLex</A ></TT >, is provided for when the parser needs to stuff a string back onto the front of the text and re-tokenise it (typically when expanding macros). </P ><P >As one would expect, the lexer is essentially a small finite state machine. </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%3AxmlLex" >xmlLex</A > :: String -> String -> [<A HREF="Text-XML-HaXml-Lex.html#t%3AToken" >Token</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AxmlReLex" >xmlReLex</A > :: <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A > -> String -> [<A HREF="Text-XML-HaXml-Lex.html#t%3AToken" >Token</A >]</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AposInNewCxt" >posInNewCxt</A > :: String -> Maybe <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A > -> <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3AToken" >Token</A > = Either String (<A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A >, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT" >TokenT</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3APosn" >Posn</A > = <A HREF="#v%3APn" >Pn</A > String !Int !Int (Maybe <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A >)</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ATokenT" >TokenT</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ATokCommentOpen" >TokCommentOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokCommentClose" >TokCommentClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokPIOpen" >TokPIOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokPIClose" >TokPIClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSectionOpen" >TokSectionOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSectionClose" >TokSectionClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSection" >TokSection</A > <A HREF="Text-XML-HaXml-Lex.html#t%3ASection" >Section</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSpecialOpen" >TokSpecialOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSpecial" >TokSpecial</A > <A HREF="Text-XML-HaXml-Lex.html#t%3ASpecial" >Special</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokEndOpen" >TokEndOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokEndClose" >TokEndClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokAnyOpen" >TokAnyOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokAnyClose" >TokAnyClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSqOpen" >TokSqOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSqClose" >TokSqClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokEqual" >TokEqual</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokQuery" >TokQuery</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokStar" >TokStar</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokPlus" >TokPlus</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokAmp" >TokAmp</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokSemi" >TokSemi</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokHash" >TokHash</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokBraOpen" >TokBraOpen</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokBraClose" >TokBraClose</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokPipe" >TokPipe</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokPercent" >TokPercent</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokComma" >TokComma</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokQuote" >TokQuote</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokName" >TokName</A > String</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokFreeText" >TokFreeText</A > String</TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ATokNull" >TokNull</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASpecial" >Special</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ADOCTYPEx" >DOCTYPEx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AELEMENTx" >ELEMENTx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AATTLISTx" >ATTLISTx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AENTITYx" >ENTITYx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3ANOTATIONx" >NOTATIONx</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3ASection" >Section</A > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" >= <A HREF="#v%3ACDATAx" >CDATAx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AINCLUDEx" >INCLUDEx</A ></TD ></TR ><TR ><TD CLASS="decl" >| <A HREF="#v%3AIGNOREx" >IGNOREx</A ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" >Entry points to the lexer </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3AxmlLex" ></A ><B >xmlLex</B > :: String -> String -> [<A HREF="Text-XML-HaXml-Lex.html#t%3AToken" >Token</A >]</TD ></TR ><TR ><TD CLASS="doc" >The first argument to <TT ><A HREF="Text-XML-HaXml-Lex.html#v%3AxmlLex" >xmlLex</A ></TT > is the filename (used for source positions, especially in error messages), and the second is the string content of the XML file. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3AxmlReLex" ></A ><B >xmlReLex</B > :: <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A > -> String -> [<A HREF="Text-XML-HaXml-Lex.html#t%3AToken" >Token</A >]</TD ></TR ><TR ><TD CLASS="doc" ><TT ><A HREF="Text-XML-HaXml-Lex.html#v%3AxmlReLex" >xmlReLex</A ></TT > is used when the parser expands a macro (PE reference). The expansion of the macro must be re-lexed as if for the first time. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v%3AposInNewCxt" ></A ><B >posInNewCxt</B > :: String -> Maybe <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A > -> <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A ></TD ></TR ><TR ><TD CLASS="doc" ><TT >posInNewCxt name pos</TT > creates a new source position from an old one. It is used when opening a new file (e.g. a DTD inclusion), to denote the start of the file <TT >name</TT >, but retain the stacked information that it was included from the old <TT >pos</TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" >Token and position types </A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t%3AToken" ></A ><B >Token</B > = Either String (<A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A >, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT" >TokenT</A >)</TD ></TR ><TR ><TD CLASS="doc" >All tokens are paired up with a source position. Lexical errors are passed back through the <TT >Either</TT > type. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3APosn" ></A ><B >Posn</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >Source positions contain a filename, line, column, and an inclusion point, which is itself another source position, recursively. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3APn" ></A ><B >Pn</B > String !Int !Int (Maybe <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A >)</TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Posn')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Posn" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" >Eq <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A ></TD ></TR ><TR ><TD CLASS="decl" >Show <A HREF="Text-XML-HaXml-Lex.html#t%3APosn" >Posn</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3ATokenT" ></A ><B >TokenT</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="ndoc" >The basic token type. </TD ></TR ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3ATokCommentOpen" ></A ><B >TokCommentOpen</B ></TD ><TD CLASS="rdoc" ><!-- </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokCommentClose" ></A ><B >TokCommentClose</B ></TD ><TD CLASS="rdoc" ><UL ><LI >-> </LI ></UL ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokPIOpen" ></A ><B >TokPIOpen</B ></TD ><TD CLASS="rdoc" ><? </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokPIClose" ></A ><B >TokPIClose</B ></TD ><TD CLASS="rdoc" >?> </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSectionOpen" ></A ><B >TokSectionOpen</B ></TD ><TD CLASS="rdoc" ><![ </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSectionClose" ></A ><B >TokSectionClose</B ></TD ><TD CLASS="rdoc" >]]> </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSection" ></A ><B >TokSection</B > <A HREF="Text-XML-HaXml-Lex.html#t%3ASection" >Section</A ></TD ><TD CLASS="rdoc" >CDATA INCLUDE IGNORE etc </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSpecialOpen" ></A ><B >TokSpecialOpen</B ></TD ><TD CLASS="rdoc" ><! </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSpecial" ></A ><B >TokSpecial</B > <A HREF="Text-XML-HaXml-Lex.html#t%3ASpecial" >Special</A ></TD ><TD CLASS="rdoc" >DOCTYPE ELEMENT ATTLIST etc </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokEndOpen" ></A ><B >TokEndOpen</B ></TD ><TD CLASS="rdoc" ></ </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokEndClose" ></A ><B >TokEndClose</B ></TD ><TD CLASS="rdoc" >/> </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokAnyOpen" ></A ><B >TokAnyOpen</B ></TD ><TD CLASS="rdoc" >< </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokAnyClose" ></A ><B >TokAnyClose</B ></TD ><TD CLASS="rdoc" ><PRE > </PRE ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSqOpen" ></A ><B >TokSqOpen</B ></TD ><TD CLASS="rdoc" >[ </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSqClose" ></A ><B >TokSqClose</B ></TD ><TD CLASS="rdoc" >] </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokEqual" ></A ><B >TokEqual</B ></TD ><TD CLASS="rdoc" >= </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokQuery" ></A ><B >TokQuery</B ></TD ><TD CLASS="rdoc" >? </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokStar" ></A ><B >TokStar</B ></TD ><TD CLASS="rdoc" >* </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokPlus" ></A ><B >TokPlus</B ></TD ><TD CLASS="rdoc" >+ </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokAmp" ></A ><B >TokAmp</B ></TD ><TD CLASS="rdoc" >& </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokSemi" ></A ><B >TokSemi</B ></TD ><TD CLASS="rdoc" >; </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokHash" ></A ><B >TokHash</B ></TD ><TD CLASS="rdoc" ># </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokBraOpen" ></A ><B >TokBraOpen</B ></TD ><TD CLASS="rdoc" >( </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokBraClose" ></A ><B >TokBraClose</B ></TD ><TD CLASS="rdoc" >) </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokPipe" ></A ><B >TokPipe</B ></TD ><TD CLASS="rdoc" >| </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokPercent" ></A ><B >TokPercent</B ></TD ><TD CLASS="rdoc" >% </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokComma" ></A ><B >TokComma</B ></TD ><TD CLASS="rdoc" >, </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokQuote" ></A ><B >TokQuote</B ></TD ><TD CLASS="rdoc" >'' or "" </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokName" ></A ><B >TokName</B > String</TD ><TD CLASS="rdoc" >begins with letter, no spaces </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokFreeText" ></A ><B >TokFreeText</B > String</TD ><TD CLASS="rdoc" >any character data </TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ATokNull" ></A ><B >TokNull</B ></TD ><TD CLASS="rdoc" >fake token </TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:TokenT')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:TokenT" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" >Eq <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT" >TokenT</A ></TD ></TR ><TR ><TD CLASS="decl" >Show <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT" >TokenT</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3ASpecial" ></A ><B >Special</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3ADOCTYPEx" ></A ><B >DOCTYPEx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AELEMENTx" ></A ><B >ELEMENTx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AATTLISTx" ></A ><B >ATTLISTx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AENTITYx" ></A ><B >ENTITYx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3ANOTATIONx" ></A ><B >NOTATIONx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Special')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Special" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" >Eq <A HREF="Text-XML-HaXml-Lex.html#t%3ASpecial" >Special</A ></TD ></TR ><TR ><TD CLASS="decl" >Show <A HREF="Text-XML-HaXml-Lex.html#t%3ASpecial" >Special</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t%3ASection" ></A ><B >Section</B > </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" >Constructors</TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="arg" ><A NAME="v%3ACDATAx" ></A ><B >CDATAx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AINCLUDEx" ></A ><B >INCLUDEx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ><TR ><TD CLASS="arg" ><A NAME="v%3AIGNOREx" ></A ><B >IGNOREx</B ></TD ><TD CLASS="rdoc" ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:Section')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:Section" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" >Eq <A HREF="Text-XML-HaXml-Lex.html#t%3ASection" >Section</A ></TD ></TR ><TR ><TD CLASS="decl" >Show <A HREF="Text-XML-HaXml-Lex.html#t%3ASection" >Section</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 0.8</TD ></TR ></TABLE ></BODY ></HTML >