diff options
Diffstat (limited to 'doc/html/gnome-xml-parserinternals.html')
-rw-r--r-- | doc/html/gnome-xml-parserinternals.html | 1176 |
1 files changed, 950 insertions, 226 deletions
diff --git a/doc/html/gnome-xml-parserinternals.html b/doc/html/gnome-xml-parserinternals.html index bf3cd988..944c4e95 100644 --- a/doc/html/gnome-xml-parserinternals.html +++ b/doc/html/gnome-xml-parserinternals.html @@ -115,7 +115,7 @@ SIZE="3" ><DIV CLASS="REFNAMEDIV" ><A -NAME="AEN4681" +NAME="AEN5221" ></A ><H2 >Name</H2 @@ -123,7 +123,7 @@ NAME="AEN4681" ><DIV CLASS="REFSYNOPSISDIV" ><A -NAME="AEN4684" +NAME="AEN5224" ></A ><H2 >Synopsis</H2 @@ -138,6 +138,18 @@ CELLPADDING="6" CLASS="SYNOPSIS" > +typedef <A +HREF="gnome-xml-parserinternals.html#CHARVAL" +>CHARVAL</A +>; +#define <A +HREF="gnome-xml-parserinternals.html#NEXTCHARVAL" +>NEXTCHARVAL</A +> (p) +#define <A +HREF="gnome-xml-parserinternals.html#SKIPCHARVAL" +>SKIPCHARVAL</A +> (p) #define <A HREF="gnome-xml-parserinternals.html#IS-CHAR" >IS_CHAR</A @@ -218,6 +230,24 @@ HREF="gnome-xml-parserinternals.html#XMLFREEPARSERCTXT" HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >xmlParserCtxtPtr</A > ctxt); +<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> <A +HREF="gnome-xml-parserinternals.html#XMLNEWPARSERCTXT" +>xmlNewParserCtxt</A +> (); +void <A +HREF="gnome-xml-parserinternals.html#XMLSWITCHENCODING" +>xmlSwitchEncoding</A +> (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt, + <GTKDOCLINK +HREF="XMLCHARENCODING" +>xmlCharEncoding</GTKDOCLINK +> enc); void <A HREF="gnome-xml-parserinternals.html#XMLHANDLEENTITY" >xmlHandleEntity</A @@ -351,6 +381,16 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" HREF="gnome-xml-tree.html#CHAR" >CHAR</A >* <A +HREF="gnome-xml-parserinternals.html#XMLSCANNAME" +>xmlScanName</A +> (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt); +<A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +>* <A HREF="gnome-xml-parserinternals.html#XMLPARSENAME" >xmlParseName</A > (<A @@ -739,6 +779,21 @@ HREF="gnome-xml-parserinternals.html#XMLPARSEMISC" HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >xmlParserCtxtPtr</A > ctxt); +void <A +HREF="gnome-xml-parserinternals.html#XMLPARSEEXTERNALSUBSET" +>xmlParseExternalSubset</A +> (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt, + const <A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +> *ExternalID, + const <A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +> *SystemID); #define <A HREF="gnome-xml-parserinternals.html#XML-SUBSTITUTE-NONE" >XML_SUBSTITUTE_NONE</A @@ -828,7 +883,7 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><DIV CLASS="REFSECT1" ><A -NAME="AEN4879" +NAME="AEN5434" ></A ><H2 >Description</H2 @@ -838,14 +893,143 @@ NAME="AEN4879" ><DIV CLASS="REFSECT1" ><A -NAME="AEN4882" +NAME="AEN5437" ></A ><H2 >Details</H2 ><DIV CLASS="REFSECT2" ><A -NAME="AEN4884" +NAME="AEN5439" +></A +><H3 +><A +NAME="CHARVAL" +></A +>CHARVAL</H3 +><P +></P +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN5443" +></A +><H3 +><A +NAME="NEXTCHARVAL" +></A +>NEXTCHARVAL()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>#define NEXTCHARVAL(p)</PRE +></TD +></TR +></TABLE +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>p</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN5457" +></A +><H3 +><A +NAME="SKIPCHARVAL" +></A +>SKIPCHARVAL()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>#define SKIPCHARVAL(p)</PRE +></TD +></TR +></TABLE +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>p</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN5471" ></A ><H3 ><A @@ -903,7 +1087,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4898" +NAME="AEN5485" ></A ><H3 ><A @@ -961,7 +1145,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4912" +NAME="AEN5499" ></A ><H3 ><A @@ -1019,7 +1203,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4926" +NAME="AEN5513" ></A ><H3 ><A @@ -1077,7 +1261,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4940" +NAME="AEN5527" ></A ><H3 ><A @@ -1135,7 +1319,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4954" +NAME="AEN5541" ></A ><H3 ><A @@ -1193,7 +1377,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4968" +NAME="AEN5555" ></A ><H3 ><A @@ -1251,7 +1435,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4982" +NAME="AEN5569" ></A ><H3 ><A @@ -1309,7 +1493,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN4996" +NAME="AEN5583" ></A ><H3 ><A @@ -1367,7 +1551,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5010" +NAME="AEN5597" ></A ><H3 ><A @@ -1425,7 +1609,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5024" +NAME="AEN5611" ></A ><H3 ><A @@ -1483,7 +1667,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5038" +NAME="AEN5625" ></A ><H3 ><A @@ -1541,7 +1725,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5052" +NAME="AEN5639" ></A ><H3 ><A @@ -1597,7 +1781,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> a pointer to an array of CHAR</TD +> </TD ></TR ><TR ><TD @@ -1612,7 +1796,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the new parser context or NULL</TD +> </TD ></TR ></TABLE ><P @@ -1622,7 +1806,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5073" +NAME="AEN5660" ></A ><H3 ><A @@ -1677,7 +1861,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the filename</TD +> </TD ></TR ><TR ><TD @@ -1692,7 +1876,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the new parser context or NULL</TD +> </TD ></TR ></TABLE ><P @@ -1702,7 +1886,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5093" +NAME="AEN5680" ></A ><H3 ><A @@ -1756,7 +1940,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an pointer to a char array</TD +> </TD ></TR ><TR ><TD @@ -1773,7 +1957,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the siwe of the array</TD +> </TD ></TR ><TR ><TD @@ -1788,7 +1972,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the new parser context or NULL</TD +> </TD ></TR ></TABLE ><P @@ -1798,7 +1982,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5117" +NAME="AEN5704" ></A ><H3 ><A @@ -1852,7 +2036,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -1862,7 +2046,153 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5133" +NAME="AEN5720" +></A +><H3 +><A +NAME="XMLNEWPARSERCTXT" +></A +>xmlNewParserCtxt ()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +><A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> xmlNewParserCtxt ();</PRE +></TD +></TR +></TABLE +><P +>Allocate and initialize a new parser context.</P +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><I +CLASS="EMPHASIS" +>Returns</I +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN5736" +></A +><H3 +><A +NAME="XMLSWITCHENCODING" +></A +>xmlSwitchEncoding ()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>void xmlSwitchEncoding (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt, + <GTKDOCLINK +HREF="XMLCHARENCODING" +>xmlCharEncoding</GTKDOCLINK +> enc);</PRE +></TD +></TR +></TABLE +><P +>change the input functions when discovering the character encoding +of a given entity.</P +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>ctxt</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>enc</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN5757" ></A ><H3 ><A @@ -1891,8 +2221,9 @@ HREF="gnome-xml-entities.html#XMLENTITYPTR" ></TABLE ><P >Default handling of defined entities, when should we define a new input -stream ? When do we just handle that as a set of chars ? -TODO: we should call the SAX handler here and have it resolve the issue</P +stream ? When do we just handle that as a set of chars ?</P +><P +>OBSOLETE: to be removed at some point.</P ><P ></P ><DIV @@ -1921,7 +2252,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -1938,7 +2269,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML entity pointer.</TD +> </TD ></TR ></TABLE ><P @@ -1948,7 +2279,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5154" +NAME="AEN5779" ></A ><H3 ><A @@ -2008,7 +2339,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2025,7 +2356,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an Entity pointer</TD +> </TD ></TR ><TR ><TD @@ -2040,7 +2371,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the new input stream</TD +> </TD ></TR ></TABLE ><P @@ -2050,7 +2381,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5180" +NAME="AEN5805" ></A ><H3 ><A @@ -2108,7 +2439,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2125,7 +2456,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser input fragment (entity, XML fragment ...).</TD +> </TD ></TR ></TABLE ><P @@ -2135,7 +2466,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5201" +NAME="AEN5826" ></A ><H3 ><A @@ -2165,8 +2496,6 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >xmlPopInput: the current input pointed by ctxt->input came to an end pop it and return the next char.</P ><P ->TODO A deallocation of the popped Input structure is needed</P -><P ></P ><DIV CLASS="INFORMALTABLE" @@ -2194,7 +2523,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2209,7 +2538,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the current CHAR in the parser context</TD +> </TD ></TR ></TABLE ><P @@ -2219,7 +2548,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5223" +NAME="AEN5847" ></A ><H3 ><A @@ -2272,7 +2601,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an xmlParserInputPtr</TD +> </TD ></TR ></TABLE ><P @@ -2282,7 +2611,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5239" +NAME="AEN5863" ></A ><H3 ><A @@ -2339,7 +2668,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2356,7 +2685,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the filename to use as entity</TD +> </TD ></TR ><TR ><TD @@ -2371,7 +2700,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the new input stream or NULL in case of error</TD +> </TD ></TR ></TABLE ><P @@ -2381,7 +2710,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5264" +NAME="AEN5888" ></A ><H3 ><A @@ -2447,7 +2776,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2464,7 +2793,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> a CHAR ** </TD +> </TD ></TR ><TR ><TD @@ -2479,8 +2808,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the function returns the local part, and prefix is updated -to get the Prefix if any.</TD +> </TD ></TR ></TABLE ><P @@ -2490,7 +2818,7 @@ to get the Prefix if any.</TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5293" +NAME="AEN5917" ></A ><H3 ><A @@ -2551,7 +2879,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2566,7 +2894,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the namespace name or NULL</TD +> </TD ></TR ></TABLE ><P @@ -2576,7 +2904,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5316" +NAME="AEN5940" ></A ><H3 ><A @@ -2642,7 +2970,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2659,7 +2987,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> a CHAR ** </TD +> </TD ></TR ><TR ><TD @@ -2674,8 +3002,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the function returns the local part, and prefix is updated -to get the Prefix if any.</TD +> </TD ></TR ></TABLE ><P @@ -2685,7 +3012,7 @@ to get the Prefix if any.</TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5345" +NAME="AEN5969" ></A ><H3 ><A @@ -2745,7 +3072,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2760,7 +3087,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the namespace name</TD +> </TD ></TR ></TABLE ><P @@ -2770,7 +3097,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5368" +NAME="AEN5992" ></A ><H3 ><A @@ -2797,7 +3124,8 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ></TR ></TABLE ><P ->[OLD] Parse and return a string between quotes or doublequotes</P +>[OLD] Parse and return a string between quotes or doublequotes +To be removed at next drop of binary compatibility</P ><P ></P ><DIV @@ -2826,7 +3154,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2841,7 +3169,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the string parser or NULL.</TD +> </TD ></TR ></TABLE ><P @@ -2851,7 +3179,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5389" +NAME="AEN6013" ></A ><H3 ><A @@ -2881,6 +3209,8 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" other stuff may still rely on it, so support is still here as if ot was declared on the root of the Tree:-(</P ><P +>To be removed at next drop of binary compatibility</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -2908,7 +3238,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -2918,7 +3248,96 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5406" +NAME="AEN6031" +></A +><H3 +><A +NAME="XMLSCANNAME" +></A +>xmlScanName ()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +><A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +>* xmlScanName (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt);</PRE +></TD +></TR +></TABLE +><P +>Trickery: parse an XML name but without consuming the input flow +Needed for rollback cases.</P +><P +>[4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | +CombiningChar | Extender</P +><P +>[5] Name ::= (Letter | '_' | ':') (NameChar)*</P +><P +>[6] Names ::= Name (S Name)*</P +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>ctxt</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><I +CLASS="EMPHASIS" +>Returns</I +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN6055" ></A ><H3 ><A @@ -2981,7 +3400,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -2996,7 +3415,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the Name parsed or NULL</TD +> </TD ></TR ></TABLE ><P @@ -3006,7 +3425,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5430" +NAME="AEN6079" ></A ><H3 ><A @@ -3066,7 +3485,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3081,7 +3500,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the Nmtoken parsed or NULL</TD +> </TD ></TR ></TABLE ><P @@ -3091,7 +3510,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5453" +NAME="AEN6102" ></A ><H3 ><A @@ -3154,7 +3573,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3171,7 +3590,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> if non-NULL store a copy of the original entity value</TD +> </TD ></TR ><TR ><TD @@ -3186,7 +3605,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the EntityValue parsed with reference substitued or NULL</TD +> </TD ></TR ></TABLE ><P @@ -3196,7 +3615,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5480" +NAME="AEN6129" ></A ><H3 ><A @@ -3258,7 +3677,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3273,7 +3692,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the AttValue parsed or NULL.</TD +> </TD ></TR ></TABLE ><P @@ -3283,7 +3702,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5502" +NAME="AEN6151" ></A ><H3 ><A @@ -3341,7 +3760,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3356,7 +3775,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the SystemLiteral parsed or NULL</TD +> </TD ></TR ></TABLE ><P @@ -3366,7 +3785,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5524" +NAME="AEN6173" ></A ><H3 ><A @@ -3424,7 +3843,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3439,7 +3858,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the PubidLiteral parsed or NULL.</TD +> </TD ></TR ></TABLE ><P @@ -3449,7 +3868,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5546" +NAME="AEN6195" ></A ><H3 ><A @@ -3506,7 +3925,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3523,7 +3942,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> int indicating whether we are within a CDATA section</TD +> </TD ></TR ></TABLE ><P @@ -3533,7 +3952,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5567" +NAME="AEN6216" ></A ><H3 ><A @@ -3602,7 +4021,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3619,7 +4038,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> a CHAR** receiving PubidLiteral</TD +> </TD ></TR ><TR ><TD @@ -3636,8 +4055,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> indicate whether we should restrict parsing to only -production [75], see NOTE below</TD +> </TD ></TR ><TR ><TD @@ -3652,9 +4070,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the function returns SystemLiteral and in the second -case publicID receives PubidLiteral, is strict is off -it is possible to return NULL and have publicID set.</TD +> </TD ></TR ></TABLE ><P @@ -3664,7 +4080,7 @@ it is possible to return NULL and have publicID set.</TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5600" +NAME="AEN6249" ></A ><H3 ><A @@ -3723,7 +4139,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3740,7 +4156,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> should we create a node, or just skip the content</TD +> </TD ></TR ></TABLE ><P @@ -3750,7 +4166,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5621" +NAME="AEN6270" ></A ><H3 ><A @@ -3808,7 +4224,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -3823,7 +4239,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the PITarget name or NULL</TD +> </TD ></TR ></TABLE ><P @@ -3833,7 +4249,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5643" +NAME="AEN6292" ></A ><H3 ><A @@ -3890,7 +4306,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -3900,7 +4316,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5661" +NAME="AEN6310" ></A ><H3 ><A @@ -3965,7 +4381,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -3975,7 +4391,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5681" +NAME="AEN6330" ></A ><H3 ><A @@ -4013,6 +4429,9 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >[76] NDataDecl ::= S 'NDATA' S Name</P ><P +>[ VC: Notation Declared ] +TODO The Name must match the declared name of a notation.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4040,7 +4459,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -4050,7 +4469,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5703" +NAME="AEN6353" ></A ><H3 ><A @@ -4091,6 +4510,34 @@ HREF="FIXED" >FIXED</GTKDOCLINK >' S)? AttValue)</P ><P +>[ VC: Required Attribute ] +TODO if the default declaration is the keyword <GTKDOCLINK +HREF="REQUIRED" +>REQUIRED</GTKDOCLINK +>, then the +attribute must be specified for all elements of the type in the +attribute-list declaration.</P +><P +>[ VC: Attribute Default Legal ] +The declared default value must meet the lexical constraints of +the declared attribute type c.f. <A +HREF="gnome-xml-valid.html#XMLVALIDATEATTRIBUTEDECL" +>xmlValidateAttributeDecl</A +>()</P +><P +>[ VC: Fixed Attribute Default ] +TODO if an attribute has a default value declared with the <GTKDOCLINK +HREF="FIXED" +>FIXED</GTKDOCLINK +> +keyword, instances of that attribute must match the default value. </P +><P +>[ WFC: No < in Attribute Values ] +handled in <A +HREF="gnome-xml-parserinternals.html#XMLPARSEATTVALUE" +>xmlParseAttValue</A +>()</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4118,7 +4565,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4135,7 +4582,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> Receive a possible fixed default value for the attribute</TD +> </TD ></TR ><TR ><TD @@ -4150,8 +4597,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> XML_ATTRIBUTE_NONE, XML_ATTRIBUTE_REQUIRED, XML_ATTRIBUTE_IMPLIED -or XML_ATTRIBUTE_FIXED. </TD +> </TD ></TR ></TABLE ><P @@ -4161,7 +4607,7 @@ or XML_ATTRIBUTE_FIXED. </TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5732" +NAME="AEN6390" ></A ><H3 ><A @@ -4190,9 +4636,13 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >parse an Notation attribute type.</P ><P +>Note: the leading 'NOTATION' S part has already being parsed...</P +><P >[58] NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'</P ><P ->Note: the leading 'NOTATION' S part has already being parsed...</P +>[ VC: Notation Attributes ] +TODO Values of this type must match one of the notation names included +in the declaration; all notation names in the declaration must be declared.</P ><P ></P ><DIV @@ -4221,7 +4671,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4236,7 +4686,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the notation attribute tree built while parsing</TD +> </TD ></TR ></TABLE ><P @@ -4246,7 +4696,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5755" +NAME="AEN6414" ></A ><H3 ><A @@ -4277,6 +4727,10 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >[59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')'</P ><P +>[ VC: Enumeration ] +TODO Values of this type must match one of the Nmtoken tokens in +the declaration</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4304,7 +4758,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4319,7 +4773,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the enumeration attribute tree built while parsing</TD +> </TD ></TR ></TABLE ><P @@ -4329,7 +4783,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5777" +NAME="AEN6437" ></A ><H3 ><A @@ -4390,7 +4844,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4407,7 +4861,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the enumeration tree built while parsing</TD +> </TD ></TR ><TR ><TD @@ -4422,7 +4876,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> XML_ATTRIBUTE_ENUMERATION or XML_ATTRIBUTE_NOTATION</TD +> </TD ></TR ></TABLE ><P @@ -4432,7 +4886,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5804" +NAME="AEN6464" ></A ><H3 ><A @@ -4469,6 +4923,44 @@ HREF="gnome-xml-tree.html#XMLENUMERATIONPTR" >[56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS'</P ><P +>Validity constraints for attribute values syntax are checked in +<GTKDOCLINK +HREF="XMLVALIDATEATTRIBUTEVALUE" +>xmlValidateAttributeValue</GTKDOCLINK +>()</P +><P +>[ VC: ID ] +Values of type ID must match the Name production. TODO A name must not +appear more than once in an XML document as a value of this type; +i.e., ID values must uniquely identify the elements which bear them.</P +><P +>[ VC: One ID per Element Type ] +TODO No element type may have more than one ID attribute specified.</P +><P +>[ VC: ID Attribute Default ] +TODO An ID attribute must have a declared default of <GTKDOCLINK +HREF="IMPLIED" +>IMPLIED</GTKDOCLINK +> or <GTKDOCLINK +HREF="REQUIRED" +>REQUIRED</GTKDOCLINK +>.</P +><P +>[ VC: IDREF ] +Values of type IDREF must match the Name production, and values +of type IDREFS must match Names; TODO each Name must match the value of +an ID attribute on some element in the XML document; i.e. IDREF +values must match the value of some ID attribute.</P +><P +>[ VC: Entity Name ] +Values of type ENTITY must match the Name production, values +of type ENTITIES must match Names; TODO each Name must match the name of +an unparsed entity declared in the DTD. </P +><P +>[ VC: Name Token ] +Values of type NMTOKEN must match the Nmtoken production; values +of type NMTOKENS must match Nmtokens.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4496,7 +4988,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4513,7 +5005,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the enumeration tree built while parsing</TD +> </TD ></TR ><TR ><TD @@ -4528,7 +5020,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the attribute type</TD +> </TD ></TR ></TABLE ><P @@ -4538,7 +5030,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5832" +NAME="AEN6502" ></A ><H3 ><A @@ -4595,7 +5087,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -4605,7 +5097,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5850" +NAME="AEN6520" ></A ><H3 ><A @@ -4645,6 +5137,12 @@ HREF="PCDATA" >PCDATA</GTKDOCLINK >' S? ')'</P ><P +>[ VC: Proper Group/PE Nesting ] applies to [51] too (see [49])</P +><P +>[ VC: No Duplicate Types ] +TODO The same name must not appear more than once in a single +mixed-content declaration.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4672,7 +5170,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4687,7 +5185,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the list of the xmlElementContentPtr describing the element choices</TD +> </TD ></TR ></TABLE ><P @@ -4697,7 +5195,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5874" +NAME="AEN6546" ></A ><H3 ><A @@ -4736,6 +5234,17 @@ The leading '(' and spaces have been skipped in xmlParseElementContentDecl</P ><P >[50] seq ::= '(' S? cp ( S? ',' S? cp )* S? ')'</P ><P +>[ VC: Proper Group/PE Nesting ] applies to [49] and [50] +TODO Parameter-entity replacement text must be properly nested +with parenthetized groups. That is to say, if either of the +opening or closing parentheses in a choice, seq, or Mixed +construct is contained in the replacement text for a parameter +entity, both must be contained in the same replacement text. For +interoperability, if a parameter-entity reference appears in a +choice, seq, or Mixed construct, its replacement text should not +be empty, and neither the first nor last non-blank character of +the replacement text should be a connector (| or ,).</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -4763,7 +5272,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4778,8 +5287,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the tree of xmlElementContentPtr describing the element -hierarchy.</TD +> </TD ></TR ></TABLE ><P @@ -4789,7 +5297,7 @@ hierarchy.</TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5899" +NAME="AEN6572" ></A ><H3 ><A @@ -4853,7 +5361,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4870,7 +5378,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the name of the element being defined.</TD +> </TD ></TR ><TR ><TD @@ -4887,7 +5395,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the Element Content pointer will be stored here if any</TD +> </TD ></TR ><TR ><TD @@ -4902,7 +5410,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the type of element content XML_ELEMENT_TYPE_xxx</TD +> </TD ></TR ></TABLE ><P @@ -4912,7 +5420,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5930" +NAME="AEN6603" ></A ><H3 ><A @@ -4940,7 +5448,8 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >[45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>'</P ><P ->TODO There is a check [ VC: Unique Element Type Declaration ]</P +>[ VC: Unique Element Type Declaration ] +TODO No element type may be declared more than once</P ><P ></P ><DIV @@ -4969,7 +5478,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -4984,7 +5493,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the type of the element, or -1 in case of error</TD +> </TD ></TR ></TABLE ><P @@ -4994,7 +5503,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5952" +NAME="AEN6625" ></A ><H3 ><A @@ -5023,7 +5532,18 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >[29] markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl | PI | Comment</P ><P ->TODO There is a check [ VC: Proper Declaration/PE Nesting ]</P +>[ VC: Proper Declaration/PE Nesting ] +TODO Parameter-entity replacement text must be properly nested with +markup declarations. That is to say, if either the first character +or the last character of a markup declaration (markupdecl above) is +contained in the replacement text for a parameter-entity reference, +both must be contained in the same replacement text.</P +><P +>[ WFC: PEs in Internal Subset ] +In the internal DTD subset, parameter-entity references can occur +only where markup declarations can occur, not within markup declarations. +(This does not apply to references that occur in external parameter +entities or to the external subset.)</P ><P ></P ><DIV @@ -5052,7 +5572,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5062,7 +5582,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5970" +NAME="AEN6644" ></A ><H3 ><A @@ -5094,6 +5614,10 @@ HREF="X" >x</GTKDOCLINK >' [0-9a-fA-F]+ ';'</P ><P +>[ WFC: Legal Character ] +Characters referred to using character references must match the +production for Char.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -5121,7 +5645,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -5136,7 +5660,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the value parsed (as an int)</TD +> </TD ></TR ></TABLE ><P @@ -5146,7 +5670,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN5992" +NAME="AEN6667" ></A ><H3 ><A @@ -5177,6 +5701,24 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >[68] EntityRef ::= '&' Name ';'</P ><P +>[ WFC: Entity Declared ] +In a document without any DTD, a document with only an internal DTD +subset which contains no parameter entity references, or a document +with "standalone='yes'", the Name given in the entity reference +must match that in an entity declaration, except that well-formed +documents need not declare any of the following entities: amp, lt, +gt, apos, quot. The declaration of a parameter entity must precede +any reference to it. Similarly, the declaration of a general entity +must precede any reference to it which appears in a default value in an +attribute-list declaration. Note that if entities are declared in the +external subset or in external parameter entities, a non-validating +processor is not obligated to read and process their declarations; +for such documents, the rule that an entity must be declared is a +well-formedness constraint only if standalone='yes'.</P +><P +>[ WFC: Parsed Entity ] +An entity reference must not contain the name of an unparsed entity</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -5204,7 +5746,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -5219,7 +5761,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the xmlEntityPtr if found, or NULL otherwise.</TD +> </TD ></TR ></TABLE ><P @@ -5229,7 +5771,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6014" +NAME="AEN6691" ></A ><H3 ><A @@ -5293,7 +5835,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5303,7 +5845,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6033" +NAME="AEN6710" ></A ><H3 ><A @@ -5333,6 +5875,25 @@ a new input stream.</P ><P >[69] PEReference ::= '%' Name ';'</P ><P +>[ WFC: No Recursion ] +TODO A parsed entity must not contain a recursive +reference to itself, either directly or indirectly. </P +><P +>[ WFC: Entity Declared ] +In a document without any DTD, a document with only an internal DTD +subset which contains no parameter entity references, or a document +with "standalone='yes'", ... ... The declaration of a parameter +entity must precede any reference to it...</P +><P +>[ VC: Entity Declared ] +In a document with an external subset or external parameter entities +with "standalone='no'", ... ... The declaration of a parameter entity +must precede any reference to it...</P +><P +>[ WFC: In DTD ] +Parameter-entity references may only appear in the DTD. +NOTE: misleading but this is handled.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -5360,7 +5921,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5370,7 +5931,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6050" +NAME="AEN6731" ></A ><H3 ><A @@ -5399,6 +5960,10 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdecl | PEReference | S)* ']' S?)? '>'</P ><P +>[ VC: Root Element Type ] +The Name in the document type declaration must match the element +type of the root element.</P +><P ></P ><DIV CLASS="INFORMALTABLE" @@ -5426,7 +5991,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5436,7 +6001,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6067" +NAME="AEN6749" ></A ><H3 ><A @@ -5471,6 +6036,18 @@ HREF="gnome-xml-tree.html#CHAR" ><P >[41] Attribute ::= Name Eq AttValue</P ><P +>[ WFC: No External Entity References ] +Attribute values cannot contain direct or indirect entity references +to external entities.</P +><P +>[ WFC: No < in Attribute Values ] +The replacement text of any entity referred to directly or indirectly in +an attribute value (other than "&lt;") must not contain a <. </P +><P +>[ VC: Attribute Value Type ] +TODO The attribute must have been declared; the value must be of the type +declared for it.</P +><P >[25] Eq ::= S? '=' S?</P ><P >With namespace:</P @@ -5507,7 +6084,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -5524,7 +6101,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> a CHAR ** used to store the value of the attribute</TD +> </TD ></TR ><TR ><TD @@ -5539,7 +6116,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the attribute name, and the value in *value.</TD +> </TD ></TR ></TABLE ><P @@ -5549,7 +6126,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6098" +NAME="AEN6783" ></A ><H3 ><A @@ -5581,8 +6158,16 @@ EmptyElement. In both case we don't parse the tag closing chars.</P ><P >[40] STag ::= '<' Name (S Attribute)* S? '>'</P ><P +>[ WFC: Unique Att Spec ] +No attribute name may appear more than once in the same start-tag or +empty-element tag. </P +><P >[44] EmptyElemTag ::= '<' Name (S Attribute)* S? '/>'</P ><P +>[ WFC: Unique Att Spec ] +No attribute name may appear more than once in the same start-tag or +empty-element tag. </P +><P >With namespace:</P ><P >[NS 8] STag ::= '<' QName (S Attribute)* S? '>'</P @@ -5616,7 +6201,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -5631,7 +6216,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the element name parsed</TD +> </TD ></TR ></TABLE ><P @@ -5641,7 +6226,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6124" +NAME="AEN6811" ></A ><H3 ><A @@ -5704,7 +6289,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -5721,7 +6306,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the tag name as parsed in the opening tag.</TD +> </TD ></TR ></TABLE ><P @@ -5731,7 +6316,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6148" +NAME="AEN6835" ></A ><H3 ><A @@ -5792,7 +6377,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5802,7 +6387,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6168" +NAME="AEN6855" ></A ><H3 ><A @@ -5857,7 +6442,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5867,7 +6452,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6185" +NAME="AEN6872" ></A ><H3 ><A @@ -5895,7 +6480,22 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" ><P >[39] element ::= EmptyElemTag | STag content ETag</P ><P ->[41] Attribute ::= Name Eq AttValue</P +>[ WFC: Element Type Match ] +The Name in an element's end-tag must match the element type in the +start-tag. </P +><P +>[ VC: Element Valid ] +TODO An element is valid if there is a declaration matching elementdecl +where the Name matches the element type and one of the following holds: +- The declaration matches EMPTY and the element has no content. +- The declaration matches children and the sequence of child elements +belongs to the language generated by the regular expression in the +content model, with optional white space (characters matching the +nonterminal S) between each pair of child elements. +- The declaration matches Mixed and the content consists of character +data and child elements whose types match names in the content model. +- The declaration matches ANY, and the types of any child elements have +been declared.</P ><P ></P ><DIV @@ -5924,7 +6524,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -5934,7 +6534,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6203" +NAME="AEN6891" ></A ><H3 ><A @@ -5992,7 +6592,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -6007,7 +6607,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the string giving the XML version number, or NULL</TD +> </TD ></TR ></TABLE ><P @@ -6017,7 +6617,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6225" +NAME="AEN6913" ></A ><H3 ><A @@ -6077,7 +6677,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -6092,7 +6692,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the version string, e.g. "1.0"</TD +> </TD ></TR ></TABLE ><P @@ -6102,7 +6702,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6248" +NAME="AEN6936" ></A ><H3 ><A @@ -6160,7 +6760,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -6175,7 +6775,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the encoding name value or NULL</TD +> </TD ></TR ></TABLE ><P @@ -6185,7 +6785,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6270" +NAME="AEN6958" ></A ><H3 ><A @@ -6245,7 +6845,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -6260,7 +6860,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->the encoding value or NULL</TD +> </TD ></TR ></TABLE ><P @@ -6270,7 +6870,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6293" +NAME="AEN6981" ></A ><H3 ><A @@ -6297,7 +6897,21 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" >parse the XML standalone declaration</P ><P >[32] SDDecl ::= S 'standalone' Eq -(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"'))</P +(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no')'"')) </P +><P +>[ VC: Standalone Document Declaration ] +TODO The standalone document declaration must have the value "no" +if any external markup declarations contain declarations of: +- attributes with default values, if elements to which these +attributes apply appear in the document without specifications +of values for these attributes, or +- entities (other than amp, lt, gt, apos, quot), if references +to those entities appear in the document, or +- attributes with values subject to normalization, where the +attribute appears in the document with a value which will change +as a result of normalization, or +- element types with element content, if white space occurs directly +within any instance of those types.</P ><P ></P ><DIV @@ -6326,7 +6940,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ><TR ><TD @@ -6341,7 +6955,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->1 if standalone, 0 otherwise</TD +> </TD ></TR ></TABLE ><P @@ -6351,7 +6965,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6314" +NAME="AEN7003" ></A ><H3 ><A @@ -6406,7 +7020,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD ></TR ></TABLE ><P @@ -6416,7 +7030,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6331" +NAME="AEN7020" ></A ><H3 ><A @@ -6471,7 +7085,118 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an XML parser context</TD +> </TD +></TR +></TABLE +><P +></P +></DIV +></DIV +><HR><DIV +CLASS="REFSECT2" +><A +NAME="AEN7037" +></A +><H3 +><A +NAME="XMLPARSEEXTERNALSUBSET" +></A +>xmlParseExternalSubset ()</H3 +><TABLE +BORDER="0" +BGCOLOR="#D6E8FF" +WIDTH="100%" +CELLPADDING="6" +><TR +><TD +><PRE +CLASS="PROGRAMLISTING" +>void xmlParseExternalSubset (<A +HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR" +>xmlParserCtxtPtr</A +> ctxt, + const <A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +> *ExternalID, + const <A +HREF="gnome-xml-tree.html#CHAR" +>CHAR</A +> *SystemID);</PRE +></TD +></TR +></TABLE +><P +>parse Markup declarations from an external subset</P +><P +>[30] extSubset ::= textDecl? extSubsetDecl</P +><P +>[31] extSubsetDecl ::= (markupdecl | conditionalSect | PEReference | S) *</P +><P +>TODO There is a check [ VC: Proper Declaration/PE Nesting ]</P +><P +></P +><DIV +CLASS="INFORMALTABLE" +><P +></P +><TABLE +BORDER="0" +WIDTH="100%" +BGCOLOR="#FFD0D0" +CELLSPACING="0" +CELLPADDING="4" +CLASS="CALSTABLE" +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>ctxt</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>ExternalID</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD +></TR +><TR +><TD +WIDTH="20%" +ALIGN="RIGHT" +VALIGN="TOP" +><TT +CLASS="PARAMETER" +><I +>SystemID</I +></TT +> :</TD +><TD +WIDTH="80%" +ALIGN="LEFT" +VALIGN="TOP" +> </TD ></TR ></TABLE ><P @@ -6481,7 +7206,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6348" +NAME="AEN7066" ></A ><H3 ><A @@ -6497,7 +7222,7 @@ CELLPADDING="6" ><TD ><PRE CLASS="PROGRAMLISTING" ->#define XML_SUBSTITUTE_NONE 0</PRE +>#define XML_SUBSTITUTE_NONE</PRE ></TD ></TR ></TABLE @@ -6507,7 +7232,7 @@ CLASS="PROGRAMLISTING" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6353" +NAME="AEN7071" ></A ><H3 ><A @@ -6523,7 +7248,7 @@ CELLPADDING="6" ><TD ><PRE CLASS="PROGRAMLISTING" ->#define XML_SUBSTITUTE_REF 1</PRE +>#define XML_SUBSTITUTE_REF</PRE ></TD ></TR ></TABLE @@ -6533,7 +7258,7 @@ CLASS="PROGRAMLISTING" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6358" +NAME="AEN7076" ></A ><H3 ><A @@ -6549,7 +7274,7 @@ CELLPADDING="6" ><TD ><PRE CLASS="PROGRAMLISTING" ->#define XML_SUBSTITUTE_PEREF 2</PRE +>#define XML_SUBSTITUTE_PEREF</PRE ></TD ></TR ></TABLE @@ -6559,7 +7284,7 @@ CLASS="PROGRAMLISTING" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6363" +NAME="AEN7081" ></A ><H3 ><A @@ -6575,7 +7300,7 @@ CELLPADDING="6" ><TD ><PRE CLASS="PROGRAMLISTING" ->#define XML_SUBSTITUTE_BOTH 3</PRE +>#define XML_SUBSTITUTE_BOTH</PRE ></TD ></TR ></TABLE @@ -6585,7 +7310,7 @@ CLASS="PROGRAMLISTING" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6368" +NAME="AEN7086" ></A ><H3 ><A @@ -6657,7 +7382,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the parser context</TD +> </TD ></TR ><TR ><TD @@ -6674,7 +7399,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> the len to decode (in bytes !), -1 for no size limit</TD +> </TD ></TR ><TR ><TD @@ -6691,7 +7416,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> combination of XML_SUBSTITUTE_REF and XML_SUBSTITUTE_PEREF</TD +> </TD ></TR ><TR ><TD @@ -6708,7 +7433,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an end marker CHAR, 0 if none</TD +> </TD ></TR ><TR ><TD @@ -6725,7 +7450,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an end marker CHAR, 0 if none</TD +> </TD ></TR ><TR ><TD @@ -6742,7 +7467,7 @@ CLASS="PARAMETER" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" -> an end marker CHAR, 0 if none</TD +> </TD ></TR ><TR ><TD @@ -6757,8 +7482,7 @@ CLASS="EMPHASIS" WIDTH="80%" ALIGN="LEFT" VALIGN="TOP" ->A newly allocated string with the substitution done. The caller -must deallocate it !</TD +> </TD ></TR ></TABLE ><P @@ -6768,7 +7492,7 @@ must deallocate it !</TD ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6413" +NAME="AEN7131" ></A ><H3 ><A @@ -6865,7 +7589,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6437" +NAME="AEN7155" ></A ><H3 ><A @@ -6944,7 +7668,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6457" +NAME="AEN7175" ></A ><H3 ><A @@ -7041,7 +7765,7 @@ VALIGN="TOP" ><HR><DIV CLASS="REFSECT2" ><A -NAME="AEN6481" +NAME="AEN7199" ></A ><H3 ><A |