applied patch from Graham Bennett adding 4 convenience functions to the

* include/libxml/xmlreader.h xmlreader.c: applied patch from
  Graham Bennett adding 4 convenience functions to the reader API.
Daniel
This commit is contained in:
Daniel Veillard 2004-10-19 09:04:23 +00:00
parent 9638d4c20f
commit e2811270e8
5 changed files with 213 additions and 274 deletions

View File

@ -1,3 +1,8 @@
Tue Oct 19 11:06:39 CEST 2004 Daniel Veillard <daniel@veillard.com>
* include/libxml/xmlreader.h xmlreader.c: applied patch from
Graham Bennett adding 4 convenience functions to the reader API.
Fri Oct 15 11:22:48 PDT 2004 William Brack <wbrack@mmm.com.hk> Fri Oct 15 11:22:48 PDT 2004 William Brack <wbrack@mmm.com.hk>
* debugXML.c: excluded a few nodes (with no content) from the * debugXML.c: excluded a few nodes (with no content) from the

View File

@ -217,7 +217,8 @@ pnode=pxmlDoc-&gt;children-&gt;children;</pre>
<p>Website: <a <p>Website: <a
href="http://pmade.org/pjones/software/xmlwrapp/">http://pmade.org/pjones/software/xmlwrapp/</a></p> href="http://pmade.org/pjones/software/xmlwrapp/">http://pmade.org/pjones/software/xmlwrapp/</a></p>
</li> </li>
--></ul></li> -->
</ul></li>
<li>How to validate a document a posteriori ? <li>How to validate a document a posteriori ?
<p>It is possible to validate documents which had not been validated at <p>It is possible to validate documents which had not been validated at
initial parsing time or documents which have been built from scratch initial parsing time or documents which have been built from scratch

View File

@ -12,8 +12,7 @@ H2 {font-family: Verdana,Arial,Helvetica}
H3 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica}
A:link, A:visited, A:active { text-decoration: underline } A:link, A:visited, A:active { text-decoration: underline }
</style> </style>
<title>The XML C parser and toolkit of Gnome <title>The XML C parser and toolkit of Gnome</title>
</title>
</head> </head>
<body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
<table border="0" width="100%" cellpadding="5" cellspacing="0" align="center"> <table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
@ -46,10 +45,8 @@ A:link, A:visited, A:active { text-decoration: underline }
<table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd"> <table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd">
<tr> <tr>
<td align="center"> <td align="center">
<h1>The XML C parser and toolkit of Gnome <h1>The XML C parser and toolkit of Gnome</h1>
</h1> <h2>libxml</h2>
<h2>libxml
</h2>
</td> </td>
</tr> </tr>
</table> </table>
@ -72,8 +69,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<tr> <tr>
<td colspan="1" bgcolor="#eecfa1" align="center"> <td colspan="1" bgcolor="#eecfa1" align="center">
<center> <center>
<b>Main Menu <b>Main Menu</b>
</b>
</center> </center>
</td> </td>
</tr> </tr>
@ -85,80 +81,61 @@ A:link, A:visited, A:active { text-decoration: underline }
</form> </form>
<ul> <ul>
<li> <li>
<a href="index.html">Home <a href="index.html">Home</a>
</a>
</li> </li>
<li> <li>
<a href="intro.html">Introduction <a href="intro.html">Introduction</a>
</a>
</li> </li>
<li> <li>
<a href="FAQ.html">FAQ <a href="FAQ.html">FAQ</a>
</a>
</li> </li>
<li> <li>
<a href="docs.html" style="font-weight:bold">Developer Menu <a href="docs.html" style="font-weight:bold">Developer Menu</a>
</a>
</li> </li>
<li> <li>
<a href="bugs.html">Reporting bugs and getting help <a href="bugs.html">Reporting bugs and getting help</a>
</a>
</li> </li>
<li> <li>
<a href="help.html">How to help <a href="help.html">How to help</a>
</a>
</li> </li>
<li> <li>
<a href="downloads.html">Downloads <a href="downloads.html">Downloads</a>
</a>
</li> </li>
<li> <li>
<a href="news.html">Releases <a href="news.html">Releases</a>
</a>
</li> </li>
<li> <li>
<a href="XMLinfo.html">XML <a href="XMLinfo.html">XML</a>
</a>
</li> </li>
<li> <li>
<a href="XSLT.html">XSLT <a href="XSLT.html">XSLT</a>
</a>
</li> </li>
<li> <li>
<a href="xmldtd.html">Validation &amp; DTDs <a href="xmldtd.html">Validation &amp; DTDs</a>
</a>
</li> </li>
<li> <li>
<a href="encoding.html">Encodings support <a href="encoding.html">Encodings support</a>
</a>
</li> </li>
<li> <li>
<a href="catalog.html">Catalog support <a href="catalog.html">Catalog support</a>
</a>
</li> </li>
<li> <li>
<a href="namespaces.html">Namespaces <a href="namespaces.html">Namespaces</a>
</a>
</li> </li>
<li> <li>
<a href="contribs.html">Contributions <a href="contribs.html">Contributions</a>
</a>
</li> </li>
<li> <li>
<a href="examples/index.html" style="font-weight:bold">Code Examples <a href="examples/index.html" style="font-weight:bold">Code Examples</a>
</a>
</li> </li>
<li> <li>
<a href="html/index.html" style="font-weight:bold">API Menu <a href="html/index.html" style="font-weight:bold">API Menu</a>
</a>
</li> </li>
<li> <li>
<a href="guidelines.html">XML Guidelines <a href="guidelines.html">XML Guidelines</a>
</a>
</li> </li>
<li> <li>
<a href="ChangeLog.html">Recent Changes <a href="ChangeLog.html">Recent Changes</a>
</a>
</li> </li>
</ul> </ul>
</td> </td>
@ -168,8 +145,7 @@ A:link, A:visited, A:active { text-decoration: underline }
<tr> <tr>
<td colspan="1" bgcolor="#eecfa1" align="center"> <td colspan="1" bgcolor="#eecfa1" align="center">
<center> <center>
<b>Related links <b>Related links</b>
</b>
</center> </center>
</td> </td>
</tr> </tr>
@ -177,44 +153,34 @@ A:link, A:visited, A:active { text-decoration: underline }
<td bgcolor="#fffacd"> <td bgcolor="#fffacd">
<ul> <ul>
<li> <li>
<a href="http://mail.gnome.org/archives/xml/">Mail archive <a href="http://mail.gnome.org/archives/xml/">Mail archive</a>
</a>
</li> </li>
<li> <li>
<a href="http://xmlsoft.org/XSLT/">XSLT libxslt <a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a>
</a>
</li> </li>
<li> <li>
<a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2 <a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a>
</a>
</li> </li>
<li> <li>
<a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec <a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a>
</a>
</li> </li>
<li> <li>
<a href="ftp://xmlsoft.org/">FTP <a href="ftp://xmlsoft.org/">FTP</a>
</a>
</li> </li>
<li> <li>
<a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries <a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a>
</a>
</li> </li>
<li> <li>
<a href="http://garypennington.net/libxml2/">Solaris binaries <a href="http://garypennington.net/libxml2/">Solaris binaries</a>
</a>
</li> </li>
<li> <li>
<a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries <a href="http://www.zveno.com/open_source/libxml2xslt.html">MacOsX binaries</a>
</a>
</li> </li>
<li> <li>
<a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings <a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a>
</a>
</li> </li>
<li> <li>
<a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker <a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a>
</a>
</li> </li>
</ul> </ul>
</td> </td>
@ -236,227 +202,77 @@ A:link, A:visited, A:active { text-decoration: underline }
<td bgcolor="#fffacd"> <td bgcolor="#fffacd">
<p></p> <p></p>
<p style="text-align: right; font-style: italic; font-size: 10pt">"Programming <p style="text-align: right; font-style: italic; font-size: 10pt">"Programming
with libxml2 is like the thrilling embrace of an exotic stranger." with libxml2 is like the thrilling embrace of an exotic stranger." <a href="http://diveintomark.org/archives/2004/02/18/libxml2">Mark
<a href="http://diveintomark.org/archives/2004/02/18/libxml2">Mark Pilgrim</a></p>
Pilgrim
</a>
</p>
<p>Libxml2 is the XML C parser and toolkit developed for the Gnome project <p>Libxml2 is the XML C parser and toolkit developed for the Gnome project
(but usable outside of the Gnome platform), it is free software available (but usable outside of the Gnome platform), it is free software available
under the under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT
<a href="http://www.opensource.org/licenses/mit-license.html">MIT License</a>. XML itself is a metalanguage to design markup languages, i.e.
License
</a>
. XML itself is a metalanguage to design markup languages, i.e.
text language where semantic and structure are added to the content using text language where semantic and structure are added to the content using
extra "markup" information enclosed between angle brackets. HTML is the most extra "markup" information enclosed between angle brackets. HTML is the most
well-known markup language. Though the library is written in C well-known markup language. Though the library is written in C <a href="python.html">a variety of language bindings</a> make it available in
<a href="python.html">a variety of language bindings other environments.</p>
</a>
make it available in
other environments.
</p>
<p>Libxml2 is known to be very portable, the library should build and work <p>Libxml2 is known to be very portable, the library should build and work
without serious troubles on a variety of systems (Linux, Unix, Windows, without serious troubles on a variety of systems (Linux, Unix, Windows,
CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, ...) CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, ...)</p>
</p>
<p>Libxml2 implements a number of existing standards related to markup <p>Libxml2 implements a number of existing standards related to markup
languages: languages:</p>
</p> <ul><li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li>
<ul> <li>the XML standard: <li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li>
<a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml <li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li>
</a> <li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> :
</li> Uniform Resource Identifiers <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a></li>
<li>XML Path Language (XPath) 1.0: <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a></li>
<li>HTML4 parser: <a href="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/</a></li>
<li>Namespaces in XML: <li>XML Pointer Language (XPointer) Version 1.0: <a href="http://www.w3.org/TR/xptr">http://www.w3.org/TR/xptr</a></li>
<a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/ <li>XML Inclusions (XInclude) Version 1.0: <a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/</a></li>
</a> <li>ISO-8859-x encodings, as well as <a href="http://www.cis.ohio-state.edu/rfc/rfc2044.txt">rfc2044</a> [UTF-8]
</li> and <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a>
[UTF-16] Unicode encodings, and more if using iconv support</li>
<li>part of SGML Open Technical Resolution TR9401:1997</li>
<li>XML Base: <li>XML Catalogs Working Draft 06 August 2001: <a href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">http://www.oasis-open.org/committees/entity/spec-2001-08-06.html</a></li>
<a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/ <li>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a>
</a> and the Exclusive XML Canonicalization CR draft <a href="http://www.w3.org/TR/xml-exc-c14n">http://www.w3.org/TR/xml-exc-c14n</a></li>
</li> <li>Relax NG, ISO/IEC 19757-2:2003, <a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">http://www.oasis-open.org/committees/relax-ng/spec-20011203.html</a></li>
<li>W3C XML Schemas Part 2: Datatypes <a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">REC 02 May
2001</a></li>
<li> <a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396 <li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7
</a> April 2004</li>
:
Uniform Resource Identifiers
<a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt
</a>
</li>
<li>XML Path Language (XPath) 1.0:
<a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath
</a>
</li>
<li>HTML4 parser:
<a href="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/
</a>
</li>
<li>XML Pointer Language (XPointer) Version 1.0:
<a href="http://www.w3.org/TR/xptr">http://www.w3.org/TR/xptr
</a>
</li>
<li>XML Inclusions (XInclude) Version 1.0:
<a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/
</a>
</li>
<li>ISO-8859-x encodings, as well as
<a href="http://www.cis.ohio-state.edu/rfc/rfc2044.txt">rfc2044
</a>
[UTF-8]
and
<a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781
</a>
[UTF-16] Unicode encodings, and more if using iconv support
</li>
<li>part of SGML Open Technical Resolution TR9401:1997
</li>
<li>XML Catalogs Working Draft 06 August 2001:
<a href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
</a>
</li>
<li>Canonical XML Version 1.0:
<a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n
</a>
and the Exclusive XML Canonicalization CR draft
<a href="http://www.w3.org/TR/xml-exc-c14n">http://www.w3.org/TR/xml-exc-c14n
</a>
</li>
<li>Relax NG, ISO/IEC 19757-2:2003,
<a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">http://www.oasis-open.org/committees/relax-ng/spec-20011203.html
</a>
</li>
<li>W3C XML Schemas Part 2: Datatypes
<a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">REC 02 May
2001
</a>
</li>
<li>W3C
<a href="http://www.w3.org/TR/xml-id/">xml:id
</a>
Working Draft 7
April 2004
</li>
</ul> </ul>
<p>In most cases libxml2 tries to implement the specifications in a <p>In most cases libxml2 tries to implement the specifications in a
relatively strictly compliant way. As of release 2.4.16, libxml2 passed all relatively strictly compliant way. As of release 2.4.16, libxml2 passed all
1800+ tests from the 1800+ tests from the <a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML Tests
<a href="http://www.oasis-open.org/committees/xml-conformance/">OASIS XML Tests Suite</a>.</p>
Suite
</a>
.
</p>
<p>To some extent libxml2 provides support for the following additional <p>To some extent libxml2 provides support for the following additional
specifications but doesn't claim to implement them completely: specifications but doesn't claim to implement them completely:</p>
</p> <ul><li>Document Object Model (DOM) <a href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/</a>
<ul> <li>Document Object Model (DOM)
<a href="http://www.w3.org/TR/DOM-Level-2-Core/">http://www.w3.org/TR/DOM-Level-2-Core/
</a>
the document model, but it doesn't implement the API itself, gdome2 does the document model, but it doesn't implement the API itself, gdome2 does
this on top of libxml2 this on top of libxml2</li>
</li> <li><a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959</a> :
libxml2 implements a basic FTP client code</li>
<li><a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945</a> :
<li> <a href="http://www.cis.ohio-state.edu/rfc/rfc959.txt">RFC 959 HTTP/1.0, again a basic HTTP client code</li>
</a> <li>SAX: a SAX2 like interface and a minimal SAX1 implementation compatible
: with early expat versions</li>
libxml2 implements a basic FTP client code
</li>
<li> <a href="http://www.cis.ohio-state.edu/rfc/rfc1945.txt">RFC 1945
</a>
:
HTTP/1.0, again a basic HTTP client code
</li>
<li>SAX: a SAX2 like interface and a minimal SAX1 implementation compatible
with early expat versions
</li>
</ul> </ul>
<p>A partial implementation of <p>A partial implementation of <a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part
<a href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML Schemas Part 1: Structure</a> is being worked on but it would be far too early to make any
1: Structure conformance statement about it at the moment.</p>
</a> <p>Separate documents:</p>
is being worked on but it would be far too early to make any <ul><li><a href="http://xmlsoft.org/XSLT/">the libxslt page</a> providing an
conformance statement about it at the moment.
</p>
<p>Separate documents:
</p>
<ul> <li> <a href="http://xmlsoft.org/XSLT/">the libxslt page
</a>
providing an
implementation of XSLT 1.0 and common extensions like EXSLT for implementation of XSLT 1.0 and common extensions like EXSLT for
libxml2 libxml2</li>
</li> <li><a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page</a>
: a standard DOM2 implementation for libxml2</li>
<li><a href="http://www.aleksey.com/xmlsec/">the XMLSec page</a>: an
<li> <a href="http://www.cs.unibo.it/~casarini/gdome2/">the gdome2 page implementation of <a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
</a> Digital Signature</a> for libxml2</li>
<li>also check the related links section below for more related and active
: a standard DOM2 implementation for libxml2 projects.</li>
</li>
<li> <a href="http://www.aleksey.com/xmlsec/">the XMLSec page
</a>
: an
implementation of
<a href="http://www.w3.org/TR/xmldsig-core/">W3C XML
Digital Signature
</a>
for libxml2
</li>
<li>also check the related links section below for more related and active
projects.
</li>
</ul> </ul>
<p>Logo designed by <p>Logo designed by <a href="mailto:liyanage@access.ch">Marc Liyanage</a>.</p>
<a href="mailto:liyanage@access.ch">Marc Liyanage
</a>
.
</p>
<p> <p>
<a href="bugs.html">Daniel Veillard <a href="bugs.html">Daniel Veillard</a>
</a>
</p> </p>
</td> </td>
</tr> </tr>

View File

@ -150,6 +150,8 @@ XMLPUBFUN int XMLCALL
xmlTextReaderQuoteChar (xmlTextReaderPtr reader); xmlTextReaderQuoteChar (xmlTextReaderPtr reader);
XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL
xmlTextReaderReadState (xmlTextReaderPtr reader); xmlTextReaderReadState (xmlTextReaderPtr reader);
XMLPUBFUN int XMLCALL
xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader);
XMLPUBFUN const xmlChar * XMLCALL XMLPUBFUN const xmlChar * XMLCALL
xmlTextReaderConstBaseUri (xmlTextReaderPtr reader); xmlTextReaderConstBaseUri (xmlTextReaderPtr reader);
@ -226,6 +228,8 @@ XMLPUBFUN int XMLCALL
xmlTextReaderMoveToElement (xmlTextReaderPtr reader); xmlTextReaderMoveToElement (xmlTextReaderPtr reader);
XMLPUBFUN int XMLCALL XMLPUBFUN int XMLCALL
xmlTextReaderNormalization (xmlTextReaderPtr reader); xmlTextReaderNormalization (xmlTextReaderPtr reader);
XMLPUBFUN const xmlChar * XMLCALL
xmlTextReaderConstEncoding (xmlTextReaderPtr reader);
/* /*
* Extensions * Extensions
@ -263,6 +267,10 @@ XMLPUBFUN int XMLCALL
xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader, xmlTextReaderRelaxNGSetSchema(xmlTextReaderPtr reader,
xmlRelaxNGPtr schema); xmlRelaxNGPtr schema);
#endif #endif
XMLPUBFUN const xmlChar * XMLCALL
xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader);
XMLPUBFUN int XMLCALL
xmlTextReaderStandalone (xmlTextReaderPtr reader);
/* /*
* New more complete APIs for simpler creation and reuse of readers * New more complete APIs for simpler creation and reuse of readers

View File

@ -2629,6 +2629,34 @@ xmlTextReaderReadAttributeValue(xmlTextReaderPtr reader) {
return(1); return(1);
} }
/**
* xmlTextReaderConstEncoding:
* @reader: the xmlTextReaderPtr used
*
* Determine the encoding of the document being read.
*
* Returns a string containing the encoding of the document or NULL in
* case of error. The string is deallocated with the reader.
*/
const xmlChar *
xmlTextReaderConstEncoding(xmlTextReaderPtr reader) {
xmlDocPtr doc = NULL;
if (reader == NULL)
return(NULL);
if (reader->doc != NULL)
doc = reader->doc;
else if (reader->ctxt != NULL)
doc = reader->ctxt->myDoc;
if (doc == NULL)
return(NULL);
if (doc->encoding == NULL)
return(NULL);
else
return(CONSTSTR(doc->encoding));
}
/************************************************************************ /************************************************************************
* * * *
* Acces API to the current node * * Acces API to the current node *
@ -3799,6 +3827,87 @@ xmlTextReaderRelaxNGValidate(xmlTextReaderPtr reader, const char *rng) {
} }
#endif #endif
/**
* xmlTextReaderIsNamespaceDecl:
* @reader: the xmlTextReaderPtr used
*
* Determine whether the current node is a namespace declaration
* rather than a regular attribute.
*
* Returns 1 if the current node is a namespace declaration, 0 if it
* is a regular attribute or other type of node, or -1 in case of
* error.
*/
int
xmlTextReaderIsNamespaceDecl(xmlTextReaderPtr reader) {
xmlNodePtr node;
if (reader == NULL)
return(-1);
if (reader->node == NULL)
return(-1);
if (reader->curnode != NULL)
node = reader->curnode;
else
node = reader->node;
if (XML_NAMESPACE_DECL == node->type)
return(1);
else
return(0);
}
/**
* xmlTextReaderConstXmlVersion:
* @reader: the xmlTextReaderPtr used
*
* Determine the XML version of the document being read.
*
* Returns a string containing the XML version of the document or NULL
* in case of error. The string is deallocated with the reader.
*/
const xmlChar *
xmlTextReaderConstXmlVersion(xmlTextReaderPtr reader) {
xmlDocPtr doc = NULL;
if (reader == NULL)
return(NULL);
if (reader->doc != NULL)
doc = reader->doc;
else if (reader->ctxt != NULL)
doc = reader->ctxt->myDoc;
if (doc == NULL)
return(NULL);
if (doc->version == NULL)
return(NULL);
else
return(CONSTSTR(doc->version));
}
/**
* xmlTextReaderStandalone:
* @reader: the xmlTextReaderPtr used
*
* Determine the standalone status of the document being read.
*
* Returns 1 if the document was declared to be standalone, 0 if it
* was declared to be not standalone, or -1 if the document did not
* specify its standalone status or in case of error.
*/
int
xmlTextReaderStandalone(xmlTextReaderPtr reader) {
xmlDocPtr doc = NULL;
if (reader == NULL)
return(-1);
if (reader->doc != NULL)
doc = reader->doc;
else if (reader->ctxt != NULL)
doc = reader->ctxt->myDoc;
if (doc == NULL)
return(-1);
return(doc->standalone);
}
/************************************************************************ /************************************************************************
* * * *
* Error Handling Extensions * * Error Handling Extensions *