Support for RELAX NG used to be enabled together with XML Schema support
(--with-schemas). Now there's a separate option and a new feature macro
LIBXML_RELAXNG_ENABLED.
Since there is xmlTextReaderSchemaValidateCtxt() it seems like there
should be an equivalent RelaxNG function. The attached patch adds it.
The code is essentially the same as Schema implementation, but I'm
uncertain as to how to add things to the documentation and test suite:
there seems to be a lot of auto-generation going on.
* xmlschemas.c runtest.c testapi.c include/libxml/xmlreader.h
python/types.c python/libxml_wrap.h python/libxml.c: fx compilation
when configured without the reader should fix#513110
* doc/*: regenerated
Daniel
svn path=/trunk/; revision=3743
* include/libxml/xmlschemas.h xmlschemas.c: added new function
xmlSchemaValidCtxtGetParserCtxt based on Holger Kaelberer patch
* doc/apibuild.py doc/*: regenerated the doc, chased why the new
function didn't got any documentation, added more checking in the
generator
* include/libxml/relaxng.h include/libxml/schematron.h
include/libxml/xmlschemas.h include/libxml/c14n.h
include/libxml/xmlregexp.h include/libxml/globals.h
include/libxml/xmlreader.h threads.c xmlschemas.c: various changes
and cleanups following the new reports
Daniel
svn path=/trunk/; revision=3738
* doc/xmllint.1 doc/xmllint.html doc/xmllint.xml: fixed a typo
pointed by Jeroen Ruigrok
* include/libxml/xmlreader.h include/libxml/xmlschemas.h: increased
the APIs for xmlReader schemas validation support
* xmllint.c xmlreader.c xmlschemas.c: xmlReader schemas validation
implementation and testing as xmllint --stream --schema ...
Daniel
* xmlreader.c include/libxml/xmlreader.h: applied patch from
Aron Stansvik to add xmlTextReaderByteConsumed()
* testReader.c: added a test option
* xmlschemastypes.c: fix a lack of pointer checking in APIs
Daniel
Synchronized the header files with the library code in order
to assure that all the various conditionals (LIBXML_xxxx_ENABLED)
were the same in both. Modified the API database content to more
accurately reflect the conditionals. Enhanced the generation
of that database. Although there was no substantial change to
any of the library code's logic, a large number of files were
modified to achieve the above, and the configuration script
was enhanced to do some automatic enabling of features (e.g.
--with-xinclude forces --with-xpath). Additionally, all the format
errors discovered by apibuild.py were corrected.
* configure.in: enhanced cross-checking of options
* doc/apibuild.py, doc/elfgcchack.xsl, doc/libxml2-refs.xml,
doc/libxml2-api.xml, gentest.py: changed the usage of the
<cond> element in module descriptions
* elfgcchack.h, testapi.c: regenerated with proper conditionals
* HTMLparser.c, SAX.c, globals.c, tree.c, xmlschemas.c, xpath.c,
testSAX.c: cleaned up conditionals
* include/libxml/[SAX.h, SAX2.h, debugXML.h, encoding.h, entities.h,
hash.h, parser.h, parserInternals.h, schemasInternals.h, tree.h,
valid.h, xlink.h, xmlIO.h, xmlautomata.h, xmlreader.h, xpath.h]:
synchronized the conditionals with the corresponding module code
* doc/examples/tree2.c, doc/examples/xpath1.c, doc/examples/xpath2.c:
added additional conditions required for compilation
* doc/*.html, doc/html/*.html: rebuilt the docs
* elfgcchack.h doc/elfgcchack.xsl libxml.h: hack based on Arjan van de
Ven suggestion to reduce ELF footprint and generated code. Based on
aliasing of libraries function to generate direct call instead of
indirect ones
* doc/libxml2-api.xml doc/Makefile.am doc/apibuild.py: added automatic
generation of elfgcchack.h based on the API description, extended
the API description to show the conditionals configuration flags
required for symbols.
* nanohttp.c parser.c xmlsave.c include/libxml/*.h: lot of cleanup
* doc/*: regenerated the docs.
Daniel
* error.c: Johnson Cameron pointed out that
initGenericErrorDefaultFunc() was really wrong.
* xmlreader.c include/libxml/xmlreader.h: xmlTextReaderMode enum
must be made public, added some missing comments on the XMLReader
header.
* c14n.c: Alexsey fixed C14N bug with processing namespaces
from attributes
Daniel
* pattern.c xmlreader.c xmllint.c include/libxml/pattern.h
include/libxml/xmlreader.h: fixed the pattern interfaces
but not yet the parser to handle the namespaces.
* doc/examples/reader3.c doc/*: fixed the example, rebuilt the docs.
Daniel
* globals.c xmlwriter.c doc/apibuild.py include/libxml/globals.h
include/libxml/pattern.h include/libxml/schemasInternals.h
include/libxml/xmlexports.h include/libxml/xmlwriter.h: cleanup
the make rebuild in doc, this include new directive to stop
documentation warnings
* doc/* doc/html/*: rebuilt the docs
* pattern.c xmlreader.c include/libxml/pattern.h
include/libxml/xmlreader.h: adding xmlTextReaderPreservePattern()
to save nodes while scanning the tree with the reader, cleanup
the way element were freed, and xmlTextReaderPreserve()
implementation, the API might change for namespace binding support
when compiling patterns.
* doc/examples/*: added reader3.c exposing the xmlTextReaderPreserve()
Daniel
* include/libxml/*.h include/libxml/*.h.in: modified the file
header to add more informations, painful...
* genChRanges.py genUnicode.py: updated to generate said changes
in headers
* doc/apibuild.py: extract headers, add them to libxml2-api.xml
* *.html *.xsl *.xml: updated the stylesheets to flag geprecated
APIs modules. Updated the stylesheets, some cleanups, regenerated
* doc/html/*.html: regenerated added back book1 and libxml-lib.html
Daniel
* Makefile.am configure.in xmldwalk.c xmlreader.c
include/libxml/Makefile.am include/libxml/xmldwalk.h
include/libxml/xmlversion.h.in: removing xmldwalk module
since it got merged with the xmlreader.
* parser.c: cleanup
* win32/libxml2.def.src python/libxml2class.txt doc/libxml2-api.xml:
rebuilt the API
* python/tests/Makefile.am python/tests/reader7.py
python/tests/walker.py: adding regression testing for the
new xmlreader APIs, new APIs for reader creation, including
makeing reader "walker" operating on preparsed document trees.
Daniel
* xmlreader.c include/libxml/xmlreader.h: added new APIs
for creating reader from sources or reusing a reader with
a new source, like the xmlReadxx and xmlCtxtReadxxx
* win32/libxml2.def.src doc/libxml2-api.xml doc/apibuild.py
doc/Makefile.am: regenerated the APIs
* doc/xml.html: applied a patch from Stefan Kost for namesapce docs
Daniel
* parser.c: fix a bug raised by the Mips compiler.
* include/libxml/SAX.h include/libxml/parser.h: move the
SAXv1 block definitions to parser.h fixes bug #123380
* xmlreader.c include/libxml/xmlreader.h: reinstanciate
the attribute and element pool borken 2 commits ago.
Start playing with an entry point to preserve a subtree.
* entities.c: remove a warning.
Daniel
* tree.c include/libxml/tree.h: the uri arg to xmlNodeSetBase is
really a const xmlChar*
* xmlreader.c include/libxml/xmlreader.h: addin the
xmlTextReaderConstString() to get an interned string from
the reader
Daniel
* configure.in: preparing a 2.6.0-beta2 release
* xmlIO.c: avoid a warning
* tree.c: avoid duplicate code in xmlReplaceNode as pointed out
by Chris Ryland
* include/libxml/dict.h: add a QName access lookup to the
dictionary.
* xmlreader.c include/libxml/xmlreader.h: adding const access
based on the dictionary interface for string read from the
reader, the node content access is still TODO, it's too different
Daniel
* include/libxml/xmlreader.h doc/libxml2-api.xml: changing an enum
definition to get a correct API XML description. This was apparently
breaking Windows build.
Daniel
* xmlreader.c include/libxml/xmlreader.h: applying cleanup
patch from Bjorn Reese for xmlTextReaderNodeType() and
significant whitespace. There is an enum for node type
values now.
Daniel
* relaxng.c xmlreader.c xmllint.c include/libxml/relaxng.h
include/libxml/xmlreader.h: implemented streaming of
RelaxNG (when possible) on top of the xmlReader interface,
provided it as xmllint --stream --relaxng .rng .xml
This seems to mostly work.
* Makefile.am: updated to test RelaxNG streaming
Daniel
* xmlreader.c include/libxml/xmlreader.h: Added the Expand()
and Next() operation to work on subtrees within the reader
framework.
* doc/libxml2-api.xml python/libxml2class.txt: resulting updates
* python/tests/reader5.py: added an example for those new
functions of the reader.
Daniel
* xmlreader.c python/drv_libxml2.py python/generator.py
python/libxml.c python/libxml.py python/libxml_wrap.h
python/types.c: patch from Stéphane Bidoul for better per
context error message APIs
* python/tests/ctxterror.py python/tests/readererr.py:
update of the tests
Daniel
* xmlreader.c include/libxml/xmlreader.h python/generator.py
python/libxml.c python/libxml.py win32/libxml2.def.src: applied
a patch from Stéphane Bidoul to allow per XMLtextReader error
and warning handling
* python/tests/Makefile.am python/tests/readererr.py: adding the
specific regression test
Daniel
* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml:
extended the XmlTextReader API a bit, addding accessors for
the current doc and node, and an entity substitution mode for
the parser.
* python/libxml.py python/libxml2class.txt: related updates
* python/tests/Makefile.am python/tests/reader.py
python/tests/reader2.py python/tests/reader3.py: updated a bit
the old tests and added a new one to test the entities handling
Daniel
* testReader.c xmlreader.c valid.c include/libxml/tree.h
include/libxml/valid.h include/libxml/xmlreader.h: working on
DTD validation on top of xml reader interfaces. Allows to
validate arbitrary large instances. This required some extensions
to the valid module interface and augmenting the size of xmlID
and xmlRef structs a bit.
* uri.c xmlregexp.c: simple cleanup.
Daniel
* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: more
work on the xml reader interfaces.
* AUTHORS MAINTAINERS doc/* win32/*: updated Igor's mail and the
Web page for the Windows binaries.
Daniel
* parser.c: Vyacheslav Pindyura managed to trigger a bug in
parseStartTag, fixing it.
* test/att4 result/att4 result/noent/att4: adding the test
* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: added
more methods to XmlTextReader.
Daniel
* xmlreader.c include/libxml/xmlreader.h doc/libxml2-api.xml: added
more methods of XmlTextReader.
* python/libxml2class.txt python/tests/reader.py: this increased the
methods in the bndings, augmented the test to check those new
functions.
Daniel
* xmlreader.c doc/libxml2-api.xml: added the close and getattribute
methods of XmlTextReader.
* python/generator.py python/libxml_wrap.h python/types.c
python/libxml2class.txt: added the reader to the Python bindings
* python/tests/Makefile.am python/tests/reader.py: added a specific
test for the Python bindings of the Reader APIs
* parser.c: small cleanup.
Daniel
* Makefile.am xmlreader.c include/libxml/Makefile.am
include/libxml/xmlreader.h: Adding a new set of APIs based on
the C# TextXmlReader API but converted to C. Allow to parse
in constant memory usage, far simpler to program and explain
than the SAX like APIs, unfinished but working.
* testReader.c: test program
Daniel