1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-02-04 01:47:02 +03:00

Added call to create/free parser contexts, + doc, Daniel.

This commit is contained in:
Daniel Veillard 1999-02-28 21:54:31 +00:00
parent 047434332f
commit d692aa49bd
13 changed files with 880 additions and 335 deletions

View File

@ -1,3 +1,9 @@
Sun Feb 28 22:51:33 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
* parser.c, parser.h, parserInternals.h: added a few extra
internal calls to allocate and free parser contexts ...
* doc/html/* : updated accordingly
Thu Feb 25 11:52:24 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
* configure.in, Makefile.am, doc/makefile.am : General changes for

View File

@ -65,7 +65,7 @@ WIDTH="100%"></DIV
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN2955"
NAME="AEN2972"
></A
><H2
>Name</H2
@ -73,7 +73,7 @@ NAME="AEN2955"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN2958"
NAME="AEN2975"
></A
><H2
>Synopsis</H2
@ -276,7 +276,7 @@ HREF="gnome-xml-entities.html#XMLENTITYPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3010"
NAME="AEN3027"
></A
><H2
>Description</H2
@ -286,14 +286,14 @@ NAME="AEN3010"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3013"
NAME="AEN3030"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3015"
NAME="AEN3032"
></A
><H3
><A
@ -319,7 +319,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3020"
NAME="AEN3037"
></A
><H3
><A
@ -345,7 +345,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3025"
NAME="AEN3042"
></A
><H3
><A
@ -371,7 +371,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3030"
NAME="AEN3047"
></A
><H3
><A
@ -397,7 +397,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3035"
NAME="AEN3052"
></A
><H3
><A
@ -423,7 +423,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3040"
NAME="AEN3057"
></A
><H3
><A
@ -449,7 +449,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3045"
NAME="AEN3062"
></A
><H3
><A
@ -475,7 +475,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3050"
NAME="AEN3067"
></A
><H3
><A
@ -501,7 +501,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3055"
NAME="AEN3072"
></A
><H3
><A
@ -527,7 +527,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3060"
NAME="AEN3077"
></A
><H3
><A
@ -692,7 +692,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3100"
NAME="AEN3117"
></A
><H3
><A
@ -857,7 +857,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3140"
NAME="AEN3157"
></A
><H3
><A
@ -938,7 +938,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3161"
NAME="AEN3178"
></A
><H3
><A
@ -1042,7 +1042,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3187"
NAME="AEN3204"
></A
><H3
><A
@ -1145,7 +1145,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3213"
NAME="AEN3230"
></A
><H3
><A
@ -1254,7 +1254,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3241"
NAME="AEN3258"
></A
><H3
><A
@ -1315,7 +1315,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3257"
NAME="AEN3274"
></A
><H3
><A
@ -1396,7 +1396,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3278"
NAME="AEN3295"
></A
><H3
><A
@ -1459,7 +1459,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3294"
NAME="AEN3311"
></A
><H3
><A
@ -1525,7 +1525,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3311"
NAME="AEN3328"
></A
><H3
><A

View File

@ -65,7 +65,7 @@ WIDTH="100%"></DIV
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3851"
NAME="AEN3868"
></A
><H2
>Name</H2
@ -73,7 +73,7 @@ NAME="AEN3851"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN3854"
NAME="AEN3871"
></A
><H2
>Synopsis</H2
@ -113,7 +113,7 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3861"
NAME="AEN3878"
></A
><H2
>Description</H2
@ -123,14 +123,14 @@ NAME="AEN3861"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3864"
NAME="AEN3881"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3866"
NAME="AEN3883"
></A
><H3
><A
@ -230,7 +230,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3890"
NAME="AEN3907"
></A
><H3
><A

View File

@ -92,6 +92,13 @@ CLASS="SYNOPSIS"
HREF="gnome-xml-parser.html#XML-DEFAULT-VERSION"
>XML_DEFAULT_VERSION</A
>
void (<A
HREF="gnome-xml-parser.html#XMLPARSERINPUTDEALLOCATE"
>*xmlParserInputDeallocate</A
>) (<A
HREF="gnome-xml-tree.html#CHAR"
>CHAR</A
>*);
typedef <A
HREF="gnome-xml-parser.html#XMLPARSERINPUTPTR"
>xmlParserInputPtr</A
@ -600,7 +607,7 @@ HREF="gnome-xml-parser.html#XMLDEFAULTSAXHANDLERINIT"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN151"
NAME="AEN153"
></A
><H2
>Description</H2
@ -610,14 +617,14 @@ NAME="AEN151"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN154"
NAME="AEN156"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN156"
NAME="AEN158"
></A
><H3
><A
@ -643,7 +650,68 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN161"
NAME="AEN163"
></A
><H3
><A
NAME="XMLPARSERINPUTDEALLOCATE"
></A
>xmlParserInputDeallocate()</H3
><TABLE
BORDER="0"
BGCOLOR="#E8E8F8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void (*xmlParserInputDeallocate) (<A
HREF="gnome-xml-tree.html#CHAR"
>CHAR</A
>*);</PRE
></TD
></TR
></TABLE
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFE0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>Param1</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN178"
></A
><H3
><A
@ -669,7 +737,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN166"
NAME="AEN183"
></A
><H3
><A
@ -695,7 +763,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN171"
NAME="AEN188"
></A
><H3
><A
@ -721,7 +789,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN176"
NAME="AEN193"
></A
><H3
><A
@ -747,7 +815,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN181"
NAME="AEN198"
></A
><H3
><A
@ -773,7 +841,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN186"
NAME="AEN203"
></A
><H3
><A
@ -799,7 +867,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN191"
NAME="AEN208"
></A
><H3
><A
@ -825,7 +893,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN196"
NAME="AEN213"
></A
><H3
><A
@ -851,7 +919,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN201"
NAME="AEN218"
></A
><H3
><A
@ -972,7 +1040,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN231"
NAME="AEN248"
></A
><H3
><A
@ -1096,7 +1164,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN261"
NAME="AEN278"
></A
><H3
><A
@ -1241,7 +1309,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN296"
NAME="AEN313"
></A
><H3
><A
@ -1323,7 +1391,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN316"
NAME="AEN333"
></A
><H3
><A
@ -1384,7 +1452,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN331"
NAME="AEN348"
></A
><H3
><A
@ -1445,7 +1513,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN346"
NAME="AEN363"
></A
><H3
><A
@ -1527,7 +1595,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN366"
NAME="AEN383"
></A
><H3
><A
@ -1609,7 +1677,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN386"
NAME="AEN403"
></A
><H3
><A
@ -1712,7 +1780,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN411"
NAME="AEN428"
></A
><H3
><A
@ -1830,7 +1898,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN439"
NAME="AEN456"
></A
><H3
><A
@ -1948,7 +2016,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN467"
NAME="AEN484"
></A
><H3
><A
@ -2051,7 +2119,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN492"
NAME="AEN509"
></A
><H3
><A
@ -2148,7 +2216,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN515"
NAME="AEN532"
></A
><H3
><A
@ -2245,7 +2313,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN538"
NAME="AEN555"
></A
><H3
><A
@ -2342,7 +2410,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN561"
NAME="AEN578"
></A
><H3
><A
@ -2368,7 +2436,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN566"
NAME="AEN583"
></A
><H3
><A
@ -2449,7 +2517,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN587"
NAME="AEN604"
></A
><H3
><A
@ -2553,7 +2621,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN613"
NAME="AEN630"
></A
><H3
><A
@ -2655,7 +2723,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN639"
NAME="AEN656"
></A
><H3
><A
@ -2754,7 +2822,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN664"
NAME="AEN681"
></A
><H3
><A
@ -2871,7 +2939,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN693"
NAME="AEN710"
></A
><H3
><A
@ -2949,7 +3017,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN713"
NAME="AEN730"
></A
><H3
><A
@ -3051,7 +3119,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN739"
NAME="AEN756"
></A
><H3
><A
@ -3176,7 +3244,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN770"
NAME="AEN787"
></A
><H3
><A
@ -3257,7 +3325,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN791"
NAME="AEN808"
></A
><H3
><A
@ -3353,7 +3421,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN815"
NAME="AEN832"
></A
><H3
><A
@ -3432,7 +3500,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN835"
NAME="AEN852"
></A
><H3
><A
@ -3514,7 +3582,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN856"
NAME="AEN873"
></A
><H3
><A
@ -3611,7 +3679,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN880"
NAME="AEN897"
></A
><H3
><A
@ -3691,7 +3759,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN900"
NAME="AEN917"
></A
><H3
><A
@ -3775,7 +3843,7 @@ as a result of the parsing.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN922"
NAME="AEN939"
></A
><H3
><A
@ -3898,7 +3966,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN952"
NAME="AEN969"
></A
><H3
><A
@ -4038,7 +4106,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN986"
NAME="AEN1003"
></A
><H3
><A
@ -4159,7 +4227,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1015"
NAME="AEN1032"
></A
><H3
><A
@ -4222,7 +4290,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1031"
NAME="AEN1048"
></A
><H3
><A
@ -4285,7 +4353,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1047"
NAME="AEN1064"
></A
><H3
><A
@ -4389,7 +4457,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1072"
NAME="AEN1089"
></A
><H3
><A
@ -4492,7 +4560,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1098"
NAME="AEN1115"
></A
><H3
><A
@ -4555,7 +4623,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1114"
NAME="AEN1131"
></A
><H3
><A
@ -4619,7 +4687,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1130"
NAME="AEN1147"
></A
><H3
><A
@ -4722,7 +4790,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1156"
NAME="AEN1173"
></A
><H3
><A
@ -4806,7 +4874,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1177"
NAME="AEN1194"
></A
><H3
><A

View File

@ -59,7 +59,7 @@ WIDTH="100%"></DIV
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3919"
NAME="AEN3936"
></A
><H2
>Name</H2
@ -67,7 +67,7 @@ NAME="AEN3919"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN3922"
NAME="AEN3939"
></A
><H2
>Synopsis</H2
@ -82,6 +82,38 @@ CELLPADDING="6"
CLASS="SYNOPSIS"
>&#13;
<A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> <A
HREF="gnome-xml-parserinternals.html#XMLCREATEDOCPARSERCTXT"
>xmlCreateDocParserCtxt</A
> (<A
HREF="gnome-xml-tree.html#CHAR"
>CHAR</A
> *cur);
<A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> <A
HREF="gnome-xml-parserinternals.html#XMLCREATEFILEPARSERCTXT"
>xmlCreateFileParserCtxt</A
> (const char *filename);
<A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> <A
HREF="gnome-xml-parserinternals.html#XMLCREATEMEMORYPARSERCTXT"
>xmlCreateMemoryParserCtxt</A
> (char *buffer,
int size);
void <A
HREF="gnome-xml-parserinternals.html#XMLFREEPARSERCTXT"
>xmlFreeParserCtxt</A
> (<A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> ctxt);
void <A
HREF="gnome-xml-parserinternals.html#XMLHANDLEENTITY"
>xmlHandleEntity</A
@ -558,7 +590,7 @@ HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4060"
NAME="AEN4086"
></A
><H2
>Description</H2
@ -568,14 +600,333 @@ NAME="AEN4060"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN4063"
NAME="AEN4089"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4065"
NAME="AEN4091"
></A
><H3
><A
NAME="XMLCREATEDOCPARSERCTXT"
></A
>xmlCreateDocParserCtxt()</H3
><TABLE
BORDER="0"
BGCOLOR="#E8E8F8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> xmlCreateDocParserCtxt (<A
HREF="gnome-xml-tree.html#CHAR"
>CHAR</A
> *cur);</PRE
></TD
></TR
></TABLE
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFE0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>cur</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4111"
></A
><H3
><A
NAME="XMLCREATEFILEPARSERCTXT"
></A
>xmlCreateFileParserCtxt()</H3
><TABLE
BORDER="0"
BGCOLOR="#E8E8F8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> xmlCreateFileParserCtxt (const char *filename);</PRE
></TD
></TR
></TABLE
><P
>Create a parser context for a file content.
Automatic support for ZLIB/Compress compressed document is provided
by default if found at compile-time.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFE0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>filename</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the filename</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the new parser context or NULL</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4131"
></A
><H3
><A
NAME="XMLCREATEMEMORYPARSERCTXT"
></A
>xmlCreateMemoryParserCtxt()</H3
><TABLE
BORDER="0"
BGCOLOR="#E8E8F8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> xmlCreateMemoryParserCtxt (char *buffer,
int size);</PRE
></TD
></TR
></TABLE
><P
>Create a parser context for an XML in-memory document.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFE0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>buffer</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an pointer to a char array</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>size</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the siwe of the array</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the new parser context or NULL</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4155"
></A
><H3
><A
NAME="XMLFREEPARSERCTXT"
></A
>xmlFreeParserCtxt()</H3
><TABLE
BORDER="0"
BGCOLOR="#E8E8F8"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xmlFreeParserCtxt (<A
HREF="gnome-xml-parser.html#XMLPARSERCTXTPTR"
>xmlParserCtxtPtr</A
> ctxt);</PRE
></TD
></TR
></TABLE
><P
>Free all the memory used by a parser context. However the parsed
document in ctxt-&gt;doc is not freed.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFE0E0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an XML parser context</TD
></TR
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4171"
></A
><H3
><A
@ -661,7 +1012,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4086"
NAME="AEN4192"
></A
><H3
><A
@ -747,7 +1098,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4109"
NAME="AEN4215"
></A
><H3
><A
@ -856,7 +1207,7 @@ to get the Prefix if any.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4138"
NAME="AEN4244"
></A
><H3
><A
@ -941,7 +1292,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4161"
NAME="AEN4267"
></A
><H3
><A
@ -1022,7 +1373,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4182"
NAME="AEN4288"
></A
><H3
><A
@ -1089,7 +1440,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4199"
NAME="AEN4305"
></A
><H3
><A
@ -1177,7 +1528,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4223"
NAME="AEN4329"
></A
><H3
><A
@ -1262,7 +1613,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4246"
NAME="AEN4352"
></A
><H3
><A
@ -1346,7 +1697,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4268"
NAME="AEN4374"
></A
><H3
><A
@ -1430,7 +1781,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4290"
NAME="AEN4396"
></A
><H3
><A
@ -1513,7 +1864,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4312"
NAME="AEN4418"
></A
><H3
><A
@ -1596,7 +1947,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4334"
NAME="AEN4440"
></A
><H3
><A
@ -1680,7 +2031,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4355"
NAME="AEN4461"
></A
><H3
><A
@ -1811,7 +2162,7 @@ it is possible to return NULL and have publicID set.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4388"
NAME="AEN4494"
></A
><H3
><A
@ -1918,7 +2269,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4415"
NAME="AEN4521"
></A
><H3
><A
@ -2001,7 +2352,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4437"
NAME="AEN4543"
></A
><H3
><A
@ -2068,7 +2419,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4455"
NAME="AEN4561"
></A
><H3
><A
@ -2143,7 +2494,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4475"
NAME="AEN4581"
></A
><H3
><A
@ -2218,7 +2569,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4497"
NAME="AEN4603"
></A
><H3
><A
@ -2329,7 +2680,7 @@ or XML_ATTRIBUTE_FIXED. </TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4526"
NAME="AEN4632"
></A
><H3
><A
@ -2414,7 +2765,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4549"
NAME="AEN4655"
></A
><H3
><A
@ -2497,7 +2848,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4571"
NAME="AEN4677"
></A
><H3
><A
@ -2600,7 +2951,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4598"
NAME="AEN4704"
></A
><H3
><A
@ -2706,7 +3057,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4626"
NAME="AEN4732"
></A
><H3
><A
@ -2773,7 +3124,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4644"
NAME="AEN4750"
></A
><H3
><A
@ -2865,7 +3216,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4668"
NAME="AEN4774"
></A
><H3
><A
@ -2957,7 +3308,7 @@ hierarchy.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4693"
NAME="AEN4799"
></A
><H3
><A
@ -3080,7 +3431,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4724"
NAME="AEN4830"
></A
><H3
><A
@ -3162,7 +3513,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4746"
NAME="AEN4852"
></A
><H3
><A
@ -3230,7 +3581,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4764"
NAME="AEN4870"
></A
><H3
><A
@ -3317,7 +3668,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4787"
NAME="AEN4893"
></A
><H3
><A
@ -3400,7 +3751,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4809"
NAME="AEN4915"
></A
><H3
><A
@ -3484,7 +3835,7 @@ the entity value as the input.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4831"
NAME="AEN4937"
></A
><H3
><A
@ -3567,7 +3918,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4853"
NAME="AEN4959"
></A
><H3
><A
@ -3633,7 +3984,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4870"
NAME="AEN4976"
></A
><H3
><A
@ -3746,7 +4097,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4901"
NAME="AEN5007"
></A
><H3
><A
@ -3838,7 +4189,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4927"
NAME="AEN5033"
></A
><H3
><A
@ -3951,7 +4302,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4957"
NAME="AEN5063"
></A
><H3
><A
@ -4022,7 +4373,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4977"
NAME="AEN5083"
></A
><H3
><A
@ -4087,7 +4438,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN4994"
NAME="AEN5100"
></A
><H3
><A
@ -4172,7 +4523,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5017"
NAME="AEN5123"
></A
><H3
><A
@ -4255,7 +4606,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5039"
NAME="AEN5145"
></A
><H3
><A
@ -4340,7 +4691,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5062"
NAME="AEN5168"
></A
><H3
><A
@ -4423,7 +4774,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5084"
NAME="AEN5190"
></A
><H3
><A
@ -4508,7 +4859,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5107"
NAME="AEN5213"
></A
><H3
><A
@ -4589,7 +4940,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5128"
NAME="AEN5234"
></A
><H3
><A
@ -4654,7 +5005,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN5145"
NAME="AEN5251"
></A
><H3
><A

View File

@ -65,7 +65,7 @@ WIDTH="100%"></DIV
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN1188"
NAME="AEN1205"
></A
><H2
>Name</H2
@ -73,7 +73,7 @@ NAME="AEN1188"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN1191"
NAME="AEN1208"
></A
><H2
>Synopsis</H2
@ -886,7 +886,7 @@ HREF="gnome-xml-tree.html#XMLSETCOMPRESSMODE"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN1412"
NAME="AEN1429"
></A
><H2
>Description</H2
@ -896,14 +896,14 @@ NAME="AEN1412"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN1415"
NAME="AEN1432"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1417"
NAME="AEN1434"
></A
><H3
><A
@ -942,7 +942,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1422"
NAME="AEN1439"
></A
><H3
><A
@ -955,7 +955,7 @@ NAME="CHAR"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1426"
NAME="AEN1443"
></A
><H3
><A
@ -981,7 +981,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1431"
NAME="AEN1448"
></A
><H3
><A
@ -1018,7 +1018,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1436"
NAME="AEN1453"
></A
><H3
><A
@ -1049,7 +1049,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1441"
NAME="AEN1458"
></A
><H3
><A
@ -1075,7 +1075,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1446"
NAME="AEN1463"
></A
><H3
><A
@ -1101,7 +1101,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1451"
NAME="AEN1468"
></A
><H3
><A
@ -1132,7 +1132,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1456"
NAME="AEN1473"
></A
><H3
><A
@ -1163,7 +1163,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1461"
NAME="AEN1478"
></A
><H3
><A
@ -1189,7 +1189,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1466"
NAME="AEN1483"
></A
><H3
><A
@ -1220,7 +1220,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1471"
NAME="AEN1488"
></A
><H3
><A
@ -1246,7 +1246,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1476"
NAME="AEN1493"
></A
><H3
><A
@ -1275,7 +1275,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1481"
NAME="AEN1498"
></A
><H3
><A
@ -1301,7 +1301,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1486"
NAME="AEN1503"
></A
><H3
><A
@ -1327,7 +1327,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1491"
NAME="AEN1508"
></A
><H3
><A
@ -1353,7 +1353,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1496"
NAME="AEN1513"
></A
><H3
><A
@ -1379,7 +1379,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1501"
NAME="AEN1518"
></A
><H3
><A
@ -1405,7 +1405,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1506"
NAME="AEN1523"
></A
><H3
><A
@ -1431,7 +1431,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1511"
NAME="AEN1528"
></A
><H3
><A
@ -1457,7 +1457,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1516"
NAME="AEN1533"
></A
><H3
><A
@ -1601,7 +1601,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1552"
NAME="AEN1569"
></A
><H3
><A
@ -1745,7 +1745,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1588"
NAME="AEN1605"
></A
><H3
><A
@ -1808,7 +1808,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1604"
NAME="AEN1621"
></A
><H3
><A
@ -1931,7 +1931,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1635"
NAME="AEN1652"
></A
><H3
><A
@ -2054,7 +2054,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1666"
NAME="AEN1683"
></A
><H3
><A
@ -2117,7 +2117,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1682"
NAME="AEN1699"
></A
><H3
><A
@ -2198,7 +2198,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1703"
NAME="AEN1720"
></A
><H3
><A
@ -2262,7 +2262,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1719"
NAME="AEN1736"
></A
><H3
><A
@ -2385,7 +2385,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1750"
NAME="AEN1767"
></A
><H3
><A
@ -2508,7 +2508,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1781"
NAME="AEN1798"
></A
><H3
><A
@ -2571,7 +2571,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1797"
NAME="AEN1814"
></A
><H3
><A
@ -2634,7 +2634,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1813"
NAME="AEN1830"
></A
><H3
><A
@ -2715,7 +2715,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1834"
NAME="AEN1851"
></A
><H3
><A
@ -2796,7 +2796,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1855"
NAME="AEN1872"
></A
><H3
><A
@ -2877,7 +2877,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1876"
NAME="AEN1893"
></A
><H3
><A
@ -2977,7 +2977,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1901"
NAME="AEN1918"
></A
><H3
><A
@ -3132,7 +3132,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1939"
NAME="AEN1956"
></A
><H3
><A
@ -3246,7 +3246,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN1967"
NAME="AEN1984"
></A
><H3
><A
@ -3407,7 +3407,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2006"
NAME="AEN2023"
></A
><H3
><A
@ -3509,7 +3509,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2032"
NAME="AEN2049"
></A
><H3
><A
@ -3590,7 +3590,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2053"
NAME="AEN2070"
></A
><H3
><A
@ -3711,7 +3711,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2083"
NAME="AEN2100"
></A
><H3
><A
@ -3810,7 +3810,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2108"
NAME="AEN2125"
></A
><H3
><A
@ -3912,7 +3912,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2134"
NAME="AEN2151"
></A
><H3
><A
@ -3993,7 +3993,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2155"
NAME="AEN2172"
></A
><H3
><A
@ -4095,7 +4095,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2181"
NAME="AEN2198"
></A
><H3
><A
@ -4194,7 +4194,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2206"
NAME="AEN2223"
></A
><H3
><A
@ -4275,7 +4275,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2227"
NAME="AEN2244"
></A
><H3
><A
@ -4356,7 +4356,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2248"
NAME="AEN2265"
></A
><H3
><A
@ -4434,7 +4434,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2268"
NAME="AEN2285"
></A
><H3
><A
@ -4541,7 +4541,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2295"
NAME="AEN2312"
></A
><H3
><A
@ -4604,7 +4604,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2311"
NAME="AEN2328"
></A
><H3
><A
@ -4706,7 +4706,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2337"
NAME="AEN2354"
></A
><H3
><A
@ -4813,7 +4813,7 @@ CLASS="PARAMETER"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2363"
NAME="AEN2380"
></A
><H3
><A
@ -4877,7 +4877,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2379"
NAME="AEN2396"
></A
><H3
><A
@ -4940,7 +4940,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2395"
NAME="AEN2412"
></A
><H3
><A
@ -5071,7 +5071,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2427"
NAME="AEN2444"
></A
><H3
><A
@ -5195,7 +5195,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2458"
NAME="AEN2475"
></A
><H3
><A
@ -5279,7 +5279,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2479"
NAME="AEN2496"
></A
><H3
><A
@ -5360,7 +5360,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2500"
NAME="AEN2517"
></A
><H3
><A
@ -5441,7 +5441,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2521"
NAME="AEN2538"
></A
><H3
><A
@ -5564,7 +5564,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2552"
NAME="AEN2569"
></A
><H3
><A
@ -5667,7 +5667,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2578"
NAME="AEN2595"
></A
><H3
><A
@ -5770,7 +5770,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2604"
NAME="AEN2621"
></A
><H3
><A
@ -5891,7 +5891,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2634"
NAME="AEN2651"
></A
><H3
><A
@ -6012,7 +6012,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2664"
NAME="AEN2681"
></A
><H3
><A
@ -6096,7 +6096,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2685"
NAME="AEN2702"
></A
><H3
><A
@ -6203,7 +6203,7 @@ CLASS="PARAMETER"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2711"
NAME="AEN2728"
></A
><H3
><A
@ -6287,7 +6287,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2732"
NAME="AEN2749"
></A
><H3
><A
@ -6394,7 +6394,7 @@ CLASS="PARAMETER"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2758"
NAME="AEN2775"
></A
><H3
><A
@ -6478,7 +6478,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2779"
NAME="AEN2796"
></A
><H3
><A
@ -6542,7 +6542,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2795"
NAME="AEN2812"
></A
><H3
><A
@ -6603,7 +6603,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2810"
NAME="AEN2827"
></A
><H3
><A
@ -6706,7 +6706,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2835"
NAME="AEN2852"
></A
><H3
><A
@ -6790,7 +6790,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2856"
NAME="AEN2873"
></A
><H3
><A
@ -6887,7 +6887,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2880"
NAME="AEN2897"
></A
><H3
><A
@ -6965,7 +6965,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2900"
NAME="AEN2917"
></A
><H3
><A
@ -7047,7 +7047,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2920"
NAME="AEN2937"
></A
><H3
><A
@ -7105,7 +7105,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2935"
NAME="AEN2952"
></A
><H3
><A

View File

@ -65,7 +65,7 @@ WIDTH="100%"></DIV
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN3342"
NAME="AEN3359"
></A
><H2
>Name</H2
@ -73,7 +73,7 @@ NAME="AEN3342"
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN3345"
NAME="AEN3362"
></A
><H2
>Synopsis</H2
@ -315,7 +315,7 @@ HREF="gnome-xml-valid.html#XMLATTRIBUTETABLEPTR"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3409"
NAME="AEN3426"
></A
><H2
>Description</H2
@ -325,14 +325,14 @@ NAME="AEN3409"
><DIV
CLASS="REFSECT1"
><A
NAME="AEN3412"
NAME="AEN3429"
></A
><H2
>Details</H2
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3414"
NAME="AEN3431"
></A
><H3
><A
@ -358,7 +358,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3419"
NAME="AEN3436"
></A
><H3
><A
@ -384,7 +384,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3424"
NAME="AEN3441"
></A
><H3
><A
@ -410,7 +410,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3429"
NAME="AEN3446"
></A
><H3
><A
@ -436,7 +436,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3434"
NAME="AEN3451"
></A
><H3
><A
@ -462,7 +462,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3439"
NAME="AEN3456"
></A
><H3
><A
@ -488,7 +488,7 @@ CLASS="PROGRAMLISTING"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3444"
NAME="AEN3461"
></A
><H3
><A
@ -632,7 +632,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3480"
NAME="AEN3497"
></A
><H3
><A
@ -713,7 +713,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3501"
NAME="AEN3518"
></A
><H3
><A
@ -776,7 +776,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3517"
NAME="AEN3534"
></A
><H3
><A
@ -842,7 +842,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3534"
NAME="AEN3551"
></A
><H3
><A
@ -941,7 +941,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3559"
NAME="AEN3576"
></A
><H3
><A
@ -1022,7 +1022,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3580"
NAME="AEN3597"
></A
><H3
><A
@ -1085,7 +1085,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3596"
NAME="AEN3613"
></A
><H3
><A
@ -1226,7 +1226,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3631"
NAME="AEN3648"
></A
><H3
><A
@ -1307,7 +1307,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3652"
NAME="AEN3669"
></A
><H3
><A
@ -1370,7 +1370,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3668"
NAME="AEN3685"
></A
><H3
><A
@ -1436,7 +1436,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3685"
NAME="AEN3702"
></A
><H3
><A
@ -1518,7 +1518,7 @@ of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3706"
NAME="AEN3723"
></A
><H3
><A
@ -1581,7 +1581,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3722"
NAME="AEN3739"
></A
><H3
><A
@ -1663,7 +1663,7 @@ of error.</TD
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3743"
NAME="AEN3760"
></A
><H3
><A
@ -1864,7 +1864,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3792"
NAME="AEN3809"
></A
><H3
><A
@ -1945,7 +1945,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3813"
NAME="AEN3830"
></A
><H3
><A
@ -2008,7 +2008,7 @@ VALIGN="TOP"
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3829"
NAME="AEN3846"
></A
><H3
><A

View File

@ -1,5 +1,6 @@
<ANCHOR id ="GNOME-XML-PARSER" href="gnome-xml/gnome-xml-parser.html">
<ANCHOR id ="XML-DEFAULT-VERSION" href="gnome-xml/gnome-xml-parser.html#XML-DEFAULT-VERSION">
<ANCHOR id ="XMLPARSERINPUTDEALLOCATE" href="gnome-xml/gnome-xml-parser.html#XMLPARSERINPUTDEALLOCATE">
<ANCHOR id ="XMLPARSERINPUTPTR" href="gnome-xml/gnome-xml-parser.html#XMLPARSERINPUTPTR">
<ANCHOR id ="XMLPARSERNODEINFO" href="gnome-xml/gnome-xml-parser.html#XMLPARSERNODEINFO">
<ANCHOR id ="XMLPARSERNODEINFOSEQ" href="gnome-xml/gnome-xml-parser.html#XMLPARSERNODEINFOSEQ">
@ -182,6 +183,10 @@
<ANCHOR id ="XMLPARSERERROR" href="gnome-xml/gnome-xml-error.html#XMLPARSERERROR">
<ANCHOR id ="XMLPARSERWARNING" href="gnome-xml/gnome-xml-error.html#XMLPARSERWARNING">
<ANCHOR id ="GNOME-XML-PARSERINTERNALS" href="gnome-xml/gnome-xml-parserinternals.html">
<ANCHOR id ="XMLCREATEDOCPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLCREATEDOCPARSERCTXT">
<ANCHOR id ="XMLCREATEFILEPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLCREATEFILEPARSERCTXT">
<ANCHOR id ="XMLCREATEMEMORYPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLCREATEMEMORYPARSERCTXT">
<ANCHOR id ="XMLFREEPARSERCTXT" href="gnome-xml/gnome-xml-parserinternals.html#XMLFREEPARSERCTXT">
<ANCHOR id ="XMLHANDLEENTITY" href="gnome-xml/gnome-xml-parserinternals.html#XMLHANDLEENTITY">
<ANCHOR id ="XMLNAMESPACEPARSENCNAME" href="gnome-xml/gnome-xml-parserinternals.html#XMLNAMESPACEPARSENCNAME">
<ANCHOR id ="XMLNAMESPACEPARSEQNAME" href="gnome-xml/gnome-xml-parserinternals.html#XMLNAMESPACEPARSEQNAME">

View File

@ -20,12 +20,14 @@ extern "C" {
*/
#define XML_DEFAULT_VERSION "1.0"
typedef void (* xmlParserInputDeallocate)(CHAR *);
typedef struct xmlParserInput {
const char *filename; /* The file analyzed, if any */
const CHAR *base; /* Base of the array to parse */
const CHAR *cur; /* Current char being parsed */
int line; /* Current line */
int col; /* Current column */
xmlParserInputDeallocate free; /* function to deallocate the base */
} xmlParserInput;
typedef xmlParserInput *xmlParserInputPtr;

View File

@ -15,6 +15,18 @@
extern "C" {
#endif
/*
* Parser context
*/
xmlParserCtxtPtr
xmlCreateDocParserCtxt(CHAR *cur);
xmlParserCtxtPtr
xmlCreateFileParserCtxt(const char *filename);
xmlParserCtxtPtr
xmlCreateMemoryParserCtxt(char *buffer, int size);
void
xmlFreeParserCtxt(xmlParserCtxtPtr ctxt);
/*
* Entities
*/

261
parser.c
View File

@ -58,13 +58,16 @@ int name##Push(xmlParserCtxtPtr ctxt, type value) { \
return(ctxt->name##Nr++); \
} \
type name##Pop(xmlParserCtxtPtr ctxt) { \
type ret; \
if (ctxt->name##Nr <= 0) return(0); \
ctxt->name##Nr--; \
if (ctxt->name##Nr > 0) \
ctxt->name = ctxt->name##Tab[ctxt->name##Nr - 1]; \
else \
ctxt->name = NULL; \
return(ctxt->name); \
ret = ctxt->name##Tab[ctxt->name##Nr]; \
ctxt->name##Tab[ctxt->name##Nr] = 0; \
return(ret); \
} \
PUSH_AND_POP(xmlParserInputPtr, input)
@ -147,6 +150,23 @@ xmlPushInput(xmlParserCtxtPtr ctxt, xmlParserInputPtr input) {
inputPush(ctxt, input);
}
/**
* xmlFreeInputStream:
* @input: an xmlParserInputPtr
*
* Free up an input stream.
*/
void
xmlFreeInputStream(xmlParserInputPtr input) {
if (input == NULL) return;
if (input->filename != NULL) return;
if ((input->free != NULL) && (input->base != NULL))
input->free((char *) input->base);
memset(input, -1, sizeof(xmlParserInput));
free(input);
}
/**
* xmlNewEntityInputStream:
* @ctxt: an XML parser context
@ -182,6 +202,7 @@ xmlNewEntityInputStream(xmlParserCtxtPtr ctxt, xmlEntityPtr entity) {
input->cur = entity->content;
input->line = 1;
input->col = 1;
input->free = NULL;
return(input);
}
@ -214,6 +235,7 @@ xmlNewStringInputStream(xmlParserCtxtPtr ctxt, CHAR *string) {
input->cur = string;
input->line = 1;
input->col = 1;
input->free = NULL;
return(input);
}
@ -4396,6 +4418,43 @@ xmlParseDocument(xmlParserCtxtPtr ctxt) {
return(0);
}
/**
* xmlCreateFileParserCtxt :
* @cur: a pointer to an array of CHAR
*
* Create a parser context for an XML in-memory document.
*
* Returns the new parser context or NULL
*/
xmlParserCtxtPtr
xmlCreateDocParserCtxt(CHAR *cur) {
xmlParserCtxtPtr ctxt;
xmlParserInputPtr input;
ctxt = (xmlParserCtxtPtr) malloc(sizeof(xmlParserCtxt));
if (ctxt == NULL) {
perror("malloc");
return(NULL);
}
xmlInitParserCtxt(ctxt);
input = (xmlParserInputPtr) malloc(sizeof(xmlParserInput));
if (input == NULL) {
perror("malloc");
free(ctxt);
return(NULL);
}
input->filename = NULL;
input->line = 1;
input->col = 1;
input->base = cur;
input->cur = cur;
input->free = NULL;
inputPush(ctxt, input);
return(ctxt);
}
/**
* xmlSAXParseDoc :
* @sax: the SAX handler block
@ -4414,32 +4473,13 @@ xmlDocPtr
xmlSAXParseDoc(xmlSAXHandlerPtr sax, CHAR *cur, int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr ctxt;
xmlParserInputPtr input;
if (cur == NULL) return(NULL);
ctxt = (xmlParserCtxtPtr) malloc(sizeof(xmlParserCtxt));
if (ctxt == NULL) {
perror("malloc");
return(NULL);
}
xmlInitParserCtxt(ctxt);
ctxt = xmlCreateDocParserCtxt(cur);
if (ctxt == NULL) return(NULL);
if (sax != NULL) ctxt->sax = sax;
input = (xmlParserInputPtr) malloc(sizeof(xmlParserInput));
if (input == NULL) {
perror("malloc");
free(ctxt);
return(NULL);
}
input->filename = NULL;
input->line = 1;
input->col = 1;
input->base = cur;
input->cur = cur;
inputPush(ctxt, input);
xmlParseDocument(ctxt);
if ((ctxt->wellFormed) || recovery) ret = ctxt->doc;
@ -4448,12 +4488,7 @@ xmlSAXParseDoc(xmlSAXHandlerPtr sax, CHAR *cur, int recovery) {
xmlFreeDoc(ctxt->doc);
ctxt->doc = NULL;
}
free(ctxt->nodeTab);
free(ctxt->inputTab);
if (input->filename != NULL)
free((char *)input->filename);
free(input);
free(ctxt);
xmlFreeParserCtxt(ctxt);
return(ret);
}
@ -4488,23 +4523,19 @@ xmlRecoverDoc(CHAR *cur) {
}
/**
* xmlSAXParseFile :
* @sax: the SAX handler block
* xmlCreateFileParserCtxt :
* @filename: the filename
* @recovery: work in recovery mode, i.e. tries to read no Well Formed
* documents
*
* parse an XML file and build a tree. Automatic support for ZLIB/Compress
* compressed document is provided by default if found at compile-time.
* It use the given SAX function block to handle the parsing callback.
* If sax is NULL, fallback to the default DOM tree building routines.
* Create a parser context for a file content.
* Automatic support for ZLIB/Compress compressed document is provided
* by default if found at compile-time.
*
* Returns the resulting document tree
* Returns the new parser context or NULL
*/
xmlDocPtr xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename,
int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr
xmlCreateFileParserCtxt(const char *filename)
{
xmlParserCtxtPtr ctxt;
#ifdef HAVE_ZLIB_H
gzFile input;
#else
@ -4514,7 +4545,6 @@ xmlDocPtr xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename,
int len;
struct stat buf;
char *buffer;
xmlParserCtxtPtr ctxt;
xmlParserInputPtr inputStream;
res = stat(filename, &buf);
@ -4583,7 +4613,6 @@ retry_bigger:
return(NULL);
}
xmlInitParserCtxt(ctxt);
if (sax != NULL) ctxt->sax = sax;
inputStream = (xmlParserInputPtr) malloc(sizeof(xmlParserInput));
if (inputStream == NULL) {
perror("malloc");
@ -4600,8 +4629,35 @@ retry_bigger:
*/
inputStream->base = buffer;
inputStream->cur = buffer;
inputStream->free = (xmlParserInputDeallocate) free;
inputPush(ctxt, inputStream);
return(ctxt);
}
/**
* xmlSAXParseFile :
* @sax: the SAX handler block
* @filename: the filename
* @recovery: work in recovery mode, i.e. tries to read no Well Formed
* documents
*
* parse an XML file and build a tree. Automatic support for ZLIB/Compress
* compressed document is provided by default if found at compile-time.
* It use the given SAX function block to handle the parsing callback.
* If sax is NULL, fallback to the default DOM tree building routines.
*
* Returns the resulting document tree
*/
xmlDocPtr xmlSAXParseFile(xmlSAXHandlerPtr sax, const char *filename,
int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr ctxt;
ctxt = xmlCreateFileParserCtxt(filename);
if (ctxt == NULL) return(NULL);
if (sax != NULL) ctxt->sax = sax;
xmlParseDocument(ctxt);
@ -4611,13 +4667,7 @@ retry_bigger:
xmlFreeDoc(ctxt->doc);
ctxt->doc = NULL;
}
free(buffer);
free(ctxt->nodeTab);
free(ctxt->inputTab);
if (inputStream->filename != NULL)
free((char *)inputStream->filename);
free(inputStream);
free(ctxt);
xmlFreeParserCtxt(ctxt);
return(ret);
}
@ -4652,25 +4702,16 @@ xmlDocPtr xmlRecoverFile(const char *filename) {
}
/**
* xmlSAXParseMemory :
* @sax: the SAX handler block
* xmlCreateMemoryParserCtxt :
* @buffer: an pointer to a char array
* @size: the siwe of the array
* @recovery: work in recovery mode, i.e. tries to read no Well Formed
* documents
*
* parse an XML in-memory block and use the given SAX function block
* to handle the parsing callback. If sax is NULL, fallback to the default
* DOM tree building routines.
*
* TODO : plug some encoding conversion routines here. !!!
* Create a parser context for an XML in-memory document.
*
* Returns the resulting document tree
* Returns the new parser context or NULL
*/
xmlDocPtr
xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size,
int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr
xmlCreateMemoryParserCtxt(char *buffer, int size) {
xmlParserCtxtPtr ctxt;
xmlParserInputPtr input;
@ -4682,7 +4723,6 @@ xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size,
return(NULL);
}
xmlInitParserCtxt(ctxt);
if (sax != NULL) ctxt->sax = sax;
input = (xmlParserInputPtr) malloc(sizeof(xmlParserInput));
if (input == NULL) {
perror("malloc");
@ -4701,8 +4741,36 @@ xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size,
*/
input->base = buffer;
input->cur = buffer;
input->free = NULL;
inputPush(ctxt, input);
return(ctxt);
}
/**
* xmlSAXParseMemory :
* @sax: the SAX handler block
* @buffer: an pointer to a char array
* @size: the siwe of the array
* @recovery: work in recovery mode, i.e. tries to read no Well Formed
* documents
*
* parse an XML in-memory block and use the given SAX function block
* to handle the parsing callback. If sax is NULL, fallback to the default
* DOM tree building routines.
*
* TODO : plug some encoding conversion routines here. !!!
*
* Returns the resulting document tree
*/
xmlDocPtr
xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size, int recovery) {
xmlDocPtr ret;
xmlParserCtxtPtr ctxt;
ctxt = xmlCreateMemoryParserCtxt(buffer, size);
if (ctxt == NULL) return(NULL);
if (sax != NULL) ctxt->sax = sax;
xmlParseDocument(ctxt);
@ -4712,12 +4780,7 @@ xmlSAXParseMemory(xmlSAXHandlerPtr sax, char *buffer, int size,
xmlFreeDoc(ctxt->doc);
ctxt->doc = NULL;
}
free(ctxt->nodeTab);
free(ctxt->inputTab);
if (input->filename != NULL)
free((char *)input->filename);
free(input);
free(ctxt);
xmlFreeParserCtxt(ctxt);
return(ret);
}
@ -4761,23 +4824,47 @@ xmlDocPtr xmlRecoverMemory(char *buffer, int size) {
void
xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
{
/* Allocate the Input stack */
ctxt->inputTab = (xmlParserInputPtr *) malloc(5 * sizeof(xmlParserInputPtr));
ctxt->inputNr = 0;
ctxt->inputMax = 5;
ctxt->input = NULL;
/* Allocate the Input stack */
ctxt->inputTab = (xmlParserInputPtr *) malloc(5 * sizeof(xmlParserInputPtr));
ctxt->inputNr = 0;
ctxt->inputMax = 5;
ctxt->input = NULL;
/* Allocate the Node stack */
ctxt->nodeTab = (xmlNodePtr *) malloc(10 * sizeof(xmlNodePtr));
ctxt->nodeNr = 0;
ctxt->nodeMax = 10;
ctxt->node = NULL;
/* Allocate the Node stack */
ctxt->nodeTab = (xmlNodePtr *) malloc(10 * sizeof(xmlNodePtr));
ctxt->nodeNr = 0;
ctxt->nodeMax = 10;
ctxt->node = NULL;
ctxt->sax = &xmlDefaultSAXHandler;
ctxt->doc = NULL;
ctxt->wellFormed = 1;
ctxt->record_info = 0;
xmlInitNodeInfoSeq(&ctxt->node_seq);
ctxt->sax = &xmlDefaultSAXHandler;
ctxt->doc = NULL;
ctxt->wellFormed = 1;
ctxt->record_info = 0;
xmlInitNodeInfoSeq(&ctxt->node_seq);
}
/**
* xmlFreeParserCtxt:
* @ctxt: an XML parser context
*
* Free all the memory used by a parser context. However the parsed
* document in ctxt->doc is not freed.
*/
void
xmlFreeParserCtxt(xmlParserCtxtPtr ctxt)
{
xmlParserInputPtr input;
if (ctxt == NULL) return;
while ((input = inputPop(ctxt)) != NULL) {
xmlFreeInputStream(input);
}
if (ctxt->nodeTab != NULL) free(ctxt->nodeTab);
if (ctxt->inputTab != NULL) free(ctxt->inputTab);
free(ctxt);
}
/**

View File

@ -20,12 +20,14 @@ extern "C" {
*/
#define XML_DEFAULT_VERSION "1.0"
typedef void (* xmlParserInputDeallocate)(CHAR *);
typedef struct xmlParserInput {
const char *filename; /* The file analyzed, if any */
const CHAR *base; /* Base of the array to parse */
const CHAR *cur; /* Current char being parsed */
int line; /* Current line */
int col; /* Current column */
xmlParserInputDeallocate free; /* function to deallocate the base */
} xmlParserInput;
typedef xmlParserInput *xmlParserInputPtr;

View File

@ -15,6 +15,18 @@
extern "C" {
#endif
/*
* Parser context
*/
xmlParserCtxtPtr
xmlCreateDocParserCtxt(CHAR *cur);
xmlParserCtxtPtr
xmlCreateFileParserCtxt(const char *filename);
xmlParserCtxtPtr
xmlCreateMemoryParserCtxt(char *buffer, int size);
void
xmlFreeParserCtxt(xmlParserCtxtPtr ctxt);
/*
* Entities
*/