From 17049f05f9ef09b3dc2a9c5d1de3f21de7c03193 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Tue, 13 Sep 2005 09:58:33 +0000 Subject: Load /tmp/tmp.2Zlqcz/libxml2-2.6.22 into packages/libxml2/branches/upstream/current. --- doc/devhelp/libxml2-HTMLparser.html | 365 ++++++++++++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 doc/devhelp/libxml2-HTMLparser.html (limited to 'doc/devhelp/libxml2-HTMLparser.html') diff --git a/doc/devhelp/libxml2-HTMLparser.html b/doc/devhelp/libxml2-HTMLparser.html new file mode 100644 index 0000000..3a4a67d --- /dev/null +++ b/doc/devhelp/libxml2-HTMLparser.html @@ -0,0 +1,365 @@ + + + + + HTMLparser: interface for an HTML 4.0 non-verifying parser + + + + + + + + + + + + + + + + +

+ HTMLparser +

+

HTMLparser - interface for an HTML 4.0 non-verifying parser

+

this module implements an HTML 4.0 non-verifying parser with API compatible with the XML parser ones. It should be able to parse "real world" HTML, even if severely broken from a specification point of view.

+

Author(s): Daniel Veillard

+
+

Synopsis

+
#define htmlDefaultSubelement(elt);
+#define htmlElementAllowedHereDesc(parent, elt);
+#define htmlRequiredAttrs(elt);
+typedef xmlParserNodeInfo htmlParserNodeInfo;
+typedef xmlParserInput htmlParserInput;
+typedef xmlParserCtxtPtr htmlParserCtxtPtr;
+typedef struct _htmlEntityDesc htmlEntityDesc;
+typedef xmlDocPtr htmlDocPtr;
+typedef xmlSAXHandlerPtr htmlSAXHandlerPtr;
+typedef enum htmlStatus;
+typedef xmlNodePtr htmlNodePtr;
+typedef htmlElemDesc * htmlElemDescPtr;
+typedef struct _htmlElemDesc htmlElemDesc;
+typedef xmlSAXHandler htmlSAXHandler;
+typedef xmlParserInputPtr htmlParserInputPtr;
+typedef enum htmlParserOption;
+typedef htmlEntityDesc * htmlEntityDescPtr;
+typedef xmlParserCtxt htmlParserCtxt;
+int	htmlIsScriptAttribute		(const xmlChar * name);
+int	htmlHandleOmittedElem		(int val);
+htmlDocPtr	htmlReadFd		(int fd, 
const char * URL,
const char * encoding,
int options); +htmlDocPtr htmlReadIO (xmlInputReadCallback ioread,
xmlInputCloseCallback ioclose,
void * ioctx,
const char * URL,
const char * encoding,
int options); +htmlDocPtr htmlParseFile (const char * filename,
const char * encoding); +htmlDocPtr htmlCtxtReadDoc (htmlParserCtxtPtr ctxt,
const xmlChar * cur,
const char * URL,
const char * encoding,
int options); +int htmlAutoCloseTag (htmlDocPtr doc,
const xmlChar * name,
htmlNodePtr elem); +int htmlParseChunk (htmlParserCtxtPtr ctxt,
const char * chunk,
int size,
int terminate); +const htmlElemDesc * htmlTagLookup (const xmlChar * tag); +htmlParserCtxtPtr htmlCreateMemoryParserCtxt (const char * buffer,
int size); +void htmlCtxtReset (htmlParserCtxtPtr ctxt); +int htmlElementAllowedHere (const htmlElemDesc * parent,
const xmlChar * elt); +htmlDocPtr htmlCtxtReadIO (htmlParserCtxtPtr ctxt,
xmlInputReadCallback ioread,
xmlInputCloseCallback ioclose,
void * ioctx,
const char * URL,
const char * encoding,
int options); +htmlParserCtxtPtr htmlCreatePushParserCtxt (htmlSAXHandlerPtr sax,
void * user_data,
const char * chunk,
int size,
const char * filename,
xmlCharEncoding enc); +htmlDocPtr htmlReadMemory (const char * buffer,
int size,
const char * URL,
const char * encoding,
int options); +int htmlIsAutoClosed (htmlDocPtr doc,
htmlNodePtr elem); +int htmlParseCharRef (htmlParserCtxtPtr ctxt); +htmlDocPtr htmlReadDoc (const xmlChar * cur,
const char * URL,
const char * encoding,
int options); +int htmlEncodeEntities (unsigned char * out,
int * outlen,
const unsigned char * in,
int * inlen,
int quoteChar); +htmlStatus htmlNodeStatus (const htmlNodePtr node,
int legacy); +htmlStatus htmlAttrAllowed (const htmlElemDesc * elt,
const xmlChar * attr,
int legacy); +htmlDocPtr htmlSAXParseFile (const char * filename,
const char * encoding,
htmlSAXHandlerPtr sax,
void * userData); +const htmlEntityDesc * htmlParseEntityRef (htmlParserCtxtPtr ctxt,
const xmlChar ** str); +htmlStatus htmlElementStatusHere (const htmlElemDesc * parent,
const htmlElemDesc * elt); +const htmlEntityDesc * htmlEntityValueLookup (unsigned int value); +void htmlParseElement (htmlParserCtxtPtr ctxt); +int UTF8ToHtml (unsigned char * out,
int * outlen,
const unsigned char * in,
int * inlen); +const htmlEntityDesc * htmlEntityLookup (const xmlChar * name); +void htmlFreeParserCtxt (htmlParserCtxtPtr ctxt); +htmlDocPtr htmlCtxtReadMemory (htmlParserCtxtPtr ctxt,
const char * buffer,
int size,
const char * URL,
const char * encoding,
int options); +htmlDocPtr htmlCtxtReadFd (htmlParserCtxtPtr ctxt,
int fd,
const char * URL,
const char * encoding,
int options); +htmlDocPtr htmlReadFile (const char * filename,
const char * encoding,
int options); +htmlDocPtr htmlCtxtReadFile (htmlParserCtxtPtr ctxt,
const char * filename,
const char * encoding,
int options); +int htmlParseDocument (htmlParserCtxtPtr ctxt); +htmlDocPtr htmlSAXParseDoc (xmlChar * cur,
const char * encoding,
htmlSAXHandlerPtr sax,
void * userData); +int htmlCtxtUseOptions (htmlParserCtxtPtr ctxt,
int options); +htmlDocPtr htmlParseDoc (xmlChar * cur,
const char * encoding); +
+
+
+

Description

+
+
+

Details

+
+

Macro htmlDefaultSubelement

#define htmlDefaultSubelement(elt);
+

Returns the default subelement for this element

elt:HTML element
+
+
+

Macro htmlElementAllowedHereDesc

#define htmlElementAllowedHereDesc(parent, elt);
+

Checks whether an HTML element description may be a direct child of the specified element. Returns 1 if allowed; 0 otherwise.

parent:HTML parent element
elt:HTML element
+
+
+

Macro htmlRequiredAttrs

#define htmlRequiredAttrs(elt);
+

Returns the attributes required for the specified element.

elt:HTML element
+
+
+

Typedef htmlDocPtr

xmlDocPtr htmlDocPtr;
+

+

+
+

Structure htmlElemDesc

struct _htmlElemDesc {
+    const char *	name	: The tag name
+    char	startTag	: Whether the start tag can be implied
+    char	endTag	: Whether the end tag can be implied
+    char	saveEndTag	: Whether the end tag should be saved
+    char	empty	: Is this an empty element ?
+    char	depr	: Is this a deprecated element ?
+    char	dtd	: 1: only in Loose DTD, 2: only Frameset one
+    char	isinline	: is this a block 0 or inline 1 element
+    const char *	desc	: the description NRK Jan.2003 * New fields encapsulating HTML structur
+    const char **	subelts	: allowed sub-elements of this element
+    const char *	defaultsubelt	: subelement for suggested auto-repair if necessary or NULL
+    const char **	attrs_opt	: Optional Attributes
+    const char **	attrs_depr	: Additional deprecated attributes
+    const char **	attrs_req	: Required attributes
+} htmlElemDesc;
+

+

+
+

Typedef htmlElemDescPtr

htmlElemDesc * htmlElemDescPtr;
+

+

+
+

Structure htmlEntityDesc

struct _htmlEntityDesc {
+    unsigned int	value	: the UNICODE value for the character
+    const char *	name	: The entity name
+    const char *	desc	: the description
+} htmlEntityDesc;
+

+

+
+

Typedef htmlEntityDescPtr

htmlEntityDesc * htmlEntityDescPtr;
+

+

+
+

Typedef htmlNodePtr

xmlNodePtr htmlNodePtr;
+

+

+
+

Typedef htmlParserCtxt

xmlParserCtxt htmlParserCtxt;
+

+

+
+

Typedef htmlParserCtxtPtr

xmlParserCtxtPtr htmlParserCtxtPtr;
+

+

+
+

Typedef htmlParserInput

xmlParserInput htmlParserInput;
+

+

+
+

Typedef htmlParserInputPtr

xmlParserInputPtr htmlParserInputPtr;
+

+

+
+

Typedef htmlParserNodeInfo

xmlParserNodeInfo htmlParserNodeInfo;
+

+

+
+

Enum htmlParserOption

enum htmlParserOption {
+    HTML_PARSE_RECOVER = 1 /* Relaxed parsing */
+    HTML_PARSE_NOERROR = 32 /* suppress error reports */
+    HTML_PARSE_NOWARNING = 64 /* suppress warning reports */
+    HTML_PARSE_PEDANTIC = 128 /* pedantic error reporting */
+    HTML_PARSE_NOBLANKS = 256 /* remove blank nodes */
+    HTML_PARSE_NONET = 2048 /* Forbid network access */
+    HTML_PARSE_COMPACT = 65536 /*  compact small text nodes */
+};
+

+

+
+

Typedef htmlSAXHandler

xmlSAXHandler htmlSAXHandler;
+

+

+
+

Typedef htmlSAXHandlerPtr

xmlSAXHandlerPtr htmlSAXHandlerPtr;
+

+

+
+

Enum htmlStatus

enum htmlStatus {
+    HTML_NA = 0 /* something we don't check at all */
+    HTML_INVALID = 1
+    HTML_DEPRECATED = 2
+    HTML_VALID = 4
+    HTML_REQUIRED = 12 /*  VALID bit set so ( & HTML_VALID ) is TRUE */
+};
+

+

+
+ +
+

htmlAttrAllowed ()

htmlStatus	htmlAttrAllowed		(const htmlElemDesc * elt, 
const xmlChar * attr,
int legacy)
+

Checks whether an attribute is valid for an element Has full knowledge of Required and Deprecated attributes

+
elt:HTML element
attr:HTML attribute
legacy:whether to allow deprecated attributes
Returns:one of HTML_REQUIRED, HTML_VALID, HTML_DEPRECATED, HTML_INVALID
+
+

htmlAutoCloseTag ()

int	htmlAutoCloseTag		(htmlDocPtr doc, 
const xmlChar * name,
htmlNodePtr elem)
+

The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if the element or one of it's children would autoclose the given tag.

+
doc:the HTML document
name:The tag name
elem:the HTML element
Returns:1 if autoclose, 0 otherwise
+
+

htmlCreateMemoryParserCtxt ()

htmlParserCtxtPtr	htmlCreateMemoryParserCtxt	(const char * buffer, 
int size)
+

Create a parser context for an HTML in-memory document.

+
buffer:a pointer to a char array
size:the size of the array
Returns:the new parser context or NULL
+
+

htmlCreatePushParserCtxt ()

htmlParserCtxtPtr	htmlCreatePushParserCtxt	(htmlSAXHandlerPtr sax, 
void * user_data,
const char * chunk,
int size,
const char * filename,
xmlCharEncoding enc)
+

Create a parser context for using the HTML parser in push mode The value of @filename is used for fetching external entities and error/warning reports.

+
sax:a SAX handler
user_data:The user data returned on SAX callbacks
chunk:a pointer to an array of chars
size:number of chars in the array
filename:an optional file name or URI
enc:an optional encoding
Returns:the new parser context or NULL
+
+

htmlCtxtReadDoc ()

htmlDocPtr	htmlCtxtReadDoc		(htmlParserCtxtPtr ctxt, 
const xmlChar * cur,
const char * URL,
const char * encoding,
int options)
+

parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context

+
ctxt:an HTML parser context
cur:a pointer to a zero terminated string
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlCtxtReadFd ()

htmlDocPtr	htmlCtxtReadFd		(htmlParserCtxtPtr ctxt, 
int fd,
const char * URL,
const char * encoding,
int options)
+

parse an XML from a file descriptor and build a tree. This reuses the existing @ctxt parser context

+
ctxt:an HTML parser context
fd:an open file descriptor
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlCtxtReadFile ()

htmlDocPtr	htmlCtxtReadFile	(htmlParserCtxtPtr ctxt, 
const char * filename,
const char * encoding,
int options)
+

parse an XML file from the filesystem or the network. This reuses the existing @ctxt parser context

+
ctxt:an HTML parser context
filename:a file or URL
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlCtxtReadIO ()

htmlDocPtr	htmlCtxtReadIO		(htmlParserCtxtPtr ctxt, 
xmlInputReadCallback ioread,
xmlInputCloseCallback ioclose,
void * ioctx,
const char * URL,
const char * encoding,
int options)
+

parse an HTML document from I/O functions and source and build a tree. This reuses the existing @ctxt parser context

+
ctxt:an HTML parser context
ioread:an I/O read function
ioclose:an I/O close function
ioctx:an I/O handler
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlCtxtReadMemory ()

htmlDocPtr	htmlCtxtReadMemory	(htmlParserCtxtPtr ctxt, 
const char * buffer,
int size,
const char * URL,
const char * encoding,
int options)
+

parse an XML in-memory document and build a tree. This reuses the existing @ctxt parser context

+
ctxt:an HTML parser context
buffer:a pointer to a char array
size:the size of the array
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlCtxtReset ()

void	htmlCtxtReset			(htmlParserCtxtPtr ctxt)
+

Reset a parser context

+
ctxt:an HTML parser context
+
+

htmlCtxtUseOptions ()

int	htmlCtxtUseOptions		(htmlParserCtxtPtr ctxt, 
int options)
+

Applies the options to the parser context

+
ctxt:an HTML parser context
options:a combination of htmlParserOption(s)
Returns:0 in case of success, the set of unknown or unimplemented options in case of error.
+
+

htmlElementAllowedHere ()

int	htmlElementAllowedHere		(const htmlElemDesc * parent, 
const xmlChar * elt)
+

Checks whether an HTML element may be a direct child of a parent element. Note - doesn't check for deprecated elements

+
parent:HTML parent element
elt:HTML element
Returns:1 if allowed; 0 otherwise.
+
+

htmlElementStatusHere ()

htmlStatus	htmlElementStatusHere	(const htmlElemDesc * parent, 
const htmlElemDesc * elt)
+

Checks whether an HTML element may be a direct child of a parent element. and if so whether it is valid or deprecated.

+
parent:HTML parent element
elt:HTML element
Returns:one of HTML_VALID, HTML_DEPRECATED, HTML_INVALID
+
+ +
+

htmlEntityLookup ()

const htmlEntityDesc *	htmlEntityLookup	(const xmlChar * name)
+

Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.

+
name:the entity name
Returns:the associated htmlEntityDescPtr if found, NULL otherwise.
+
+

htmlEntityValueLookup ()

const htmlEntityDesc *	htmlEntityValueLookup	(unsigned int value)
+

Lookup the given entity in EntitiesTable TODO: the linear scan is really ugly, an hash table is really needed.

+
value:the entity's unicode value
Returns:the associated htmlEntityDescPtr if found, NULL otherwise.
+
+

htmlFreeParserCtxt ()

void	htmlFreeParserCtxt		(htmlParserCtxtPtr ctxt)
+

Free all the memory used by a parser context. However the parsed document in ctxt->myDoc is not freed.

+
ctxt:an HTML parser context
+
+ +
+

htmlIsAutoClosed ()

int	htmlIsAutoClosed		(htmlDocPtr doc, 
htmlNodePtr elem)
+

The HTML DTD allows a tag to implicitly close other tags. The list is kept in htmlStartClose array. This function checks if a tag is autoclosed by one of it's child

+
doc:the HTML document
elem:the HTML element
Returns:1 if autoclosed, 0 otherwise
+
+

htmlIsScriptAttribute ()

int	htmlIsScriptAttribute		(const xmlChar * name)
+

Check if an attribute is of content type Script

+
name:an attribute name
Returns:1 is the attribute is a script 0 otherwise
+
+

htmlNodeStatus ()

htmlStatus	htmlNodeStatus		(const htmlNodePtr node, 
int legacy)
+

Checks whether the tree node is valid. Experimental (the author only uses the HTML enhancements in a SAX parser)

+
node:an htmlNodePtr in a tree
legacy:whether to allow deprecated elements (YES is faster here for Element nodes)
Returns:for Element nodes, a return from htmlElementAllowedHere (if legacy allowed) or htmlElementStatusHere (otherwise). for Attribute nodes, a return from htmlAttrAllowed for other nodes, HTML_NA (no checks performed)
+
+

htmlParseCharRef ()

int	htmlParseCharRef		(htmlParserCtxtPtr ctxt)
+

parse Reference declarations [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';'

+
ctxt:an HTML parser context
Returns:the value parsed (as an int)
+
+

htmlParseChunk ()

int	htmlParseChunk			(htmlParserCtxtPtr ctxt, 
const char * chunk,
int size,
int terminate)
+

Parse a Chunk of memory

+
ctxt:an HTML parser context
chunk:an char array
size:the size in byte of the chunk
terminate:last chunk indicator
Returns:zero if no error, the xmlParserErrors otherwise.
+
+

htmlParseDoc ()

htmlDocPtr	htmlParseDoc		(xmlChar * cur, 
const char * encoding)
+

parse an HTML in-memory document and build a tree.

+
cur:a pointer to an array of xmlChar
encoding:a free form C string describing the HTML document encoding, or NULL
Returns:the resulting document tree
+
+

htmlParseDocument ()

int	htmlParseDocument		(htmlParserCtxtPtr ctxt)
+

parse an HTML document (and build a tree if using the standard SAX interface).

+
ctxt:an HTML parser context
Returns:0, -1 in case of error. the parser context is augmented as a result of the parsing.
+
+

htmlParseElement ()

void	htmlParseElement		(htmlParserCtxtPtr ctxt)
+

parse an HTML element, this is highly recursive [39] element ::= EmptyElemTag | STag content ETag [41] Attribute ::= Name Eq AttValue

+
ctxt:an HTML parser context
+
+

htmlParseEntityRef ()

const htmlEntityDesc *	htmlParseEntityRef	(htmlParserCtxtPtr ctxt, 
const xmlChar ** str)
+

parse an HTML ENTITY references [68] EntityRef ::= '&' Name ';'

+
ctxt:an HTML parser context
str:location to store the entity name
Returns:the associated htmlEntityDescPtr if found, or NULL otherwise, if non-NULL *str will have to be freed by the caller.
+
+

htmlParseFile ()

htmlDocPtr	htmlParseFile		(const char * filename, 
const char * encoding)
+

parse an HTML file and build a tree. Automatic support for ZLIB/Compress compressed document is provided by default if found at compile-time.

+
filename:the filename
encoding:a free form C string describing the HTML document encoding, or NULL
Returns:the resulting document tree
+
+

htmlReadDoc ()

htmlDocPtr	htmlReadDoc		(const xmlChar * cur, 
const char * URL,
const char * encoding,
int options)
+

parse an XML in-memory document and build a tree.

+
cur:a pointer to a zero terminated string
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlReadFd ()

htmlDocPtr	htmlReadFd		(int fd, 
const char * URL,
const char * encoding,
int options)
+

parse an XML from a file descriptor and build a tree.

+
fd:an open file descriptor
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlReadFile ()

htmlDocPtr	htmlReadFile		(const char * filename, 
const char * encoding,
int options)
+

parse an XML file from the filesystem or the network.

+
filename:a file or URL
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlReadIO ()

htmlDocPtr	htmlReadIO		(xmlInputReadCallback ioread, 
xmlInputCloseCallback ioclose,
void * ioctx,
const char * URL,
const char * encoding,
int options)
+

parse an HTML document from I/O functions and source and build a tree.

+
ioread:an I/O read function
ioclose:an I/O close function
ioctx:an I/O handler
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlReadMemory ()

htmlDocPtr	htmlReadMemory		(const char * buffer, 
int size,
const char * URL,
const char * encoding,
int options)
+

parse an XML in-memory document and build a tree.

+
buffer:a pointer to a char array
size:the size of the array
URL:the base URL to use for the document
encoding:the document encoding, or NULL
options:a combination of htmlParserOption(s)
Returns:the resulting document tree
+
+

htmlSAXParseDoc ()

htmlDocPtr	htmlSAXParseDoc		(xmlChar * cur, 
const char * encoding,
htmlSAXHandlerPtr sax,
void * userData)
+

Parse an HTML in-memory document. If sax is not NULL, use the SAX callbacks to handle parse events. If sax is NULL, fallback to the default DOM behavior and return a tree.

+
cur:a pointer to an array of xmlChar
encoding:a free form C string describing the HTML document encoding, or NULL
sax:the SAX handler block
userData:if using SAX, this pointer will be provided on callbacks.
Returns:the resulting document tree unless SAX is NULL or the document is not well formed.
+
+

htmlSAXParseFile ()

htmlDocPtr	htmlSAXParseFile	(const char * filename, 
const char * encoding,
htmlSAXHandlerPtr sax,
void * userData)
+

parse an HTML 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.

+
filename:the filename
encoding:a free form C string describing the HTML document encoding, or NULL
sax:the SAX handler block
userData:if using SAX, this pointer will be provided on callbacks.
Returns:the resulting document tree unless SAX is NULL or the document is not well formed.
+
+

htmlTagLookup ()

const htmlElemDesc *	htmlTagLookup	(const xmlChar * tag)
+

Lookup the HTML tag in the ElementTable

+
tag:The tag name in lowercase
Returns:the related htmlElemDescPtr or NULL if not found.
+
+
+
+ + -- cgit v1.2.3 From 968041a8b2ec86c39b5074024ce97d136ecd9a95 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Thu, 26 Oct 2006 11:17:37 +0200 Subject: Load /tmp/libxml2-2.6.27 into libxml2/branches/upstream/current. --- ChangeLog | 442 +++ HTMLparser.c | 245 +- HTMLtree.c | 10 +- Makefile.in | 3 + NEWS | 68 + SAX2.c | 15 +- aclocal.m4 | 15 +- configure | 185 +- configure.in | 8 +- doc/APIchunk0.html | 4 +- doc/APIchunk1.html | 4 +- doc/APIchunk10.html | 9 +- doc/APIchunk11.html | 3 +- doc/APIchunk12.html | 32 +- doc/APIchunk13.html | 3 +- doc/APIchunk14.html | 10 +- doc/APIchunk15.html | 6 + doc/APIchunk16.html | 1 + doc/APIchunk17.html | 11 +- doc/APIchunk18.html | 6 +- doc/APIchunk19.html | 2 +- doc/APIchunk2.html | 1 + doc/APIchunk20.html | 13 +- doc/APIchunk21.html | 4 +- doc/APIchunk22.html | 2 + doc/APIchunk23.html | 5 +- doc/APIchunk24.html | 6 +- doc/APIchunk25.html | 8 +- doc/APIchunk26.html | 2 +- doc/APIchunk27.html | 5 +- doc/APIchunk28.html | 10 +- doc/APIchunk3.html | 3 +- doc/APIchunk4.html | 32 +- doc/APIchunk5.html | 1 - doc/APIchunk7.html | 1 - doc/APIchunk8.html | 1 + doc/APIchunk9.html | 10 +- doc/APIconstructors.html | 3 + doc/APIfiles.html | 7 + doc/APIfunctions.html | 10 +- doc/APIsymbols.html | 7 + doc/DOM.html | 16 +- doc/FAQ.html | 333 +-- doc/Makefile.in | 3 + doc/XMLinfo.html | 33 +- doc/XSLT.html | 9 +- doc/apibuild.py | 1 + doc/architecture.html | 7 +- doc/bugs.html | 118 +- doc/catalog.html | 324 +-- doc/contribs.html | 53 +- doc/devhelp/Makefile.in | 3 + doc/devhelp/libxml2-HTMLparser.html | 5 + doc/devhelp/libxml2-parser.html | 5 +- doc/devhelp/libxml2-tree.html | 22 +- doc/devhelp/libxml2-uri.html | 5 + doc/devhelp/libxml2-xinclude.html | 5 + doc/devhelp/libxml2-xmlsave.html | 2 +- doc/devhelp/libxml2-xmlversion.html | 9 +- doc/devhelp/libxml2-xpath.html | 11 +- doc/devhelp/libxml2.devhelp | 7 + doc/docs.html | 35 +- doc/downloads.html | 42 +- doc/encoding.html | 312 +-- doc/entities.html | 74 +- doc/example.html | 70 +- doc/examples/Makefile.am | 1 + doc/examples/Makefile.in | 4 + doc/help.html | 26 +- doc/html/index.html | 13 - doc/html/libxml-HTMLparser.html | 5 +- doc/html/libxml-parser.html | 5 +- doc/html/libxml-tree.html | 25 +- doc/html/libxml-uri.html | 5 +- doc/html/libxml-xinclude.html | 5 +- doc/html/libxml-xmlsave.html | 2 +- doc/html/libxml-xmlversion.html | 7 +- doc/html/libxml-xpath.html | 7 +- doc/index.html | 109 +- doc/interface.html | 35 +- doc/intro.html | 40 +- doc/library.html | 137 +- doc/libxml2-api.xml | 90 +- doc/libxml2.xsa | 17 +- doc/namespaces.html | 70 +- doc/news.html | 1730 ++++++------ doc/python.html | 247 +- doc/threads.html | 23 +- doc/tree.html | 32 +- doc/upgrade.html | 188 +- doc/xml.html | 5046 ++++++++++++++++++----------------- doc/xmlcatalog.1 | 62 +- doc/xmlcatalog_man.xml | 79 +- doc/xmldtd.html | 154 +- doc/xmlio.html | 123 +- doc/xmllint.1 | 89 +- doc/xmllint.xml | 116 +- doc/xmlmem.html | 166 +- encoding.c | 6 + entities.c | 11 +- example/Makefile.in | 3 + include/Makefile.in | 3 + include/libxml/HTMLparser.h | 3 + include/libxml/Makefile.in | 3 + include/libxml/entities.h | 1 + include/libxml/parser.h | 5 +- include/libxml/tree.h | 51 +- include/libxml/uri.h | 2 + include/libxml/xinclude.h | 4 + include/libxml/xmlversion.h | 23 +- include/libxml/xmlversion.h.in | 13 +- include/libxml/xpath.h | 6 +- libxml-2.0.pc.in | 3 +- libxml2.spec | 6 +- ltmain.sh | 162 +- parser.c | 197 +- parserInternals.c | 1 + python/Makefile.am | 2 +- python/Makefile.in | 5 +- python/generator.py | 2 +- python/libxml.c | 36 + python/libxml.py | 30 +- python/libxml2-py.c | 38 +- python/setup.py | 2 +- python/tests/Makefile.am | 3 +- python/tests/Makefile.in | 6 +- python/tests/compareNodes.py | 50 + python/types.c | 112 + relaxng.c | 2 + runtest.c | 21 +- testapi.c | 170 +- threads.c | 4 +- tree.c | 668 +++-- uri.c | 58 +- valid.c | 22 +- xinclude.c | 30 +- xmlIO.c | 494 ++-- xmllint.c | 121 +- xmlmemory.c | 6 +- xmlregexp.c | 7 +- xmlsave.c | 112 +- xmlschemas.c | 313 ++- xmlschemastypes.c | 14 +- xmlwriter.c | 11 +- xpath.c | 2298 +++++++++------- xstc/Makefile.am | 22 +- xstc/Makefile.in | 25 +- 147 files changed, 9627 insertions(+), 6935 deletions(-) delete mode 100644 doc/html/index.html create mode 100755 python/tests/compareNodes.py (limited to 'doc/devhelp/libxml2-HTMLparser.html') diff --git a/ChangeLog b/ChangeLog index f6b31ef..11098d8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,445 @@ +Fri Oct 20 14:55:47 CEST 2006 Daniel Veillard + + * tree.c: fix comment for xmlDocSetRootElement c.f. #351981 + * xmllint.c: order XPath elements when using --shell + +Tue Oct 17 23:23:26 CEST 2006 Daniel Veillard + + * xmlregexp.c: applied fix from Christopher Boumenot for bug + #362714 on regexps missing ']' + +Tue Oct 17 22:32:42 CEST 2006 Daniel Veillard + + * parserInternals.c: applied patch from Marius Konitzer to avoid + leaking in xmlNewInputFromFile() in case of HTTP redirection + +Tue Oct 17 22:19:02 CEST 2006 Daniel Veillard + + * HTMLparser.c: fix one problem found in htmlCtxtUseOptions() + and pointed in #340591 + +Tue Oct 17 22:04:31 CEST 2006 Daniel Veillard + + * HTMLparser.c: fixed teh 2 stupid bugs affecting htmlReadDoc() and + htmlReadIO() this should fix #340322 + +Tue Oct 17 21:39:23 CEST 2006 Daniel Veillard + + * xpath.c: applied patch from Olaf Walkowiak which should fix #334104 + +Tue Oct 17 18:12:34 CEST 2006 Daniel Veillard + + * HTMLparser.c: fixing HTML minimized attribute values to be generated + internally if not present, fixes bug #332124 + * result/HTML/doc2.htm.sax result/HTML/doc3.htm.sax + result/HTML/wired.html.sax: this affects the SAX event strem for + a few test cases + +Tue Oct 17 17:56:31 CEST 2006 Daniel Veillard + + * HTMLparser.c: fixing HTML entities in attributes parsing bug #362552 + * result/HTML/entities2.html* test/HTML/entities2.html: added to + the regression suite + +Tue Oct 17 01:21:37 CEST 2006 Daniel Veillard + + * xmllint.c: started to switch xmllint to use xmlSaveDoc to test + #342556 + * xmlsave.c: fixed #342556 easy and a whole set of problems with + encodings, BOM and xmlSaveDoc() + +Mon Oct 16 15:14:53 CEST 2006 Daniel Veillard + + * HTMLparser.c: fix #348252 if the document clains to be in a + different encoding in the meta tag and it's obviously wrong, + don't screw up the end of the content. + +Mon Oct 16 11:32:09 CEST 2006 Daniel Veillard + + * HTMLparser.c: fix a chunking and script bug #347708 + +Mon Oct 16 09:51:05 CEST 2006 Daniel Veillard + + * HTMLparser.c: remove a warning + * encoding.c: check with uppercase for AIX iconv() should fix #352644 + * doc/examples/Makefile.am: partially handle one bug report + +Sun Oct 15 22:31:42 CEST 2006 Daniel Veillard + + * parser.c: fix the patch for unreproductable #343000 but + also fix a line/column keeping error + * result/errors/attr1.xml.err result/errors/attr2.xml.err + result/errors/name.xml.err result/errors/name2.xml.err + result/schemas/anyAttr-processContents-err1_0_0.err + result/schemas/bug312957_1_0.err: affected lines in error output + of the regression tests + +Sat Oct 14 10:46:46 CEST 2006 Daniel Veillard + + * tree.c: fixing bug #344390 with xmlReconciliateNs + +Sat Oct 14 00:31:49 CEST 2006 Daniel Veillard + + * xmllint.c: added --html --memory to test htmlReadMemory to + test #321632 + * HTMLparser.c: added various initialization calls which may help + #321632 but not conclusive + * testapi.c tree.c include/libxml/tree.h: fixed compilation with + --with-minimum --with-sax1 and --with-minimum --with-schemas + fixing #326442 + +Fri Oct 13 18:30:55 CEST 2006 Daniel Veillard + + * relaxng.c: fix a Relax-NG bug related to element content processing, + fixes bug #302836 + * test/relaxng/302836.rng test/relaxng/302836_0.xml + result/relaxng/302836*: added to regression tests + +Fri Oct 13 14:42:44 CEST 2006 Daniel Veillard + + * parser.c: fix a problem in xmlSplitQName resulting in bug #334669 + +Fri Oct 13 12:27:22 CEST 2006 Daniel Veillard + + * parser.c: fixed xmlIOParseDTD handling of @input in error case, + Should fix #335085 + * testapi.c: reset the http_proxy env variable to not waste time + on regression tests + +Thu Oct 12 23:07:43 CEST 2006 Rob Richards + + * xmlIO.c: fix Windows compile - missing xmlWrapOpen. + +Thu Oct 12 18:21:18 CEST 2006 Daniel Veillard + + * parser.c: fixed the heuristic used when trying to detect mixed-content + elememts if the parser wants to treat ignorable whitespaces + in a non-standard way, should fix bug #300263 + +Thu Oct 12 14:52:38 CEST 2006 Daniel Veillard + + * parser.c: fix a first arg error in SAX callback pointed out by + Mike Hommey, and another one still hanging around. Should fix #342737 + +Wed Oct 11 23:11:58 CEST 2006 Daniel Veillard + + * include/libxml/xmlversion.h.in: fix comment on versions + * xmlmemory.c: do not spend too much time digging in dumped memory + +Wed Oct 11 18:40:00 CEST 2006 Daniel Veillard + + * valid.c: fixed a weird error where validity context whould not + show up if warnings were disabled pointed out by Bob Stayton + * xmlIO.c doc/generator.py: cleanup and fix to regenerate the docs + * doc//* testapi.c: rebuilt the docs + +Wed Oct 11 14:32:00 CEST 2006 Daniel Veillard + + * libxml-2.0.pc.in: applied patch from Mikhail Zabaluev to separate + library flags for shared and static builds, fixes #344594. If this + bites you, use xml2-config. + +Wed Oct 11 11:27:37 CEST 2006 Daniel Veillard + + * python/Makefile.am: remove the build path recorded in the python + shared module as Peter Breitenlohner pointed out, should fix #346022 + +Wed Oct 11 11:14:51 CEST 2006 Daniel Veillard + + * xmlIO.c: applied patch from Mikhail Zabaluev fixing the conditions + of unescaping from URL to filepath, should fix #344588. + +Wed Oct 11 10:24:58 CEST 2006 Daniel Veillard + + * configure.in xstc/Makefile.am: applied patch from Peter Breitenlohner + for wget detection and fix of a Python path problem, should fix + #340993 + +Tue Oct 10 22:02:29 CEST 2006 Daniel Veillard + + * include/libxml/entities.h entities.c SAX2.c parser.c: trying to + fix entities behaviour when using SAX, had to extend entities + content and hack on the entities processing code, but that should + fix the long standing bug #159219 + +Tue Oct 10 14:36:18 CEST 2006 Daniel Veillard + + * uri.c include/libxml/uri.h: add a new function xmlPathToUri() + to provide a clean conversion when setting up a base + * SAX2.c tree.c: use said function when setting up doc->URL + or using the xmlSetBase function. Should fix #346261 + +Tue Oct 10 11:05:59 CEST 2006 Daniel Veillard + + * xmlIO.c: applied a portability patch from Emelyanov Alexey + +Tue Oct 10 10:52:01 CEST 2006 Daniel Veillard + + * parser.c: applied and slightly modified a patch from Michael Day to + keep _private in the parser context when parsing external entities + +Tue Oct 10 10:33:43 CEST 2006 Daniel Veillard + + * python/libxml.py python/types.c: applied patch from Ross Reedstrom, + Brian West and Stefan Anca to add XPointer suport to the Python bindings + +Fri Sep 29 11:13:59 CEST 2006 Daniel Veillard + + * xmlsave.c: fixed a comment + * xinclude.c include/libxml/xinclude.h: applied a patch from Michael Day + to add a new function providing the _private field for the generated + parser contexts xmlXIncludeProcessFlagsData() + +Thu Sep 21 10:36:11 CEST 2006 Daniel Veillard + + * xmlIO.c: applied patch from Michael Day doing some refactoring + for the catalog entity loaders. + +Thu Sep 21 08:53:06 CEST 2006 Daniel Veillard + + * HTMLparser.c include/libxml/HTMLparser.h: exports htmlNewParserCtxt() + as Michael Day pointed out this is needed to use htmlCtxtRead*() + +Tue Sep 19 14:42:59 CEST 2006 Daniel Veillard + + * parser.c: applied patch from Ben Darnell on #321545, I could not + reproduce the problem but 1/ this is safe 2/ it's better to be safe. + +Sat Sep 16 16:02:23 CEST 2006 Rob Richards + + * tree.c: xmlTextConcat works with comments and PI nodes (bug #355962). + * parser.c: fix resulting tree corruption when using XML namespace + with existing doc in xmlParseBalancedChunkMemoryRecover. + +Fri Sep 1 11:52:55 CEST 2006 Daniel Veillard + + * xmlIO.c: another patch from Emelyanov Alexey to clean up a few things + in the previous patch. + +Wed Aug 30 15:10:09 CEST 2006 Daniel Veillard + + * xmlIO.c: applied patch from Roland Schwingel to fix the problem + with file names in UTF-8 on Windows, and compat on older win9x + versions. + +Tue Aug 22 16:51:22 CEST 2006 Daniel Veillard + + * valid.c: fixed a bug #203125 in Red hat bugzilla, crashing PHP4 + on validation errors, the heuristic to guess is a vctxt user + pointer is the parsing context was insufficient. + +Mon Aug 21 10:40:10 CEST 2006 Daniel Veillard + + * doc/xmlcatalog.1 doc/xmlcatalog_man.xml doc/xmllint.1 doc/xmllint.xml: + applied patch to man pages from Daniel Leidert and regenerated + +Thu Aug 17 00:48:31 CEST 2006 Rob Richards + + * xmlwriter.c: Add a document to the xmlwriter structure and + pass document when writing attribute content for encoding support. + +Wed Aug 16 01:15:12 CEST 2006 Rob Richards + + * HTMLtree.c xmlsave.c: Add linefeeds to error messages allowing + for consistant handling. + +Tue Aug 15 15:02:18 CEST 2006 Kasimier Buchcik + + * xpath.c: Applied the proposed fix for the documentation + of xmlXPathCastToString(); see bug #346202. + +Tue Aug 15 14:49:18 CEST 2006 Kasimier Buchcik + + * xmlschemas.c: While investigating bug #350247, I noticed + that xmlSchemaIDCMatcher structs are massively recreated + although only a maximum of 3 structs is used at the same + time; added a cache for those structures to the + validation context. + +Sat Aug 12 16:12:53 CEST 2006 Daniel Veillard + + * xmlschemas.c: applied patch from Marton Illes to fix an allocation + bug in xmlSchemaXPathEvaluate should close #351032 + +Mon Aug 7 13:08:46 CEST 2006 Daniel Veillard + + * xmlschemas.c: applied patch from Bertrand Fritsch to fix a bug in + xmlSchemaClearValidCtxt + +Fri Aug 4 14:50:41 CEST 2006 Daniel Veillard + + * python/generator.py: fixed the conversion of long parameters + +Thu Jul 13 15:03:11 CEST 2006 Kasimier Buchcik + + * xmlsave.c: Removed the automatic generation of CDATA sections + for the content of the "script" and "style" elements when + serializing XHTML. The issue was reported by Vincent Lefevre, + bug #345147. + * result/xhtml1 result/noent/xhtml1: Adjusted regression test + results due to the serialization change described above. + +Thu Jul 13 08:32:21 CEST 2006 Daniel Veillard + + * configure.in parser.c xmllint.c include/libxml/parser.h + include/libxml/xmlversion.h.in: applied patch from Andrew W. Nosenko + to expose if zlib support was compiled in, in the header, in the + feature API and in the xmllint --version output. + +Thu Jul 13 08:24:14 CEST 2006 Daniel Veillard + + * SAX2.c: refactor to use normal warnings for entities problem + and not straight SAX callbacks. + +Wed Jul 12 17:13:03 CEST 2006 Kasimier Buchcik + + * xmlschemas.c: Fixed bug #347316, reported by David Belius: + The simple type, which was the content type definition + of a complex type, which in turn was the base type of a + extending complex type, was missed to be set on this + extending complex type in the derivation machinery. + +Mon Jul 3 13:36:43 CEST 2006 Kasimier Buchcik + + * xpath.c: Changed xmlXPathCollectAndTest() to use + xmlXPathNodeSetAddNs() when adding a ns-node in case of + NODE_TEST_TYPE (the ns-node was previously added plainly + to the list). Since for NODE_TEST_ALL and NODE_TEST_NAME + this specialized ns-addition function was already used, + I assume it was missed to be used with NODE_TEST_TYPE. + +Mon Jul 3 10:57:33 CEST 2006 Daniel Veillard + + * HTMLparser.c: applied const'ification of strings patch from + Matthias Clasen + +Thu Jun 29 13:51:12 CEST 2006 Daniel Veillard + + * threads.c: patch from Andrew W. Nosenko, xmlFreeRMutex forgot to + destroy the condition associated to the mutex. + +Thu Jun 29 12:48:00 CEST 2006 Kasimier Buchcik + + * xpath.c: Fixed a double-free in xmlXPathCompOpEvalToBoolean(), + revealed by a Libxslt regression test. + +Thu Jun 29 12:28:07 CEST 2006 Kasimier Buchcik + + * xpath.c: Enhanced xmlXPathCompOpEvalToBoolean() to be also + usable outside predicate evaluation; the intention is to + use it via xmlXPathCompiledEvalToBoolean() for XSLT tests, + like in . + +Wed Jun 28 19:11:16 CEST 2006 Kasimier Buchcik + + * xpath.c: Fix a memory leak which occurred when using + xmlXPathCompiledEvalToBoolean(). + +Mon Jun 26 17:24:28 UTC 2006 William Brack + + * python/libxml.c, python/libxml.py, python/tests/compareNodes.py, + python/tests/Makefile.am: + Added code submitted by Andreas Pakulat to provide node + equality, inequality and hash functions, plus a single + test program to check the functions (bugs 345779 + 345961). + +Mon Jun 26 18:38:51 CEST 2006 Kasimier Buchcik + + * xpath.c: Added xmlXPathCompiledEvalToBoolean() to the API and + adjusted/added xmlXPathRunEval(), xmlXPathRunStreamEval(), + xmlXPathCompOpEvalToBoolean(), xmlXPathNodeCollectAndTest() + to be aware of a boolean result request. The new function + is now used to evaluate predicates. + +Mon Jun 26 16:22:50 CEST 2006 Kasimier Buchcik + + * xpath.c: Fixed an bug in xmlXPathCompExprAdd(): the newly + introduced field @rewriteType on xmlXPathStepOp was not + initialized to zero here; this could lead to the activation + of the axis rewrite code in xmlXPathNodeCollectAndTest() when + @rewriteType is randomly set to the value 1. A test + (hardcoding the intial value to 1) revealed that the + resulting incorrect behaviour is similar to the behaviour + as described by Arnold Hendriks on the mailing list; so I + hope that will fix the issue. + +Fri Jun 23 18:26:08 CEST 2006 Kasimier Buchcik + + * xpath.c: Fixed an error in xmlXPathEvalExpr(), which + was introduced with the addition of the d-o-s rewrite + and made xpath.c unable to compile if XPATH_STREAMING + was not defined (reported by Kupriyanov Anatolij - + #345752). Fixed the check for d-o-s rewrite + to work on the correct XPath string, which is ctxt->base + and not comp->expr in this case. + +Mon Jun 19 12:23:41 CEST 2006 Kasimier Buchcik + + * xpath.c: Added optimization for positional predicates + (only short-hand form "[n]"), which have a preceding + predicate: "/foo[descendant::bar][3]". + +Sun Jun 18 20:59:02 EDT 2006 Daniel Veillard + + * parser.c: try to fix the crash raised by the parser in + recover mode as pointed by Ryan Phillips + +Sun Jun 18 18:44:56 EDT 2006 Daniel Veillard + + * python/types.c: patch from Nic Ferrier to provide a better type + mapping from XPath to python + +Sun Jun 18 18:35:50 EDT 2006 Daniel Veillard + + * runtest.c: applied patch from Boz for VMS and reporting + Schemas errors. + +Sun Jun 18 18:22:25 EDT 2006 Daniel Veillard + + * testapi.c: applied patch from Felipe Contreras when compiling + with --with-minimum + +Fri Jun 16 21:37:44 CEST 2006 Kasimier Buchcik + + * tree.c include/libxml/tree.h: Fixed a bug in + xmlDOMWrapAdoptNode(); the tree traversal stopped if the + very first given node had an attribute node :-( This was due + to a missed check in the traversal mechanism. + Expanded the xmlDOMWrapCtxt: it now holds the namespace map + used in xmlDOMWrapAdoptNode() and xmlDOMWrapCloneNode() for + reusal; so the map-items don't need to be created for every + cloning/adoption. Added a callback function to it for + retrieval of xmlNsPtr to be set on node->ns; this is needed + for my custom handling of ns-references in my DOM wrapper. + Substituted code which created the XML namespace decl on + the doc for a call to xmlTreeEnsureXMLDecl(). Removed + those nastly "warnigns" from the docs of the clone/adopt + functions; they work fine on my side. + +Mon Jun 12 13:23:11 CEST 2006 Kasimier Buchcik + + * result/pattern/namespaces: Adjusted the result of a + regression test, since the fix of xmlGetNodePath() revealed a + bug in this test result. + +Mon Jun 12 13:06:03 CEST 2006 Kasimier Buchcik + + * tree.c: Got rid of a compiler warning in xmlGetNodePath(). + +Mon Jun 12 12:54:25 CEST 2006 Kasimier Buchcik + + * tree.c: Fixed xmlGetNodePath() to generate the node test "*" + for elements in the default namespace, rather than generating + an unprefixed named node test and loosing the namespace + information. + +Fri Jun 9 21:45:02 CEST 2006 Kasimier Buchcik + + * include/libxml/parser.h: Clarified in the docs that the tree + must not be tried to be modified if using the parser flag + XML_PARSE_COMPACT as suggested by Stefan Behnel + (#344390). + Tue Jun 6 17:50:43 CEST 2006 Daniel Veillard * configure.ini NEWS doc//* libxml.spec.in : preparing release of 2.6.26 diff --git a/HTMLparser.c b/HTMLparser.c index 2e646ad..5e23ad7 100644 --- a/HTMLparser.c +++ b/HTMLparser.c @@ -493,11 +493,11 @@ htmlSkipBlankChars(xmlParserCtxtPtr ctxt) { #define EMPTY NULL -static const char* html_flow[] = { FLOW, NULL } ; -static const char* html_inline[] = { INLINE, NULL } ; +static const char* const html_flow[] = { FLOW, NULL } ; +static const char* const html_inline[] = { INLINE, NULL } ; /* placeholders: elts with content but no subelements */ -static const char* html_pcdata[] = { NULL } ; +static const char* const html_pcdata[] = { NULL } ; #define html_cdata html_pcdata @@ -516,103 +516,104 @@ static const char* html_pcdata[] = { NULL } ; #define CELLVALIGN "valign" #define NB_CELLVALIGN 1 -static const char* html_attrs[] = { ATTRS, NULL } ; -static const char* core_i18n_attrs[] = { COREATTRS, I18N, NULL } ; -static const char* core_attrs[] = { COREATTRS, NULL } ; -static const char* i18n_attrs[] = { I18N, NULL } ; +static const char* const html_attrs[] = { ATTRS, NULL } ; +static const char* const core_i18n_attrs[] = { COREATTRS, I18N, NULL } ; +static const char* const core_attrs[] = { COREATTRS, NULL } ; +static const char* const i18n_attrs[] = { I18N, NULL } ; /* Other declarations that should go inline ... */ -static const char* a_attrs[] = { ATTRS, "charset", "type", "name", +static const char* const a_attrs[] = { ATTRS, "charset", "type", "name", "href", "hreflang", "rel", "rev", "accesskey", "shape", "coords", "tabindex", "onfocus", "onblur", NULL } ; -static const char* target_attr[] = { "target", NULL } ; -static const char* rows_cols_attr[] = { "rows", "cols", NULL } ; -static const char* alt_attr[] = { "alt", NULL } ; -static const char* src_alt_attrs[] = { "src", "alt", NULL } ; -static const char* href_attrs[] = { "href", NULL } ; -static const char* clear_attrs[] = { "clear", NULL } ; -static const char* inline_p[] = { INLINE, "p", NULL } ; -static const char* flow_param[] = { FLOW, "param", NULL } ; -static const char* applet_attrs[] = { COREATTRS , "codebase", +static const char* const target_attr[] = { "target", NULL } ; +static const char* const rows_cols_attr[] = { "rows", "cols", NULL } ; +static const char* const alt_attr[] = { "alt", NULL } ; +static const char* const src_alt_attrs[] = { "src", "alt", NULL } ; +static const char* const href_attrs[] = { "href", NULL } ; +static const char* const clear_attrs[] = { "clear", NULL } ; +static const char* const inline_p[] = { INLINE, "p", NULL } ; + +static const char* const flow_param[] = { FLOW, "param", NULL } ; +static const char* const applet_attrs[] = { COREATTRS , "codebase", "archive", "alt", "name", "height", "width", "align", "hspace", "vspace", NULL } ; -static const char* area_attrs[] = { "shape", "coords", "href", "nohref", +static const char* const area_attrs[] = { "shape", "coords", "href", "nohref", "tabindex", "accesskey", "onfocus", "onblur", NULL } ; -static const char* basefont_attrs[] = +static const char* const basefont_attrs[] = { "id", "size", "color", "face", NULL } ; -static const char* quote_attrs[] = { ATTRS, "cite", NULL } ; -static const char* body_contents[] = { FLOW, "ins", "del", NULL } ; -static const char* body_attrs[] = { ATTRS, "onload", "onunload", NULL } ; -static const char* body_depr[] = { "background", "bgcolor", "text", +static const char* const quote_attrs[] = { ATTRS, "cite", NULL } ; +static const char* const body_contents[] = { FLOW, "ins", "del", NULL } ; +static const char* const body_attrs[] = { ATTRS, "onload", "onunload", NULL } ; +static const char* const body_depr[] = { "background", "bgcolor", "text", "link", "vlink", "alink", NULL } ; -static const char* button_attrs[] = { ATTRS, "name", "value", "type", +static const char* const button_attrs[] = { ATTRS, "name", "value", "type", "disabled", "tabindex", "accesskey", "onfocus", "onblur", NULL } ; -static const char* col_attrs[] = { ATTRS, "span", "width", CELLHALIGN, CELLVALIGN, NULL } ; -static const char* col_elt[] = { "col", NULL } ; -static const char* edit_attrs[] = { ATTRS, "datetime", "cite", NULL } ; -static const char* compact_attrs[] = { ATTRS, "compact", NULL } ; -static const char* dl_contents[] = { "dt", "dd", NULL } ; -static const char* compact_attr[] = { "compact", NULL } ; -static const char* label_attr[] = { "label", NULL } ; -static const char* fieldset_contents[] = { FLOW, "legend" } ; -static const char* font_attrs[] = { COREATTRS, I18N, "size", "color", "face" , NULL } ; -static const char* form_contents[] = { HEADING, LIST, INLINE, "pre", "p", "div", "center", "noscript", "noframes", "blockquote", "isindex", "hr", "table", "fieldset", "address", NULL } ; -static const char* form_attrs[] = { ATTRS, "method", "enctype", "accept", "name", "onsubmit", "onreset", "accept-charset", NULL } ; -static const char* frame_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "noresize", "scrolling" , NULL } ; -static const char* frameset_attrs[] = { COREATTRS, "rows", "cols", "onload", "onunload", NULL } ; -static const char* frameset_contents[] = { "frameset", "frame", "noframes", NULL } ; -static const char* head_attrs[] = { I18N, "profile", NULL } ; -static const char* head_contents[] = { "title", "isindex", "base", "script", "style", "meta", "link", "object", NULL } ; -static const char* hr_depr[] = { "align", "noshade", "size", "width", NULL } ; -static const char* version_attr[] = { "version", NULL } ; -static const char* html_content[] = { "head", "body", "frameset", NULL } ; -static const char* iframe_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "scrolling", "align", "height", "width", NULL } ; -static const char* img_attrs[] = { ATTRS, "longdesc", "name", "height", "width", "usemap", "ismap", NULL } ; -static const char* input_attrs[] = { ATTRS, "type", "name", "value", "checked", "disabled", "readonly", "size", "maxlength", "src", "alt", "usemap", "ismap", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", "accept", NULL } ; -static const char* prompt_attrs[] = { COREATTRS, I18N, "prompt", NULL } ; -static const char* label_attrs[] = { ATTRS, "for", "accesskey", "onfocus", "onblur", NULL } ; -static const char* legend_attrs[] = { ATTRS, "accesskey", NULL } ; -static const char* align_attr[] = { "align", NULL } ; -static const char* link_attrs[] = { ATTRS, "charset", "href", "hreflang", "type", "rel", "rev", "media", NULL } ; -static const char* map_contents[] = { BLOCK, "area", NULL } ; -static const char* name_attr[] = { "name", NULL } ; -static const char* action_attr[] = { "action", NULL } ; -static const char* blockli_elt[] = { BLOCK, "li", NULL } ; -static const char* meta_attrs[] = { I18N, "http-equiv", "name", "scheme", NULL } ; -static const char* content_attr[] = { "content", NULL } ; -static const char* type_attr[] = { "type", NULL } ; -static const char* noframes_content[] = { "body", FLOW MODIFIER, NULL } ; -static const char* object_contents[] = { FLOW, "param", NULL } ; -static const char* object_attrs[] = { ATTRS, "declare", "classid", "codebase", "data", "type", "codetype", "archive", "standby", "height", "width", "usemap", "name", "tabindex", NULL } ; -static const char* object_depr[] = { "align", "border", "hspace", "vspace", NULL } ; -static const char* ol_attrs[] = { "type", "compact", "start", NULL} ; -static const char* option_elt[] = { "option", NULL } ; -static const char* optgroup_attrs[] = { ATTRS, "disabled", NULL } ; -static const char* option_attrs[] = { ATTRS, "disabled", "label", "selected", "value", NULL } ; -static const char* param_attrs[] = { "id", "value", "valuetype", "type", NULL } ; -static const char* width_attr[] = { "width", NULL } ; -static const char* pre_content[] = { PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br", "script", "map", "q", "span", "bdo", "iframe", NULL } ; -static const char* script_attrs[] = { "charset", "src", "defer", "event", "for", NULL } ; -static const char* language_attr[] = { "language", NULL } ; -static const char* select_content[] = { "optgroup", "option", NULL } ; -static const char* select_attrs[] = { ATTRS, "name", "size", "multiple", "disabled", "tabindex", "onfocus", "onblur", "onchange", NULL } ; -static const char* style_attrs[] = { I18N, "media", "title", NULL } ; -static const char* table_attrs[] = { ATTRS "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "datapagesize", NULL } ; -static const char* table_depr[] = { "align", "bgcolor", NULL } ; -static const char* table_contents[] = { "caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr", NULL} ; -static const char* tr_elt[] = { "tr", NULL } ; -static const char* talign_attrs[] = { ATTRS, CELLHALIGN, CELLVALIGN, NULL} ; -static const char* th_td_depr[] = { "nowrap", "bgcolor", "width", "height", NULL } ; -static const char* th_td_attr[] = { ATTRS, "abbr", "axis", "headers", "scope", "rowspan", "colspan", CELLHALIGN, CELLVALIGN, NULL } ; -static const char* textarea_attrs[] = { ATTRS, "name", "disabled", "readonly", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", NULL } ; -static const char* tr_contents[] = { "th", "td", NULL } ; -static const char* bgcolor_attr[] = { "bgcolor", NULL } ; -static const char* li_elt[] = { "li", NULL } ; -static const char* ul_depr[] = { "type", "compact", NULL} ; -static const char* dir_attr[] = { "dir", NULL} ; +static const char* const col_attrs[] = { ATTRS, "span", "width", CELLHALIGN, CELLVALIGN, NULL } ; +static const char* const col_elt[] = { "col", NULL } ; +static const char* const edit_attrs[] = { ATTRS, "datetime", "cite", NULL } ; +static const char* const compact_attrs[] = { ATTRS, "compact", NULL } ; +static const char* const dl_contents[] = { "dt", "dd", NULL } ; +static const char* const compact_attr[] = { "compact", NULL } ; +static const char* const label_attr[] = { "label", NULL } ; +static const char* const fieldset_contents[] = { FLOW, "legend" } ; +static const char* const font_attrs[] = { COREATTRS, I18N, "size", "color", "face" , NULL } ; +static const char* const form_contents[] = { HEADING, LIST, INLINE, "pre", "p", "div", "center", "noscript", "noframes", "blockquote", "isindex", "hr", "table", "fieldset", "address", NULL } ; +static const char* const form_attrs[] = { ATTRS, "method", "enctype", "accept", "name", "onsubmit", "onreset", "accept-charset", NULL } ; +static const char* const frame_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "noresize", "scrolling" , NULL } ; +static const char* const frameset_attrs[] = { COREATTRS, "rows", "cols", "onload", "onunload", NULL } ; +static const char* const frameset_contents[] = { "frameset", "frame", "noframes", NULL } ; +static const char* const head_attrs[] = { I18N, "profile", NULL } ; +static const char* const head_contents[] = { "title", "isindex", "base", "script", "style", "meta", "link", "object", NULL } ; +static const char* const hr_depr[] = { "align", "noshade", "size", "width", NULL } ; +static const char* const version_attr[] = { "version", NULL } ; +static const char* const html_content[] = { "head", "body", "frameset", NULL } ; +static const char* const iframe_attrs[] = { COREATTRS, "longdesc", "name", "src", "frameborder", "marginwidth", "marginheight", "scrolling", "align", "height", "width", NULL } ; +static const char* const img_attrs[] = { ATTRS, "longdesc", "name", "height", "width", "usemap", "ismap", NULL } ; +static const char* const input_attrs[] = { ATTRS, "type", "name", "value", "checked", "disabled", "readonly", "size", "maxlength", "src", "alt", "usemap", "ismap", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", "accept", NULL } ; +static const char* const prompt_attrs[] = { COREATTRS, I18N, "prompt", NULL } ; +static const char* const label_attrs[] = { ATTRS, "for", "accesskey", "onfocus", "onblur", NULL } ; +static const char* const legend_attrs[] = { ATTRS, "accesskey", NULL } ; +static const char* const align_attr[] = { "align", NULL } ; +static const char* const link_attrs[] = { ATTRS, "charset", "href", "hreflang", "type", "rel", "rev", "media", NULL } ; +static const char* const map_contents[] = { BLOCK, "area", NULL } ; +static const char* const name_attr[] = { "name", NULL } ; +static const char* const action_attr[] = { "action", NULL } ; +static const char* const blockli_elt[] = { BLOCK, "li", NULL } ; +static const char* const meta_attrs[] = { I18N, "http-equiv", "name", "scheme", NULL } ; +static const char* const content_attr[] = { "content", NULL } ; +static const char* const type_attr[] = { "type", NULL } ; +static const char* const noframes_content[] = { "body", FLOW MODIFIER, NULL } ; +static const char* const object_contents[] = { FLOW, "param", NULL } ; +static const char* const object_attrs[] = { ATTRS, "declare", "classid", "codebase", "data", "type", "codetype", "archive", "standby", "height", "width", "usemap", "name", "tabindex", NULL } ; +static const char* const object_depr[] = { "align", "border", "hspace", "vspace", NULL } ; +static const char* const ol_attrs[] = { "type", "compact", "start", NULL} ; +static const char* const option_elt[] = { "option", NULL } ; +static const char* const optgroup_attrs[] = { ATTRS, "disabled", NULL } ; +static const char* const option_attrs[] = { ATTRS, "disabled", "label", "selected", "value", NULL } ; +static const char* const param_attrs[] = { "id", "value", "valuetype", "type", NULL } ; +static const char* const width_attr[] = { "width", NULL } ; +static const char* const pre_content[] = { PHRASE, "tt", "i", "b", "u", "s", "strike", "a", "br", "script", "map", "q", "span", "bdo", "iframe", NULL } ; +static const char* const script_attrs[] = { "charset", "src", "defer", "event", "for", NULL } ; +static const char* const language_attr[] = { "language", NULL } ; +static const char* const select_content[] = { "optgroup", "option", NULL } ; +static const char* const select_attrs[] = { ATTRS, "name", "size", "multiple", "disabled", "tabindex", "onfocus", "onblur", "onchange", NULL } ; +static const char* const style_attrs[] = { I18N, "media", "title", NULL } ; +static const char* const table_attrs[] = { ATTRS "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "datapagesize", NULL } ; +static const char* const table_depr[] = { "align", "bgcolor", NULL } ; +static const char* const table_contents[] = { "caption", "col", "colgroup", "thead", "tfoot", "tbody", "tr", NULL} ; +static const char* const tr_elt[] = { "tr", NULL } ; +static const char* const talign_attrs[] = { ATTRS, CELLHALIGN, CELLVALIGN, NULL} ; +static const char* const th_td_depr[] = { "nowrap", "bgcolor", "width", "height", NULL } ; +static const char* const th_td_attr[] = { ATTRS, "abbr", "axis", "headers", "scope", "rowspan", "colspan", CELLHALIGN, CELLVALIGN, NULL } ; +static const char* const textarea_attrs[] = { ATTRS, "name", "disabled", "readonly", "tabindex", "accesskey", "onfocus", "onblur", "onselect", "onchange", NULL } ; +static const char* const tr_contents[] = { "th", "td", NULL } ; +static const char* const bgcolor_attr[] = { "bgcolor", NULL } ; +static const char* const li_elt[] = { "li", NULL } ; +static const char* const ul_depr[] = { "type", "compact", NULL} ; +static const char* const dir_attr[] = { "dir", NULL} ; #define DECL (const char**) @@ -896,7 +897,7 @@ html40ElementTable[] = { /* * start tags that imply the end of current element */ -static const char *htmlStartClose[] = { +static const char * const htmlStartClose[] = { "form", "form", "p", "hr", "h1", "h2", "h3", "h4", "h5", "h6", "dl", "ul", "ol", "menu", "dir", "address", "pre", "listing", "xmp", "head", NULL, @@ -961,7 +962,7 @@ NULL * TODO: extend that list by reading the HTML SGML DTD on * implied paragraph */ -static const char *htmlNoContentElements[] = { +static const char *const htmlNoContentElements[] = { "html", "head", NULL @@ -972,7 +973,7 @@ static const char *htmlNoContentElements[] = { * NOTE: when adding ones, check htmlIsScriptAttribute() since * it assumes the name starts with 'on' */ -static const char *htmlScriptAttributes[] = { +static const char *const htmlScriptAttributes[] = { "onclick", "ondblclick", "onmousedown", @@ -1046,7 +1047,7 @@ htmlInitAutoClose(void) { for (indx = 0;indx < 100;indx ++) htmlStartCloseIndex[indx] = NULL; indx = 0; while ((htmlStartClose[i] != NULL) && (indx < 100 - 1)) { - htmlStartCloseIndex[indx++] = &htmlStartClose[i]; + htmlStartCloseIndex[indx++] = (const char**) &htmlStartClose[i]; while (htmlStartClose[i] != NULL) i++; i++; } @@ -2376,7 +2377,7 @@ htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) { growBuffer(buffer); out = &buffer[indx]; } - c = (xmlChar)ent->value; + c = ent->value; if (c < 0x80) { *out++ = c; bits= -6; } else if (c < 0x800) @@ -2706,7 +2707,7 @@ htmlParseScript(htmlParserCtxtPtr ctxt) { cur = CUR_CHAR(l); } - if (!(IS_CHAR_CH(cur))) { + if ((!(IS_CHAR_CH(cur))) && (!((cur == 0) && (ctxt->progressive)))) { htmlParseErrInt(ctxt, XML_ERR_INVALID_CHAR, "Invalid char in CDATA 0x%X\n", cur); NEXT; @@ -3234,12 +3235,11 @@ htmlParseAttribute(htmlParserCtxtPtr ctxt, xmlChar **value) { NEXT; SKIP_BLANKS; val = htmlParseAttValue(ctxt); - /****** - } else { - * TODO : some attribute must have values, some may not - if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) - ctxt->sax->warning(ctxt->userData, - "No value for attribute %s\n", name); */ + } else if (htmlIsBooleanAttr(name)) { + /* + * assume a minimized attribute + */ + val = xmlStrdup(name); } *value = val; @@ -3290,7 +3290,18 @@ htmlCheckEncoding(htmlParserCtxtPtr ctxt, const xmlChar *attvalue) { * registered set of known encodings */ if (enc != XML_CHAR_ENCODING_ERROR) { - xmlSwitchEncoding(ctxt, enc); + if (((enc == XML_CHAR_ENCODING_UTF16LE) || + (enc == XML_CHAR_ENCODING_UTF16BE) || + (enc == XML_CHAR_ENCODING_UCS4LE) || + (enc == XML_CHAR_ENCODING_UCS4BE)) && + (ctxt->input->buf != NULL) && + (ctxt->input->buf->encoder == NULL)) { + htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING, + "htmlCheckEncoding: wrong encoding meta\n", + NULL, NULL); + } else { + xmlSwitchEncoding(ctxt, enc); + } ctxt->charset = XML_CHAR_ENCODING_UTF8; } else { /* @@ -4260,10 +4271,10 @@ htmlFreeParserCtxt(htmlParserCtxtPtr ctxt) * * Allocate and initialize a new parser context. * - * Returns the xmlParserCtxtPtr or NULL + * Returns the htmlParserCtxtPtr or NULL in case of allocation error */ -static htmlParserCtxtPtr +htmlParserCtxtPtr htmlNewParserCtxt(void) { xmlParserCtxtPtr ctxt; @@ -4336,7 +4347,8 @@ htmlCreateMemoryParserCtxt(const char *buffer, int size) { * Returns the new parser context or NULL */ static htmlParserCtxtPtr -htmlCreateDocParserCtxt(xmlChar *cur, const char *encoding ATTRIBUTE_UNUSED) { +htmlCreateDocParserCtxt(const xmlChar *cur, + const char *encoding ATTRIBUTE_UNUSED) { int len; htmlParserCtxtPtr ctxt; @@ -4939,9 +4951,17 @@ htmlParseTryOrFinish(htmlParserCtxtPtr ctxt, int terminate) { /* * Handle SCRIPT/STYLE separately */ - if ((!terminate) && - (htmlParseLookupSequence(ctxt, '<', '/', 0, 0) < 0)) - goto done; + if (!terminate) { + int idx; + xmlChar val; + + idx = htmlParseLookupSequence(ctxt, '<', '/', 0, 0); + if (idx < 0) + goto done; + val = in->cur[idx + 2]; + if (val == 0) /* bad cut of input */ + goto done; + } htmlParseScript(ctxt); if ((cur == '<') && (next == '/')) { ctxt->instate = XML_PARSER_END_TAG; @@ -5379,6 +5399,7 @@ htmlCreatePushParserCtxt(htmlSAXHandlerPtr sax, void *user_data, xmlGenericError(xmlGenericErrorContext, "HPP: pushed %d\n", size); #endif } + ctxt->progressive = 1; return(ctxt); } @@ -5727,6 +5748,7 @@ htmlCtxtReset(htmlParserCtxtPtr ctxt) if (ctxt == NULL) return; + xmlInitParser(); dict = ctxt->dict; while ((input = inputPop(ctxt)) != NULL) { /* Non consuming */ @@ -5842,6 +5864,7 @@ htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options) ctxt->keepBlanks = 1; if (options & HTML_PARSE_RECOVER) { ctxt->recovery = 1; + options -= HTML_PARSE_RECOVER; } else ctxt->recovery = 0; if (options & HTML_PARSE_COMPACT) { @@ -5914,7 +5937,8 @@ htmlReadDoc(const xmlChar * cur, const char *URL, const char *encoding, int opti if (cur == NULL) return (NULL); - ctxt = xmlCreateDocParserCtxt(cur); + xmlInitParser(); + ctxt = htmlCreateDocParserCtxt(cur, NULL); if (ctxt == NULL) return (NULL); return (htmlDoRead(ctxt, URL, encoding, options, 0)); @@ -5935,6 +5959,7 @@ htmlReadFile(const char *filename, const char *encoding, int options) { htmlParserCtxtPtr ctxt; + xmlInitParser(); ctxt = htmlCreateFileParserCtxt(filename, encoding); if (ctxt == NULL) return (NULL); @@ -5958,9 +5983,11 @@ htmlReadMemory(const char *buffer, int size, const char *URL, const char *encodi { htmlParserCtxtPtr ctxt; + xmlInitParser(); ctxt = xmlCreateMemoryParserCtxt(buffer, size); if (ctxt == NULL) return (NULL); + htmlDefaultSAXHandlerInit(); if (ctxt->sax != NULL) memcpy(ctxt->sax, &htmlDefaultSAXHandler, sizeof(xmlSAXHandlerV1)); return (htmlDoRead(ctxt, URL, encoding, options, 0)); @@ -5987,6 +6014,7 @@ htmlReadFd(int fd, const char *URL, const char *encoding, int options) if (fd < 0) return (NULL); + xmlInitParser(); input = xmlParserInputBufferCreateFd(fd, XML_CHAR_ENCODING_NONE); if (input == NULL) return (NULL); @@ -6028,12 +6056,13 @@ htmlReadIO(xmlInputReadCallback ioread, xmlInputCloseCallback ioclose, if (ioread == NULL) return (NULL); + xmlInitParser(); input = xmlParserInputBufferCreateIO(ioread, ioclose, ioctx, XML_CHAR_ENCODING_NONE); if (input == NULL) return (NULL); - ctxt = xmlNewParserCtxt(); + ctxt = htmlNewParserCtxt(); if (ctxt == NULL) { xmlFreeParserInputBuffer(input); return (NULL); diff --git a/HTMLtree.c b/HTMLtree.c index d73024a..c1e5a0a 100644 --- a/HTMLtree.c +++ b/HTMLtree.c @@ -348,19 +348,19 @@ htmlSaveErr(int code, xmlNodePtr node, const char *extra) switch(code) { case XML_SAVE_NOT_UTF8: - msg = "string is not in UTF-8"; + msg = "string is not in UTF-8\n"; break; case XML_SAVE_CHAR_INVALID: - msg = "invalid character value"; + msg = "invalid character value\n"; break; case XML_SAVE_UNKNOWN_ENCODING: - msg = "unknown encoding %s"; + msg = "unknown encoding %s\n"; break; case XML_SAVE_NO_DOCTYPE: - msg = "HTML has no DOCTYPE"; + msg = "HTML has no DOCTYPE\n"; break; default: - msg = "unexpected error number"; + msg = "unexpected error number\n"; } __xmlSimpleError(XML_FROM_OUTPUT, code, node, msg, extra); } diff --git a/Makefile.in b/Makefile.in index 980d634..d0b3f87 100644 --- a/Makefile.in +++ b/Makefile.in @@ -302,6 +302,7 @@ RDL_LIBS = @RDL_LIBS@ READER_TEST = @READER_TEST@ RELDATE = @RELDATE@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STATIC_BINARIES = @STATIC_BINARIES@ @@ -330,6 +331,7 @@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ U = @U@ VERSION = @VERSION@ +WGET = @WGET@ WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@ WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@ WITH_C14N = @WITH_C14N@ @@ -365,6 +367,7 @@ WITH_WRITER = @WITH_WRITER@ WITH_XINCLUDE = @WITH_XINCLUDE@ WITH_XPATH = @WITH_XPATH@ WITH_XPTR = @WITH_XPTR@ +WITH_ZLIB = @WITH_ZLIB@ XINCLUDE_OBJ = @XINCLUDE_OBJ@ XMLLINT = @XMLLINT@ XML_CFLAGS = @XML_CFLAGS@ diff --git a/NEWS b/NEWS index 5c9554a..e13224f 100644 --- a/NEWS +++ b/NEWS @@ -15,6 +15,74 @@ ChangeLog.html to the CVS at http://cvs.gnome.org/viewcvs/libxml2/ code base.There is the list of public releases: +2.6.27: Oct 25 2006: + - Portability fixes: file names on windows (Roland Schwingel, + Emelyanov Alexey), windows compile fixup (Rob Richards), + AIX iconv() is apparently case sensitive + - improvements: Python XPath types mapping (Nic Ferrier), XPath optimization + (Kasimier), add xmlXPathCompiledEvalToBoolean (Kasimier), Python node + equality and comparison (Andreas Pakulat), xmlXPathCollectAndTest + improvememt (Kasimier), expose if library was compiled with zlib + support (Andrew Nosenko), cache for xmlSchemaIDCMatcher structs + (Kasimier), xmlTextConcat should work with comments and PIs (Rob + Richards), export htmlNewParserCtxt needed by Michael Day, refactoring + of catalog entity loaders (Michael Day), add XPointer support to + python bindings (Ross Reedstrom, Brian West and Stefan Anca), + try to sort out most file path to URI conversions and xmlPathToUri, + add --html --memory case to xmllint + - building fix: fix --with-minimum (Felipe Contreras), VMS fix, + const'ification of HTML parser structures (Matthias Clasen), + portability fix (Emelyanov Alexey), wget autodetection (Peter + Breitenlohner), remove the build path recorded in the python + shared module, separate library flags for shared and static builds + (Mikhail Zabaluev), fix --with-minimum --with-sax1 builds, fix + --with-minimum --with-schemas builds + - bug fix: xmlGetNodePath fix (Kasimier), xmlDOMWrapAdoptNode and + attribute (Kasimier), crash when using the recover mode, + xmlXPathEvalExpr problem (Kasimier), xmlXPathCompExprAdd bug (Kasimier), + missing destry in xmlFreeRMutex (Andrew Nosenko), XML Schemas fixes + (Kasimier), warning on entities processing, XHTML script and style + serialization (Kasimier), python generator for long types, bug in + xmlSchemaClearValidCtxt (Bertrand Fritsch), xmlSchemaXPathEvaluate + allocation bug (Marton Illes), error message end of line (Rob Richards), + fix attribute serialization in writer (Rob Richards), PHP4 DTD validation + crasher, parser safety patch (Ben Darnell), _private context propagation + when parsing entities (with Michael Day), fix entities behaviour when + using SAX, URI to file path fix (Mikhail Zabaluev), disapearing validity + context, arg error in SAX callback (Mike Hommey), fix mixed-content + autodetect when using --noblanks, fix xmlIOParseDTD error handling, + fix bug in xmlSplitQName on special Names, fix Relax-NG element content + validation bug, fix xmlReconciliateNs bug, fix potential attribute + XML parsing bug, fix line/column accounting in XML parser, chunking bug + in the HTML parser on script, try to detect obviously buggy HTML + meta encoding indications, bugs with encoding BOM and xmlSaveDoc, + HTML entities in attributes parsing, HTML minimized attribute values, + htmlReadDoc and htmlReadIO were broken, error handling bug in + xmlXPathEvalExpression (Olaf Walkowiak), fix a problem in + htmlCtxtUseOptions, xmlNewInputFromFile could leak (Marius Konitzer), + bug on misformed SSD regexps (Christopher Boumenot) + + - documentation: warning about XML_PARSE_COMPACT (Kasimier Buchcik), + fix xmlXPathCastToString documentation, improve man pages for + xmllitn and xmlcatalog (Daniel Leidert), fixed comments of a few + functions + + +2.6.26: Jun 6 2006: + - portability fixes: Python detection (Joseph Sacco), compilation + error(William Brack and Graham Bennett), LynxOS patch (Olli Savia) + - bug fixes: encoding buffer problem, mix of code and data in + xmlIO.c(Kjartan Maraas), entities in XSD validation (Kasimier Buchcik), + variousXSD validation fixes (Kasimier), memory leak in pattern (Rob + Richards andKasimier), attribute with colon in name (Rob Richards), XPath + leak inerror reporting (Aleksey Sanin), XInclude text include of + selfdocument. + - improvements: Xpath optimizations (Kasimier), XPath object + cache(Kasimier) + + +2.6.25: Jun 6 2006:: +Do not use or package 2.6.25 2.6.24: Apr 28 2006: - Portability fixes: configure on Windows, testapi compile on windows (Kasimier Buchcik, venkat naidu), Borland C++ 6 compile (Eric Zurcher), diff --git a/SAX2.c b/SAX2.c index 75d5f4c..7d4ab64 100644 --- a/SAX2.c +++ b/SAX2.c @@ -580,6 +580,7 @@ xmlSAX2GetEntity(void *ctx, const xmlChar *name) return(NULL); } ret->owner = 1; + ret->checked = 1; } return(ret); } @@ -987,7 +988,7 @@ xmlSAX2StartDocument(void *ctx) } if ((ctxt->myDoc != NULL) && (ctxt->myDoc->URL == NULL) && (ctxt->input != NULL) && (ctxt->input->filename != NULL)) { - ctxt->myDoc->URL = xmlCanonicPath((const xmlChar *) ctxt->input->filename); + ctxt->myDoc->URL = xmlPathToURI((const xmlChar *)ctxt->input->filename); if (ctxt->myDoc->URL == NULL) xmlSAX2ErrMemory(ctxt, "xmlSAX2StartDocument"); } @@ -1645,9 +1646,9 @@ xmlSAX2StartElement(void *ctx, const xmlChar *fullname, const xmlChar **atts) ns = xmlSearchNs(ctxt->myDoc, parent, prefix); if ((prefix != NULL) && (ns == NULL)) { ns = xmlNewNs(ret, NULL, prefix); - if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, - "Namespace prefix %s is not defined\n", prefix); + xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE, + "Namespace prefix %s is not defined\n", + prefix, NULL); } /* @@ -2255,9 +2256,9 @@ xmlSAX2StartElementNs(void *ctx, xmlSAX2ErrMemory(ctxt, "xmlSAX2StartElementNs"); return; } - if ((ctxt->sax != NULL) && (ctxt->sax->warning != NULL)) - ctxt->sax->warning(ctxt->userData, - "Namespace prefix %s was not found\n", prefix); + xmlNsWarnMsg(ctxt, XML_NS_ERR_UNDEFINED_NAMESPACE, + "Namespace prefix %s was not found\n", + prefix, NULL); } } diff --git a/aclocal.m4 b/aclocal.m4 index 7786a0f..6ec819a 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1597,7 +1597,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -4305,6 +4305,9 @@ CC=$lt_[]_LT_AC_TAGVAR(compiler, $1) # Is the compiler the GNU C compiler? with_gcc=$_LT_AC_TAGVAR(GCC, $1) +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -4438,11 +4441,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) +predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) +postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -4454,7 +4457,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) +compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -4534,7 +4537,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -6370,6 +6373,7 @@ do done done done +IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris @@ -6402,6 +6406,7 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do done ]) SED=$lt_cv_path_SED +AC_SUBST([SED]) AC_MSG_RESULT([$SED]) ]) diff --git a/configure b/configure index 5bf44bb..0749a93 100755 --- a/configure +++ b/configure @@ -463,7 +463,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL XMLLINT XSLTPROC EGREP U ANSI2KNR LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HTML_DIR Z_CFLAGS Z_LIBS PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMATRON TEST_SCHEMATRON WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os LIBXML_MAJOR_VERSION LIBXML_MINOR_VERSION LIBXML_MICRO_VERSION LIBXML_VERSION LIBXML_VERSION_INFO LIBXML_VERSION_NUMBER LIBXML_VERSION_EXTRA INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CPP RM MV TAR PERL WGET XMLLINT XSLTPROC EGREP U ANSI2KNR SED LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL HTML_DIR Z_CFLAGS Z_LIBS WITH_ZLIB PYTHON WITH_PYTHON_TRUE WITH_PYTHON_FALSE pythondir PYTHON_SUBDIR WITH_MODULES MODULE_PLATFORM_LIBS MODULE_EXTENSION TEST_MODULES STATIC_BINARIES WITH_TRIO_SOURCES_TRUE WITH_TRIO_SOURCES_FALSE WITH_TRIO THREAD_LIBS BASE_THREAD_LIBS WITH_THREADS THREAD_CFLAGS TEST_THREADS THREADS_W32 WITH_TREE WITH_FTP FTP_OBJ WITH_HTTP HTTP_OBJ WITH_LEGACY WITH_READER READER_TEST WITH_WRITER WITH_PATTERN TEST_PATTERN WITH_SAX1 TEST_SAX WITH_PUSH TEST_PUSH WITH_HTML HTML_OBJ TEST_HTML TEST_PHTML WITH_VALID TEST_VALID TEST_VTIME WITH_CATALOG CATALOG_OBJ TEST_CATALOG WITH_DOCB DOCB_OBJ WITH_XPTR XPTR_OBJ TEST_XPTR WITH_C14N C14N_OBJ TEST_C14N WITH_XINCLUDE XINCLUDE_OBJ TEST_XINCLUDE WITH_XPATH XPATH_OBJ TEST_XPATH WITH_OUTPUT WITH_ICONV WITH_ISO8859X WITH_SCHEMATRON TEST_SCHEMATRON WITH_SCHEMAS TEST_SCHEMAS WITH_REGEXPS TEST_REGEXPS WITH_DEBUG DEBUG_OBJ TEST_DEBUG WITH_MEM_DEBUG WITH_RUN_DEBUG WIN32_EXTRA_LIBADD WIN32_EXTRA_LDFLAGS CYGWIN_EXTRA_LDFLAGS CYGWIN_EXTRA_PYTHON_LIBADD XML_CFLAGS XML_LIBDIR XML_LIBS XML_LIBTOOLLIBS ICONV_LIBS XML_INCLUDEDIR HAVE_ISNAN HAVE_ISINF PYTHON_VERSION PYTHON_INCLUDES PYTHON_SITE_PACKAGES M_LIBS RDL_LIBS RELDATE PYTHON_TESTS LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1618,7 +1618,7 @@ host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=26 +LIBXML_MICRO_VERSION=27 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -3633,6 +3633,46 @@ else echo "${ECHO_T}no" >&6 fi +# Extract the first word of "wget", so it can be a program name with args. +set dummy wget; ac_word=$2 +echo "$as_me:$LINENO: checking for $ac_word" >&5 +echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 +if test "${ac_cv_path_WGET+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + case $WGET in + [\\/]* | ?:[\\/]*) + ac_cv_path_WGET="$WGET" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_WGET="$as_dir/$ac_word$ac_exec_ext" + echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done +done + + test -z "$ac_cv_path_WGET" && ac_cv_path_WGET="/usr/bin/wget" + ;; +esac +fi +WGET=$ac_cv_path_WGET + +if test -n "$WGET"; then + echo "$as_me:$LINENO: result: $WGET" >&5 +echo "${ECHO_T}$WGET" >&6 +else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +fi + # Extract the first word of "xmllint", so it can be a program name with args. set dummy xmllint; ac_word=$2 echo "$as_me:$LINENO: checking for $ac_word" >&5 @@ -4246,6 +4286,7 @@ do done done done +IFS=$as_save_IFS lt_ac_max=0 lt_ac_count=0 # Add /usr/xpg4/bin/sed as it is typically found on Solaris @@ -4280,6 +4321,7 @@ done fi SED=$lt_cv_path_SED + echo "$as_me:$LINENO: result: $SED" >&5 echo "${ECHO_T}$SED" >&6 @@ -4704,7 +4746,7 @@ ia64-*-hpux*) ;; *-*-irix6*) # Find out which ABI we are using. - echo '#line 4707 "configure"' > conftest.$ac_ext + echo '#line 4749 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -6072,7 +6114,7 @@ fi # Provide some information about the compiler. -echo "$as_me:6075:" \ +echo "$as_me:6117:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 @@ -7135,11 +7177,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7138: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7180: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7142: \$? = $ac_status" >&5 + echo "$as_me:7184: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7403,11 +7445,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7406: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7448: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:7410: \$? = $ac_status" >&5 + echo "$as_me:7452: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -7507,11 +7549,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:7510: $lt_compile\"" >&5) + (eval echo "\"\$as_me:7552: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:7514: \$? = $ac_status" >&5 + echo "$as_me:7556: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -8976,7 +9018,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 8979 "configure"' > conftest.$ac_ext + echo '#line 9021 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -8995,7 +9037,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -9873,7 +9915,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext < conftest.$ac_ext <&5) + (eval echo "\"\$as_me:12361: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:12320: \$? = $ac_status" >&5 + echo "$as_me:12365: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -12417,11 +12462,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:12420: $lt_compile\"" >&5) + (eval echo "\"\$as_me:12465: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:12424: \$? = $ac_status" >&5 + echo "$as_me:12469: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -12953,7 +12998,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 12956 "configure"' > conftest.$ac_ext + echo '#line 13001 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -12972,7 +13017,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -13357,6 +13402,9 @@ CC=$lt_compiler_CXX # Is the compiler the GNU C compiler? with_gcc=$GCC_CXX +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -13490,11 +13538,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_CXX +predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_CXX +postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -13506,7 +13554,7 @@ postdeps=$lt_postdeps_CXX # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_CXX +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -13586,7 +13634,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_CXX # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -14008,11 +14056,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14011: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14059: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:14015: \$? = $ac_status" >&5 + echo "$as_me:14063: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -14112,11 +14160,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:14115: $lt_compile\"" >&5) + (eval echo "\"\$as_me:14163: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:14119: \$? = $ac_status" >&5 + echo "$as_me:14167: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -15561,7 +15609,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 15564 "configure"' > conftest.$ac_ext + echo '#line 15612 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -15580,7 +15628,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -15965,6 +16013,9 @@ CC=$lt_compiler_F77 # Is the compiler the GNU C compiler? with_gcc=$GCC_F77 +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -16098,11 +16149,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_F77 +predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_F77 +postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -16114,7 +16165,7 @@ postdeps=$lt_postdeps_F77 # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_F77 +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -16194,7 +16245,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_F77 # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -16336,11 +16387,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16339: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16390: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16343: \$? = $ac_status" >&5 + echo "$as_me:16394: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16604,11 +16655,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16607: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16658: $lt_compile\"" >&5) (eval "$lt_compile" 2>conftest.err) ac_status=$? cat conftest.err >&5 - echo "$as_me:16611: \$? = $ac_status" >&5 + echo "$as_me:16662: \$? = $ac_status" >&5 if (exit $ac_status) && test -s "$ac_outfile"; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings other than the usual output. @@ -16708,11 +16759,11 @@ else -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's:$: $lt_compiler_flag:'` - (eval echo "\"\$as_me:16711: $lt_compile\"" >&5) + (eval echo "\"\$as_me:16762: $lt_compile\"" >&5) (eval "$lt_compile" 2>out/conftest.err) ac_status=$? cat out/conftest.err >&5 - echo "$as_me:16715: \$? = $ac_status" >&5 + echo "$as_me:16766: \$? = $ac_status" >&5 if (exit $ac_status) && test -s out/conftest2.$ac_objext then # The compiler can only warn and ignore the option if not recognized @@ -18177,7 +18228,7 @@ linux*) libsuff= case "$host_cpu" in x86_64*|s390x*|powerpc64*) - echo '#line 18180 "configure"' > conftest.$ac_ext + echo '#line 18231 "configure"' > conftest.$ac_ext if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 (eval $ac_compile) 2>&5 ac_status=$? @@ -18196,7 +18247,7 @@ linux*) # Append ld.so.conf contents to the search path if test -f /etc/ld.so.conf; then - lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" fi @@ -18581,6 +18632,9 @@ CC=$lt_compiler_GCJ # Is the compiler the GNU C compiler? with_gcc=$GCC_GCJ +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -18714,11 +18768,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_GCJ +predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_GCJ +postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -18730,7 +18784,7 @@ postdeps=$lt_postdeps_GCJ # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -18810,7 +18864,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_GCJ # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -19062,6 +19116,9 @@ CC=$lt_compiler_RC # Is the compiler the GNU C compiler? with_gcc=$GCC_RC +gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` +gcc_ver=\`gcc -dumpversion\` + # An ERE matcher. EGREP=$lt_EGREP @@ -19195,11 +19252,11 @@ striplib=$lt_striplib # Dependencies to place before the objects being linked to create a # shared library. -predep_objects=$lt_predep_objects_RC +predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place after the objects being linked to create a # shared library. -postdep_objects=$lt_postdep_objects_RC +postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Dependencies to place before the objects being linked to create a # shared library. @@ -19211,7 +19268,7 @@ postdeps=$lt_postdeps_RC # The library search path used internally by the compiler when linking # a shared library. -compiler_lib_search_path=$lt_compiler_lib_search_path_RC +compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Method to check whether dependent libraries are shared objects. deplibs_check_method=$lt_deplibs_check_method @@ -19291,7 +19348,7 @@ variables_saved_for_relink="$variables_saved_for_relink" link_all_deplibs=$link_all_deplibs_RC # Compile-time system search path for libraries -sys_lib_search_path_spec=$lt_sys_lib_search_path_spec +sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` # Run-time system search path for libraries sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec @@ -19805,6 +19862,7 @@ fi echo Checking zlib +WITH_ZLIB=0 if test "$with_zlib" = "no"; then echo "Disabling compression support" else @@ -20021,9 +20079,10 @@ if test $ac_cv_lib_z_gzread = yes; then cat >>confdefs.h <<\_ACEOF -#define HAVE_LIBZ +#define HAVE_LIBZ 1 _ACEOF + WITH_ZLIB=1 if test "x${Z_DIR}" != "x"; then Z_CFLAGS="-I${Z_DIR}/include" Z_LIBS="-L${Z_DIR}/lib -lz" @@ -20046,6 +20105,7 @@ fi + CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags} @@ -25988,7 +26048,7 @@ fi echo "$as_me:$LINENO: checking for type of socket length (socklen_t)" >&5 echo $ECHO_N "checking for type of socket length (socklen_t)... $ECHO_C" >&6 cat > conftest.$ac_ext < @@ -25999,7 +26059,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (socklen_t *)NULL) ; return 0; } EOF -if { (eval echo configure:26002: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26062: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: socklen_t *" >&5 @@ -26011,7 +26071,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -26022,7 +26082,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (size_t *)NULL) ; return 0; } EOF -if { (eval echo configure:26025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26085: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: size_t *" >&5 @@ -26034,7 +26094,7 @@ else rm -rf conftest* cat > conftest.$ac_ext < @@ -26045,7 +26105,7 @@ int main(void) { (void)getsockopt (1, 1, 1, NULL, (int *)NULL) ; return 0; } EOF -if { (eval echo configure:26048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then +if { (eval echo configure:26108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; _out=`eval $ac_compile 2>&1` && test "x$_out" = x; }; then rm -rf conftest* echo "$as_me:$LINENO: result: int *" >&5 @@ -29698,11 +29758,13 @@ s,@RM@,$RM,;t t s,@MV@,$MV,;t t s,@TAR@,$TAR,;t t s,@PERL@,$PERL,;t t +s,@WGET@,$WGET,;t t s,@XMLLINT@,$XMLLINT,;t t s,@XSLTPROC@,$XSLTPROC,;t t s,@EGREP@,$EGREP,;t t s,@U@,$U,;t t s,@ANSI2KNR@,$ANSI2KNR,;t t +s,@SED@,$SED,;t t s,@LN_S@,$LN_S,;t t s,@ECHO@,$ECHO,;t t s,@AR@,$AR,;t t @@ -29729,6 +29791,7 @@ s,@LIBTOOL@,$LIBTOOL,;t t s,@HTML_DIR@,$HTML_DIR,;t t s,@Z_CFLAGS@,$Z_CFLAGS,;t t s,@Z_LIBS@,$Z_LIBS,;t t +s,@WITH_ZLIB@,$WITH_ZLIB,;t t s,@PYTHON@,$PYTHON,;t t s,@WITH_PYTHON_TRUE@,$WITH_PYTHON_TRUE,;t t s,@WITH_PYTHON_FALSE@,$WITH_PYTHON_FALSE,;t t diff --git a/configure.in b/configure.in index e01408a..b2174c6 100644 --- a/configure.in +++ b/configure.in @@ -5,7 +5,7 @@ AC_CANONICAL_HOST LIBXML_MAJOR_VERSION=2 LIBXML_MINOR_VERSION=6 -LIBXML_MICRO_VERSION=26 +LIBXML_MICRO_VERSION=27 LIBXML_MICRO_VERSION_SUFFIX= LIBXML_VERSION=$LIBXML_MAJOR_VERSION.$LIBXML_MINOR_VERSION.$LIBXML_MICRO_VERSION$LIBXML_MICRO_VERSION_SUFFIX LIBXML_VERSION_INFO=`expr $LIBXML_MAJOR_VERSION + $LIBXML_MINOR_VERSION`:$LIBXML_MICRO_VERSION:$LIBXML_MINOR_VERSION @@ -40,6 +40,7 @@ AC_PATH_PROG(RM, rm, /bin/rm) AC_PATH_PROG(MV, mv, /bin/mv) AC_PATH_PROG(TAR, tar, /bin/tar) AC_PATH_PROG(PERL, perl, /usr/bin/perl) +AC_PATH_PROG(WGET, wget, /usr/bin/wget) AC_PATH_PROG(XMLLINT, xmllint, /usr/bin/xmllint) AC_PATH_PROG(XSLTPROC, xsltproc, /usr/bin/xsltproc) @@ -325,12 +326,14 @@ echo Checking zlib dnl Checks for zlib library. +WITH_ZLIB=0 if test "$with_zlib" = "no"; then echo "Disabling compression support" else AC_CHECK_HEADERS(zlib.h, AC_CHECK_LIB(z, gzread,[ - AC_DEFINE([HAVE_LIBZ], [], [Have compression library]) + AC_DEFINE([HAVE_LIBZ], [1], [Have compression library]) + WITH_ZLIB=1 if test "x${Z_DIR}" != "x"; then Z_CFLAGS="-I${Z_DIR}/include" Z_LIBS="-L${Z_DIR}/lib -lz" @@ -346,6 +349,7 @@ fi AC_SUBST(Z_CFLAGS) AC_SUBST(Z_LIBS) +AC_SUBST(WITH_ZLIB) CPPFLAGS=${_cppflags} LDFLAGS=${_ldflags} diff --git a/doc/APIchunk0.html b/doc/APIchunk0.html index 4e55d77..f67a902 100644 --- a/doc/APIchunk0.html +++ b/doc/APIchunk0.html @@ -104,7 +104,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoFTPList
xmlParseAttValue
xmlTextWriterEndDocument
-
Allocate
xmlNanoFTPNewCtxt
+
Allocate
htmlNewParserCtxt
+xmlNanoFTPNewCtxt
xmlNewDocElementContent
xmlNewElementContent
xmlNewParserCtxt
@@ -129,6 +130,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Applies
htmlCtxtUseOptions
xmlCtxtUseOptions
xmlNormalizeURIPath
+xmlXPathCompiledEvalToBoolean
Apply
XML_SCHEMAS_ANYATTR_STRICT
XML_SCHEMAS_ANY_STRICT
Arabic
xmlUCSIsArabic
diff --git a/doc/APIchunk1.html b/doc/APIchunk1.html index 7c9ff72..a222fe0 100644 --- a/doc/APIchunk1.html +++ b/doc/APIchunk1.html @@ -267,6 +267,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Computes
xmlBuildURI
Concat
xmlTextConcat
Constructs
xmlCanonicPath
+xmlPathToURI
Content
xmlNodeGetBase
xmlParseElementContentDecl
Content-Type
xmlNanoHTTPFetch
@@ -337,7 +338,8 @@ A:link, A:visited, A:active { text-decoration: underline }
Current
_xmlParserCtxt
_xmlParserInput
_xmlValidCtxt
-
Currently
xmlNanoFTPGetConnection
+
Currently
xmlDOMWrapCloneNode
+xmlNanoFTPGetConnection
xmlNanoFTPInit
xmlNanoHTTPInit
xmlTextReaderNextSibling
diff --git a/doc/APIchunk10.html b/doc/APIchunk10.html index 0486624..432eb31 100644 --- a/doc/APIchunk10.html +++ b/doc/APIchunk10.html @@ -105,9 +105,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserHandleReference
xmlValidCtxtNormalizeAttributeValue
account
xmlSchemaValidateFacetWhtsp
+
acquire
_xmlDOMWrapCtxt
+xmlDOMWrapAcquireNsFunction
act
xmlStreamPush
xmlStreamPushAttr
xmlStreamPushNode
+
action
xmlDocSetRootElement
activate
xmlTextReaderSetParserProp
activated
DEBUG_MEMORY
xmlAutomataNewAllTrans
@@ -177,6 +180,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddChild
xmlAddNextSibling
xmlAddPrevSibling
+xmlDOMWrapCloneNode
xmlDocDumpFormatMemory
xmlDocDumpFormatMemoryEnc
xmlDocFormatDump
@@ -223,7 +227,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddChildList
xmlAddPrevSibling
xmlAddSibling
-
adoption
xmlDOMWrapCloneNode
affect
xmlKeepBlanksDefault
affiliation
_xmlSchemaElement
afraid
xmlEncodeEntities
@@ -280,7 +283,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewRMutex
xmlReallocLoc
xmlXPathObjectCopy
-
allocation
xmlBufferSetAllocationScheme
+
allocation
htmlNewParserCtxt
+xmlBufferSetAllocationScheme
xmlGetBufferAllocationScheme
xmlMallocAtomicLoc
xmlMallocLoc
@@ -476,6 +480,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseAttValue
xmlSAX2ResolveEntity
xmlSetExternalEntityLoader
+xmlXIncludeProcessFlagsData
applications
xmlSetGenericErrorFunc
xmlSetStructuredErrorFunc
applied
xmlHashCopy
diff --git a/doc/APIchunk11.html b/doc/APIchunk11.html index 515f882..dc764d5 100644 --- a/doc/APIchunk11.html +++ b/doc/APIchunk11.html @@ -190,7 +190,8 @@ A:link, A:visited, A:active { text-decoration: underline }
boundary
xmlParseElementChildrenContentDecl
xmlParseElementMixedContentDecl
bracket
xmlParseCharData
-
branch
xmlDOMWrapRemoveNode
+
branch
xmlDOMWrapCloneNode
+xmlDOMWrapRemoveNode
break
_xmlError
xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
diff --git a/doc/APIchunk12.html b/doc/APIchunk12.html index 1c552b1..b036fc8 100644 --- a/doc/APIchunk12.html +++ b/doc/APIchunk12.html @@ -193,6 +193,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserInputBufferCreateMem
xmlParserInputBufferCreateStatic
checked
XML_SCHEMAS_ELEM_INTERNAL_CHECKED
+_xmlEntity
xmlNodeGetBase
xmlNodeGetLang
xmlNodeGetSpacePreserve
@@ -269,6 +270,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCleanupOutputCallbacks
client
xmlKeepBlanksDefault
clone
xmlDOMWrapCloneNode
+
cloned
xmlDOMWrapCloneNode
close
htmlAutoCloseTag
htmlCtxtReadIO
htmlIsAutoClosed
@@ -413,33 +415,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlRecoverFile
xmlSAXParseFile
xmlSAXParseFileWithData
-
compiled
LIBXML_AUTOMATA_ENABLED
-LIBXML_EXPR_ENABLED
-LIBXML_LEGACY_ENABLED
-LIBXML_MODULES_ENABLED
-LIBXML_REGEXP_ENABLED
-LIBXML_SCHEMAS_ENABLED
-LIBXML_SCHEMATRON_ENABLED
-LIBXML_TEST_VERSION
-LIBXML_UNICODE_ENABLED
-_xmlSchemaAttribute
-_xmlSchemaElement
-_xmlSchemaFacet
-xmlAutomataCompile
-xmlCheckVersion
-xmlExpDump
-xmlExpMaxToken
-xmlGetLastError
-xmlHasFeature
-xmlPatterncompile
-xmlRegexpCompile
-xmlRegexpExec
-xmlRegexpIsDeterminist
-xmlRegexpPrint
-xmlSaveFile
-xmlSaveFormatFile
-xmlXPathCompiledEval
-xmlXPathDebugDumpCompExpr
compiled-in
xmlCleanupInputCallbacks
xmlCleanupOutputCallbacks
xmlPopInputCallbacks
@@ -604,6 +579,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidGetValidElements
construct
xmlParseElementChildrenContentDecl
construction
xmlCanonicPath
+xmlPathToURI
constructs
xmlExpParse
xmlParseNamespace
consumed
UTF8ToHtml
@@ -703,6 +679,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextWriterWriteDTDExternalEntityContents
contentspec
xmlParseElementContentDecl
xmlParseElementDecl
+
contexts
_xmlDOMWrapCtxt
contextual
xmlRelaxNGGetParserErrors
xmlRelaxNGSetParserErrors
xmlRelaxNGSetParserStructuredErrors
@@ -867,7 +844,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidityWarningFunc
cur
xmlXPathAxisFunc
currently
XML_SCHEMAS_INCLUDING_CONVERT_NS
-xmlDOMWrapCloneNode
xmlGcMemGet
xmlMemBlocks
xmlMemGet
diff --git a/doc/APIchunk13.html b/doc/APIchunk13.html index 5980cc2..1c9e865 100644 --- a/doc/APIchunk13.html +++ b/doc/APIchunk13.html @@ -395,7 +395,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDictReference
xmlDictSize
xmlExpNewCtxt
-
dicts
xmlDOMWrapCloneNode
did
XML_SCHEMAS_TYPE_BLOCK_DEFAULT
xmlTextReaderGetRemainder
xmlTextReaderStandalone
@@ -528,6 +527,7 @@ A:link, A:visited, A:active { text-decoration: underline }
don
XML_SCHEMAS_ANY_LAX
xlinkIsLink
xmlCreatePushParserCtxt
+xmlDOMWrapCloneNode
xmlNewDocNode
xmlNewDocNodeEatName
xmlParseStartTag
@@ -589,6 +589,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlShellCat
xmlShellDir
duplicate
xmlCanonicPath
+xmlPathToURI
duplicated
xmlRelaxNGNewDocParserCtxt
xmlXPathNodeSetFreeNs
duplicates
xmlSchemaCopyValue
diff --git a/doc/APIchunk14.html b/doc/APIchunk14.html index f5134af..dfe748d 100644 --- a/doc/APIchunk14.html +++ b/doc/APIchunk14.html @@ -70,6 +70,7 @@ A:link, A:visited, A:active { text-decoration: underline } resolveEntitySAXFunc
xmlSAX2ResolveEntity
elem
XML_SCHEMAS_ELEM_INTERNAL_CHECKED
+
elem-
_xmlDOMWrapCtxt
element-
xmlStreamPushNode
xmlXPathOrderDocElems
element-node
xmlDOMWrapReconcileNamespaces
@@ -234,7 +235,6 @@ A:link, A:visited, A:active { text-decoration: underline }
equal
xmlAddChild
xmlAddNextSibling
xmlAddPrevSibling
-xmlDOMWrapCloneNode
xmlStrEqual
xmlStrQEqual
xmlTextReaderConstName
@@ -290,7 +290,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDocSetRootElement
xmlParseInNodeContext
evaluate
xmlXPathEvalExpr
-
evaluated
xmlXPathEvalPredicate
+
evaluated
xmlXPathCompiledEvalToBoolean
+xmlXPathEvalPredicate
xmlXPathEvaluatePredicateResult
xmlXPtrNewContext
evaluating
xmlXPathEvalPredicate
@@ -382,13 +383,10 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStreamPush
xmlStreamPushAttr
xmlStreamPushNode
-
experimental
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
-xmlDOMWrapReconcileNamespaces
-xmlDOMWrapRemoveNode
explicitly
xmlSAXDefaultVersion
explored
xmlXPathAxisFunc
exposing
xmlTextReaderRead
+
expressing
xmlPathToURI
expressions
LIBXML_EXPR_ENABLED
LIBXML_REGEXP_ENABLED
xmlExpExpDerive
diff --git a/doc/APIchunk15.html b/doc/APIchunk15.html index 4ac0a55..5bd7b26 100644 --- a/doc/APIchunk15.html +++ b/doc/APIchunk15.html @@ -74,6 +74,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlShellLoad
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
@@ -89,6 +90,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCharEncOutFunc
xmlCheckFilename
xmlFileOpen
+xmlPathToURI
fallback
XINCLUDE_FALLBACK
docbSAXParseDoc
docbSAXParseFile
@@ -134,6 +136,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SKIP_IDS
_xmlError
xmlParseMisc
+xmlXIncludeProcessFlagsData
xmlXPathOrderDocElems
fields
XML_SAX2_MAGIC
_htmlElemDesc
@@ -145,6 +148,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlReadFile
xmlCanonicPath
xmlCtxtReadFile
+xmlPathToURI
xmlReadFile
xmlReaderForFile
xmlReaderNewFile
@@ -320,6 +324,7 @@ A:link, A:visited, A:active { text-decoration: underline }
fragments
xmlParseURIRaw
freeing
xmlCanonicPath
xmlParserInputDeallocate
+xmlPathToURI
frees
xmlBufferFree
xmlXPathContextSetCache
front
xmlValidateNCName
@@ -398,6 +403,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidCtxtNormalizeAttributeValue
xmlValidNormalizeAttributeValue
xmlXIncludeSetFlags
+
future
_xmlDOMWrapCtxt

A-B C-C D-E diff --git a/doc/APIchunk16.html b/doc/APIchunk16.html index 5585cd5..0f91dc8 100644 --- a/doc/APIchunk16.html +++ b/doc/APIchunk16.html @@ -287,6 +287,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlEntityValueLookup
htmlParseEntityRef
htmlNodePtr
htmlNodeStatus
+
htmlParserCtxtPtr
htmlNewParserCtxt
htmlParserOption
htmlCtxtReadDoc
htmlCtxtReadFd
htmlCtxtReadFile
diff --git a/doc/APIchunk17.html b/doc/APIchunk17.html index 071403e..9842c3a 100644 --- a/doc/APIchunk17.html +++ b/doc/APIchunk17.html @@ -153,6 +153,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCleanupOutputCallbacks
xmlPopInputCallbacks
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessTreeFlags
xmlXIncludeSetFlags
including
XML_SCHEMAS_INCLUDING_CONVERT_NS
@@ -357,6 +358,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_DETECT_IDS
XML_SKIP_IDS
htmlNewDocNoDtD
+htmlNewParserCtxt
xmlCharEncodingOutputFunc
xmlCreateEntitiesTable
xmlCreateEnumeration
@@ -403,6 +405,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlAddNextSibling
xmlAddPrevSibling
xmlCopyElementContent
+xmlDocSetRootElement
xmlFreeElementContent
xmlIsBaseChar
xmlIsBlank
@@ -425,6 +428,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewPI
xmlSAX2ProcessingInstruction
insufficient
xmlCanonicPath
+xmlPathToURI
intact
xmlParseURIRaw
integer
xmlStrcasecmp
xmlStrcmp
@@ -434,7 +438,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathFloorFunction
xmlXPathRoundFunction
xmlXPathStringFunction
-
intended
xmlSchemaNewStringValue
+
intended
_xmlDOMWrapCtxt
+xmlSchemaNewStringValue
+
intensively
xmlDOMWrapAdoptNode
+xmlDOMWrapReconcileNamespaces
+xmlDOMWrapRemoveNode
interact
xmlParseExternalID
interface
LIBXML_PATTERN_ENABLED
LIBXML_READER_ENABLED
@@ -480,7 +488,6 @@ A:link, A:visited, A:active { text-decoration: underline }
invoking
xmlGetLineNo
isinf
xmlXPathIsInf
isn
xmlRegisterCharEncodingHandler
-xmlXPathCastToString
isnan
xmlXPathIsNaN
issue
xmlEncodeEntities
issued
xlinkIsLink
diff --git a/doc/APIchunk18.html b/doc/APIchunk18.html index 60efc29..f965440 100644 --- a/doc/APIchunk18.html +++ b/doc/APIchunk18.html @@ -37,7 +37,8 @@ A:link, A:visited, A:active { text-decoration: underline } w-w x-x y-z -

Letter j:

just
htmlSetMetaEncoding
+

Letter j:

just
_xmlDOMWrapCtxt
+htmlSetMetaEncoding
inputPop
namePop
nodePop
@@ -46,7 +47,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCreateEntitiesTable
xmlCreateEnumeration
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
xmlHandleEntity
xmlNanoFTPInit
xmlNanoHTTPInit
@@ -82,6 +82,7 @@ A:link, A:visited, A:active { text-decoration: underline } _xmlSchemaType
_xmlSchemaWildcard
know
BAD_CAST
+xmlDOMWrapCloneNode
knowledge
htmlAttrAllowed
known
_xmlParserInput
xmlAllocParserInputBuffer
@@ -345,6 +346,7 @@ A:link, A:visited, A:active { text-decoration: underline } xlinkExtendedLinkFunk
xlinkExtendedLinkSetFunk
xmlCanonicPath
+xmlPathToURI
xmlSAX2SetDocumentLocator
xmlTextReaderLocatorBaseURI
xmlTextReaderLocatorLineNumber
diff --git a/doc/APIchunk19.html b/doc/APIchunk19.html index 8541fe1..5bb6121 100644 --- a/doc/APIchunk19.html +++ b/doc/APIchunk19.html @@ -79,6 +79,7 @@ A:link, A:visited, A:active { text-decoration: underline }
manipulation
LIBXML_TREE_ENABLED
many
_xmlParserInput
xmlXPathStringFunction
+
map
_xmlDOMWrapCtxt
maps
xmlTextReaderLookupNamespace
xmlTextWriterWriteDocType
xmlTextWriterWriteProcessingInstruction
@@ -306,7 +307,6 @@ A:link, A:visited, A:active { text-decoration: underline }
most
xmlC14NExecute
xmlGetFeaturesList
move
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
moved
xmlTextReaderMoveToElement
much
xmlReconciliateNs
multi-threaded
xmlSetGenericErrorFunc
diff --git a/doc/APIchunk2.html b/doc/APIchunk2.html index 93faeaf..e771872 100644 --- a/doc/APIchunk2.html +++ b/doc/APIchunk2.html @@ -74,6 +74,7 @@ A:link, A:visited, A:active { text-decoration: underline } ignorableWhitespaceSAXFunc
resolveEntity
resolveEntitySAXFunc
+xmlDOMWrapAcquireNsFunction
xmlDOMWrapReconcileNamespaces
xmlDOMWrapRemoveNode
xmlDocDumpFormatMemoryEnc
diff --git a/doc/APIchunk20.html b/doc/APIchunk20.html index ffcf125..2a9174d 100644 --- a/doc/APIchunk20.html +++ b/doc/APIchunk20.html @@ -65,6 +65,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NExecute
xmlCopyDoc
xmlCopyNode
+xmlDOMWrapAcquireNsFunction
xmlDocCopyNode
xmlFreeNsList
xmlGetProp
@@ -92,6 +93,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SUBSTITUTE_NONE
XML_SUBSTITUTE_PEREF
XML_SUBSTITUTE_REF
+_xmlDOMWrapCtxt
xmlCreatePushParserCtxt
xmlGetNsList
xmlInitCharEncodingHandlers
@@ -126,7 +128,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlTextReaderCurrentDoc
xmlValidCtxtNormalizeAttributeValue
xmlValidNormalizeAttributeValue
-xmlXPathCastToString
xmlXPathPopBoolean
xmlXPathPopExternal
xmlXPathPopNodeSet
@@ -179,7 +180,8 @@ A:link, A:visited, A:active { text-decoration: underline }
nillable
XML_SCHEMAS_ELEM_NILLABLE
xmlExpIsNillable
nod
xmlEntityReferenceFunc
-
node-
xmlDOMWrapRemoveNode
+
node-
_xmlDOMWrapCtxt
+xmlDOMWrapRemoveNode
xmlValidGetValidElements
node-set?
xmlXPathLocalNameFunction
xmlXPathNamespaceURIFunction
@@ -221,7 +223,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathBooleanFunction
none
XML_SCHEMAS_TYPE_VARIETY_ABSENT
getNamespace
-xmlDOMWrapCloneNode
xmlDecodeEntities
xmlGetLastChild
xmlOutputBufferCreateFilename
@@ -260,7 +261,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidNormalizeAttributeValue
xmlXPathNormalizeFunction
normalizing
xmlCurrentChar
-
normally
c
+
normally
_xmlNs
+c
xmlValidityErrorFunc
xmlValidityWarningFunc
notations
_xmlDtd
@@ -279,7 +281,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlDOMWrapReconcileNamespaces
ns-references
xmlDOMWrapReconcileNamespaces
xmlDOMWrapRemoveNode
-
nsDef
xmlDOMWrapAdoptNode
+
nsDef
_xmlDOMWrapCtxt
+xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
xmlDOMWrapRemoveNode
null
xmlHashScan3
diff --git a/doc/APIchunk21.html b/doc/APIchunk21.html index f503ffe..f7cf410 100644 --- a/doc/APIchunk21.html +++ b/doc/APIchunk21.html @@ -55,6 +55,7 @@ A:link, A:visited, A:active { text-decoration: underline }
obsolete
xmlNormalizeWindowsPath
obsolete:
XML_SCHEMAS_ELEM_TOPLEVEL
occupied
xmlCanonicPath
+xmlPathToURI
occur
XML_SCHEMAS_TYPE_VARIETY_ABSENT
xmlParseComment
xmlParseMarkupDecl
@@ -212,7 +213,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathNotEqualValues
xmlXPathSubValues
xmlXPathValueFlipSign
-
operations
xmlModuleClose
+
operations
_xmlDOMWrapCtxt
+xmlModuleClose
xmlModuleFree
xmlReconciliateNs
operator
xmlExpParse
diff --git a/doc/APIchunk22.html b/doc/APIchunk22.html index f4c8321..bd256cb 100644 --- a/doc/APIchunk22.html +++ b/doc/APIchunk22.html @@ -101,6 +101,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseAttValue
xmlSetGenericErrorFunc
xmlSetStructuredErrorFunc
+xmlXIncludeProcessFlagsData
xmlXPathEvalFunc
xmlXPathIntersection
passive
xmlNanoFTPGetConnection
@@ -122,6 +123,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNormalizeURIPath
xmlNormalizeWindowsPath
xmlParserGetDirectory
+xmlPathToURI
xmlShellPwd
xmlShellValidate
xmlTextReaderRelaxNGValidate
diff --git a/doc/APIchunk23.html b/doc/APIchunk23.html index 4a78224..effe8f5 100644 --- a/doc/APIchunk23.html +++ b/doc/APIchunk23.html @@ -353,6 +353,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlBufferShrink
xmlCatalogRemove
xmlDecodeEntities
+xmlDocSetRootElement
xmlEncodeEntities
xmlHashRemoveEntry
xmlHashRemoveEntry2
@@ -441,7 +442,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPOpen
xmlNanoHTTPOpenRedir
xmlNanoHTTPReturnCode
-
requested
xmlExternalEntityLoader
+
requested
xmlDOMWrapAcquireNsFunction
+xmlExternalEntityLoader
xmlHasFeature
xmlIsID
xmlMallocFunc
@@ -517,6 +519,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNanoHTTPContentLength
responsible
xmlC14NDocDumpMemory
xmlCanonicPath
+xmlPathToURI
restored
xmlTextReaderSetErrorHandler
xmlTextReaderSetStructuredErrorHandler
restrict
xmlParseExternalID
diff --git a/doc/APIchunk24.html b/doc/APIchunk24.html index 6ac493b..b737b67 100644 --- a/doc/APIchunk24.html +++ b/doc/APIchunk24.html @@ -67,6 +67,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlGcMemGet
xmlMemGet
xmlNanoHTTPFetch
+xmlSaveTree
xmlShell
xmlShellSave
saved
_htmlElemDesc
@@ -415,6 +416,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlValidatePushCData
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
@@ -492,7 +494,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNewDocNode
xmlNewDocNodeEatName
xmlTextWriterWriteRawLen
-
specialized
xmlGcMemGet
+
specialized
_xmlDOMWrapCtxt
+xmlGcMemGet
xmlGcMemSetup
specific
XML_CATALOG_PI
_xmlValidCtxt
@@ -755,6 +758,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlStringLenDecodeEntities
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
diff --git a/doc/APIchunk25.html b/doc/APIchunk25.html index befc7fa..848a69a 100644 --- a/doc/APIchunk25.html +++ b/doc/APIchunk25.html @@ -60,6 +60,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlIsAutoClosed
htmlSetMetaEncoding
take
xmlLockLibrary
+
taken
xmlDocSetRootElement
takes
xmlSchemaValidateFacetWhtsp
tatkes
xmlExpExpDerive
tell
XML_COMPLETE_ATTRS
@@ -96,11 +97,13 @@ A:link, A:visited, A:active { text-decoration: underline }
termination
xmlStrcat
xmlStrdup
terms
xmlBuildRelativeURI
-
test
xmlDOMWrapCloneNode
-xmlParserHandleReference
+
test
xmlParserHandleReference
xmlXPathEqualValues
xmlXPathNotEqualValues
tested
_xmlParserInput
+xmlDOMWrapAdoptNode
+xmlDOMWrapReconcileNamespaces
+xmlDOMWrapRemoveNode
testing
xmlRegexpCompile
text-
xmlStreamPushNode
xmlStreamWantsAnyNode
@@ -259,6 +262,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlPopInputCallbacks
xmlPushInput
xmlReconciliateNs
+xmlSaveTree
xmlSetTreeDoc
total
_xmlOutputBuffer
xmlGetFeaturesList
diff --git a/doc/APIchunk26.html b/doc/APIchunk26.html index be247f2..828659a 100644 --- a/doc/APIchunk26.html +++ b/doc/APIchunk26.html @@ -101,7 +101,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlHasProp
xmlXPathNextNamespace
unliked
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
unlink
xmlFreeNode
unlinked
xmlAddNextSibling
xmlAddPrevSibling
@@ -263,6 +262,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_SCHEMAS_TYPE_VARIETY_ATOMIC
XML_SCHEMAS_TYPE_VARIETY_LIST
XML_SCHEMAS_TYPE_VARIETY_UNION
+
various
_xmlDOMWrapCtxt
very
_htmlElemDesc
_xmlParserInput
xmlCharEncFirstLine
diff --git a/doc/APIchunk27.html b/doc/APIchunk27.html index 2473a34..b0e889a 100644 --- a/doc/APIchunk27.html +++ b/doc/APIchunk27.html @@ -47,7 +47,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCharEncInFunc
xmlCharEncOutFunc
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
warn
xmlCheckVersion
warning
XML_CAST_FPTR
_xmlValidCtxt
@@ -118,6 +117,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlMemShow
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
@@ -258,7 +258,8 @@ A:link, A:visited, A:active { text-decoration: underline }
would
_xmlError
htmlAutoCloseTag
xmlTextReaderGetRemainder
-
wrapper
xmlDOMWrapReconcileNamespaces
+
wrapper
xmlDOMWrapAcquireNsFunction
+xmlDOMWrapReconcileNamespaces
xmlDOMWrapRemoveNode
wraps
xmlTextReaderByteConsumed
write
xmlFileRead
diff --git a/doc/APIchunk28.html b/doc/APIchunk28.html index b5471fb..05bde7b 100644 --- a/doc/APIchunk28.html +++ b/doc/APIchunk28.html @@ -138,6 +138,7 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlDefaultSAXLocator
setDocumentLocator
setDocumentLocatorSAXFunc
xmlSAX2SetDocumentLocator
+
xmlDoc
_xmlNs
xmlDocCopyNodeList
xmlCopyNodeList
xmlDocNewPI
xmlNewPI
xmlDocPtr
xmlCopyDoc
@@ -196,6 +197,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlNodeListGetRawString
xmlNodeListGetString
xmlTextReaderValue
+xmlXPathCastToString
xmlFreeDoc
xmlTextReaderCurrentDoc
xmlFreeDocElementContent
xmlFreeElementContent
xmlFreeMutex
xmlFreeMutex
@@ -293,9 +295,12 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlNodeType
xmlTextReaderNodeType
xmlNotationPtr
xmlGetDtdNotationDesc
xmlNotationTablePtr
xmlCopyNotationTable
-
xmlNsPtr
getNamespace
+
xmlNs
xmlDOMWrapAcquireNsFunction
+
xmlNsPtr
_xmlDOMWrapCtxt
+getNamespace
xmlCopyNamespace
xmlCopyNamespaceList
+xmlDOMWrapAcquireNsFunction
xmlGetNsList
xmlOutputBufferClose
xmlSaveFileTo
xmlSaveFormatFileTo
@@ -432,7 +437,8 @@ A:link, A:visited, A:active { text-decoration: underline }
xmlURIFromPath
xmlNormalizeWindowsPath
xmlURIPtr
xmlParseURI
xmlParseURIRaw
-
xmlUnlinkNode
xmlFreeNode
+
xmlUnlinkNode
xmlDocSetRootElement
+xmlFreeNode
xmlUnlockLibrary
xmlUnlockLibrary
xmlValidCtxtPtr
xmlValidityErrorFunc
xmlValidityWarningFunc
diff --git a/doc/APIchunk3.html b/doc/APIchunk3.html index b1d3cae..cffe694 100644 --- a/doc/APIchunk3.html +++ b/doc/APIchunk3.html @@ -305,7 +305,8 @@ A:link, A:visited, A:active { text-decoration: underline }
Instruction
xmlParsePI
Instuction
XML_CATALOG_PI
Intended
xmlSnprintfElementContent
-
Internal
xmlParseMarkupDecl
+
Internal
_xmlDOMWrapCtxt
+xmlParseMarkupDecl

A-B C-C D-E diff --git a/doc/APIchunk4.html b/doc/APIchunk4.html index 561a743..b3c8364 100644 --- a/doc/APIchunk4.html +++ b/doc/APIchunk4.html @@ -200,6 +200,9 @@ A:link, A:visited, A:active { text-decoration: underline }

NOTE:
_xmlParserInput
htmlSetMetaEncoding
xmlCheckLanguageID
+xmlDOMWrapAdoptNode
+xmlDOMWrapReconcileNamespaces
+xmlDOMWrapRemoveNode
xmlGetProp
xmlInitCharEncodingHandlers
xmlNewChild
@@ -289,35 +292,6 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseNotationDecl
NotationType
xmlParseEnumeratedType
xmlParseNotationType
-
Note
ftpListCallback
-htmlElementAllowedHere
-xmlAddAttributeDecl
-xmlAutomataNewNegTrans
-xmlCheckUTF8
-xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
-xmlDOMWrapReconcileNamespaces
-xmlDocDumpFormatMemory
-xmlDocDumpFormatMemoryEnc
-xmlDocDumpMemoryEnc
-xmlDocFormatDump
-xmlExpNewOr
-xmlExpNewRange
-xmlExpNewSeq
-xmlHasNsProp
-xmlNanoHTTPContentLength
-xmlNodeDump
-xmlNodeDumpOutput
-xmlParseCharEncoding
-xmlParseEntityRef
-xmlRemoveProp
-xmlSAXDefaultVersion
-xmlSaveFormatFile
-xmlSaveFormatFileEnc
-xmlSchemaValidateFacetWhtsp
-xmlStrncat
-xmlTextReaderSetParserProp
-xmlValidateDtd
Note:
fatalErrorSAXFunc
xmlBuildRelativeURI
xmlCharEncodingOutputFunc
diff --git a/doc/APIchunk5.html b/doc/APIchunk5.html index 3ebc5a8..9a6b23f 100644 --- a/doc/APIchunk5.html +++ b/doc/APIchunk5.html @@ -67,7 +67,6 @@ A:link, A:visited, A:active { text-decoration: underline }
Open
xmlIOHTTPOpenW
Opens
xmlModuleOpen
OpticalCharacterRecognition
xmlUCSIsOpticalCharacterRecognition
-
Optimize
xmlDOMWrapCloneNode
Optional
_htmlElemDesc
Oriya
xmlUCSIsOriya
Osmanya
xmlUCSIsOsmanya
diff --git a/doc/APIchunk7.html b/doc/APIchunk7.html index 50949e1..ed7c4a2 100644 --- a/doc/APIchunk7.html +++ b/doc/APIchunk7.html @@ -263,7 +263,6 @@ A:link, A:visited, A:active { text-decoration: underline }
SupplementalMathematicalOperators
xmlUCSIsSupplementalMathematicalOperators
SupplementaryPrivateUseArea-A
xmlUCSIsSupplementaryPrivateUseAreaA
SupplementaryPrivateUseArea-B
xmlUCSIsSupplementaryPrivateUseAreaB
-
Support
xmlDOMWrapCloneNode
Syriac
xmlUCSIsSyriac
System
_xmlNotation
xmlExternalEntityLoader
diff --git a/doc/APIchunk8.html b/doc/APIchunk8.html index 82de64b..a980c2f 100644 --- a/doc/APIchunk8.html +++ b/doc/APIchunk8.html @@ -228,6 +228,7 @@ A:link, A:visited, A:active { text-decoration: underline }
Upgrade
xmlKeepBlanksDefault
Use
XML_COMPLETE_ATTRS
XML_DETECT_IDS
+_xmlDOMWrapCtxt
_xmlParserCtxt
xmlCopyNodeList
xmlGetProp
diff --git a/doc/APIchunk9.html b/doc/APIchunk9.html index 556b273..882ab74 100644 --- a/doc/APIchunk9.html +++ b/doc/APIchunk9.html @@ -72,11 +72,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseVersionNum

Letter W:

W3C
xmlTextReaderSchemaValidate
xmlTextReaderSchemaValidateCtxt
-
WARNING:
xmlDOMWrapAdoptNode
-xmlDOMWrapCloneNode
-xmlDOMWrapReconcileNamespaces
-xmlDOMWrapRemoveNode
-xmlSchemaGetCanonValue
+
WARNING:
xmlSchemaGetCanonValue
xmlSchemaNewStringValue
WFC:
xmlParseAttribute
xmlParseCharRef
@@ -113,6 +109,7 @@ A:link, A:visited, A:active { text-decoration: underline } notationDeclSAXFunc
unparsedEntityDecl
unparsedEntityDeclSAXFunc
+xmlDOMWrapCloneNode
xmlSAX2NotationDecl
xmlSAX2UnparsedEntityDecl
When
xmlHandleEntity
@@ -142,10 +139,12 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeNewContext
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
xmlXIncludeSetFlags
+
XInclude?
xmlDOMWrapCloneNode
XLINK_TYPE_NONE
xlinkIsLink
XML-1
xmlDetectCharEncoding
xmlValidateAttributeDecl
@@ -244,6 +243,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlSAXUserParseFile
xmlSetCompressMode
xmlSetDocCompressMode
+
Zlib
LIBXML_ZLIB_ENABLED

A-B C-C D-E diff --git a/doc/APIconstructors.html b/doc/APIconstructors.html index 9e91cfa..c4d348c 100644 --- a/doc/APIconstructors.html +++ b/doc/APIconstructors.html @@ -79,6 +79,7 @@ A:link, A:visited, A:active { text-decoration: underline }

Type htmlParserCtxtPtr:

htmlCreateFileParserCtxt
htmlCreateMemoryParserCtxt
htmlCreatePushParserCtxt
+htmlNewParserCtxt

Type htmlStatus:

htmlAttrAllowed
htmlElementStatusHere
htmlNodeStatus
@@ -207,6 +208,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseSystemLiteral
xmlParseVersionInfo
xmlParseVersionNum
+xmlPathToURI
xmlSaveUri
xmlScanName
xmlSchemaCollapseString
@@ -422,6 +424,7 @@ A:link, A:visited, A:active { text-decoration: underline }

Type xmlNsPtr:

getNamespace
xmlCopyNamespace
xmlCopyNamespaceList
+xmlDOMWrapAcquireNsFunction
xmlNewGlobalNs
xmlNewNs
xmlSearchNs
diff --git a/doc/APIfiles.html b/doc/APIfiles.html index 2a5af4b..e10fe00 100644 --- a/doc/APIfiles.html +++ b/doc/APIfiles.html @@ -66,6 +66,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlHandleOmittedElem
htmlIsAutoClosed
htmlIsScriptAttribute
+htmlNewParserCtxt
htmlNodePtr
htmlNodeStatus
htmlParseCharRef
@@ -651,6 +652,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_WITH_XINCLUDE
XML_WITH_XPATH
XML_WITH_XPTR
+XML_WITH_ZLIB
_xmlParserCtxt
_xmlParserInput
_xmlParserNodeInfo
@@ -1374,6 +1376,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCopyProp
xmlCopyPropList
xmlCreateIntSubset
+xmlDOMWrapAcquireNsFunction
xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
xmlDOMWrapCtxt
@@ -1543,6 +1546,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseURI
xmlParseURIRaw
xmlParseURIReference
+xmlPathToURI
xmlPrintURI
xmlSaveUri
xmlURI
@@ -1655,6 +1659,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeNewContext
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
@@ -3120,6 +3125,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_XINCLUDE_ENABLED
LIBXML_XPATH_ENABLED
LIBXML_XPTR_ENABLED
+LIBXML_ZLIB_ENABLED
WITHOUT_TRIO
WITH_TRIO
xmlCheckVersion
@@ -3273,6 +3279,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathCompExprPtr
xmlXPathCompile
xmlXPathCompiledEval
+xmlXPathCompiledEvalToBoolean
xmlXPathContext
xmlXPathContextPtr
xmlXPathContextSetCache
diff --git a/doc/APIfunctions.html b/doc/APIfunctions.html index 92489fb..fea4fd3 100644 --- a/doc/APIfunctions.html +++ b/doc/APIfunctions.html @@ -213,6 +213,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCreateEnumeration
xmlCreateIntSubset
xmlCtxtReadDoc
+xmlDOMWrapAcquireNsFunction
xmlDebugDumpString
xmlDictExists
xmlDictLookup
@@ -304,6 +305,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParseElementContentDecl
xmlParseExternalEntity
xmlParseExternalSubset
+xmlPathToURI
xmlPatterncompile
xmlReadDoc
xmlReaderForDoc
@@ -861,6 +863,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlThrDefSetStructuredErrorFunc
xmlValidityErrorFunc
xmlValidityWarningFunc
+xmlXIncludeProcessFlagsData
xmlXPathFuncLookupFunc
xmlXPathRegisterFuncLookup
xmlXPathRegisterVariableLookup
@@ -1063,7 +1066,8 @@ A:link, A:visited, A:active { text-decoration: underline } xmlOutputBufferWriteEscape
xmlSaveSetAttrEscape
xmlSaveSetEscape
-

Type xmlDOMWrapCtxtPtr:

xmlDOMWrapAdoptNode
+

Type xmlDOMWrapCtxtPtr:

xmlDOMWrapAcquireNsFunction
+xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
xmlDOMWrapFreeCtxt
xmlDOMWrapReconcileNamespaces
@@ -1214,6 +1218,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeNewContext
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXPathNewContext
xmlXPathOrderDocElems
xmlXPtrNewContext
@@ -1427,6 +1432,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlC14NIsVisibleCallback
xmlCopyProp
xmlCopyPropList
+xmlDOMWrapAcquireNsFunction
xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
xmlDOMWrapReconcileNamespaces
@@ -2161,9 +2167,11 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeProcessNode
xmlXIncludeSetFlags

Type xmlXPathCompExprPtr:

xmlXPathCompiledEval
+xmlXPathCompiledEvalToBoolean
xmlXPathDebugDumpCompExpr
xmlXPathFreeCompExpr

Type xmlXPathContextPtr:

xmlXPathCompiledEval
+xmlXPathCompiledEvalToBoolean
xmlXPathContextSetCache
xmlXPathCtxtCompile
xmlXPathEval
diff --git a/doc/APIsymbols.html b/doc/APIsymbols.html index 7e1ba3c..c6c5265 100644 --- a/doc/APIsymbols.html +++ b/doc/APIsymbols.html @@ -94,6 +94,7 @@ A:link, A:visited, A:active { text-decoration: underline } LIBXML_XINCLUDE_ENABLED
LIBXML_XPATH_ENABLED
LIBXML_XPTR_ENABLED
+LIBXML_ZLIB_ENABLED

Letter M:

MOVETO_ENDTAG
MOVETO_STARTTAG

Letter S:

SKIP_EOL
@@ -1320,6 +1321,7 @@ A:link, A:visited, A:active { text-decoration: underline } XML_WITH_XINCLUDE
XML_WITH_XPATH
XML_WITH_XPTR
+XML_WITH_ZLIB
XML_XINCLUDE_BUILD_FAILED
XML_XINCLUDE_DEPRECATED_NS
XML_XINCLUDE_END
@@ -1566,6 +1568,7 @@ A:link, A:visited, A:active { text-decoration: underline } htmlIsScriptAttribute
htmlNewDoc
htmlNewDocNoDtD
+htmlNewParserCtxt
htmlNodeDump
htmlNodeDumpFile
htmlNodeDumpFileFormat
@@ -1846,6 +1849,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlCtxtResetPush
xmlCtxtUseOptions
xmlCurrentChar
+xmlDOMWrapAcquireNsFunction
xmlDOMWrapAdoptNode
xmlDOMWrapCloneNode
xmlDOMWrapCtxt
@@ -2472,6 +2476,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlParserValidityWarning
xmlParserVersion
xmlParserWarning
+xmlPathToURI
xmlPattern
xmlPatternFlags
xmlPatternFromRoot
@@ -3258,6 +3263,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXIncludeNewContext
xmlXIncludeProcess
xmlXIncludeProcessFlags
+xmlXIncludeProcessFlagsData
xmlXIncludeProcessNode
xmlXIncludeProcessTree
xmlXIncludeProcessTreeFlags
@@ -3289,6 +3295,7 @@ A:link, A:visited, A:active { text-decoration: underline } xmlXPathCompareValues
xmlXPathCompile
xmlXPathCompiledEval
+xmlXPathCompiledEvalToBoolean
xmlXPathConcatFunction
xmlXPathContainsFunction
xmlXPathContext
diff --git a/doc/DOM.html b/doc/DOM.html index a637399..52f1139 100644 --- a/doc/DOM.html +++ b/doc/DOM.html @@ -7,11 +7,11 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -DOM Principles
Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

The XML C parser and toolkit of Gnome

DOM Principles

Developer Menu
API Indexes
Related links

DOMstands for the -DocumentObjectModel; this is an API for accessing XML or HTML -structureddocuments.Native support for DOM in Gnome is on the way (module -gnome-dom),and will bebased on gnome-xml. This will be a far cleaner -interface tomanipulate XMLfiles within Gnome since it won't expose the -internalstructure.

The current DOM implementation on top of libxml2 is the gdome2 Gnome module,thisis -a full DOM interface, thanks to Paolo Casarini, check the Gdome2 -homepageformoreinformations.

Daniel Veillard

+DOM Principles
Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
Made with Libxml2 Logo

The XML C parser and toolkit of Gnome

DOM Principles

Developer Menu
API Indexes
Related links

DOM stands for the Document +Object Model; this is an API for accessing XML or HTML structured +documents. Native support for DOM in Gnome is on the way (module gnome-dom), +and will be based on gnome-xml. This will be a far cleaner interface to +manipulate XML files within Gnome since it won't expose the internal +structure.

The current DOM implementation on top of libxml2 is the gdome2 Gnome module, this +is a full DOM interface, thanks to Paolo Casarini, check the Gdome2 homepage for more +informations.

Daniel Veillard

diff --git a/doc/FAQ.html b/doc/FAQ.html index cdc6585..0d5ded6 100644 --- a/doc/FAQ.html +++ b/doc/FAQ.html @@ -12,49 +12,53 @@ A:link, A:visited, A:active { text-decoration: underline }

  • Compilation
  • Developer corner
  • License(s)

    1. Licensing Terms for libxml -

      libxml2 is released under the MITLicense;see - the file Copyright in the distribution for the precisewording

      +

      libxml2 is released under the MIT + License; see the file Copyright in the distribution for the precise + wording

    2. Can I embed libxml2 in a proprietary application ? -

      Yes. The MIT License allows you to keep proprietary the changesyoumade - to libxml, but it would be graceful to send-back bug fixesandimprovements - as patches for possible incorporation in themaindevelopment tree.

      +

      Yes. The MIT License allows you to keep proprietary the changes you + made to libxml, but it would be graceful to send-back bug fixes and + improvements as patches for possible incorporation in the main + development tree.

    3. -

    Installation

    1. Do - NotUselibxml1, use libxml2
    2. -
    3. Where can I get libxml? -

      The original distribution comes from xmlsoft.orgor gnome.org

      -

      Most Linux and BSD distributions include libxml, this is - probablythesafer way for end-users to use libxml.

      +

    Installation

    1. Do Not Use + libxml1, use libxml2
    2. +
    3. Where can I get libxml ? +

      The original distribution comes from xmlsoft.org or gnome.org

      +

      Most Linux and BSD distributions include libxml, this is probably the + safer way for end-users to use libxml.

      David Doolin provides precompiled Windows versions at http://www.ce.berkeley.edu/~doolin/code/libxmlwin32/

    4. I see libxml and libxml2 releases, which one should I install ? -
      • If you are not constrained by backward compatibility - issueswithexisting applications, install libxml2 only
      • -
      • If you are not doing development, you can safely - installboth.Usually the packages libxmland libxml2arecompatible(this - is not the case for development packages).
      • -
      • If you are a developer and your system provides - separatepackagingfor shared libraries and the development components, - it ispossibleto install libxml and libxml2, and also libxml-develandlibxml2-develtoofor - libxml2 >= 2.3.0
      • -
      • If you are developing a new application, please - developagainstlibxml2(-devel)
      • +
        • If you are not constrained by backward compatibility issues with + existing applications, install libxml2 only
        • +
        • If you are not doing development, you can safely install both. + Usually the packages libxml and libxml2 are + compatible (this is not the case for development packages).
        • +
        • If you are a developer and your system provides separate packaging + for shared libraries and the development components, it is possible + to install libxml and libxml2, and also libxml-devel + and libxml2-devel + too for libxml2 >= 2.3.0
        • +
        • If you are developing a new application, please develop against + libxml2(-devel)
      • I can't install the libxml package, it conflicts with libxml0 -

        You probably have an old libxml0 package used to provide - thesharedlibrary for libxml.so.0, you can probably safely remove it. - Thelibxmlpackages provided on xmlsoft.orgprovidelibxml.so.0

        +

        You probably have an old libxml0 package used to provide the shared + library for libxml.so.0, you can probably safely remove it. The libxml + packages provided on xmlsoft.org provide + libxml.so.0

      • -
      • I can't install the libxml(2) RPM package due - tofaileddependencies -

        The most generic solution is to re-fetch the latest src.rpm - ,andrebuild it locally with

        +
      • I can't install the libxml(2) RPM package due to failed + dependencies +

        The most generic solution is to re-fetch the latest src.rpm , and + rebuild it locally with

        rpm --rebuild libxml(2)-xxx.src.rpm.

        -

        If everything goes well it will generate two binary rpm - packages(oneproviding the shared libs and xmllint, and the other one, - the-develpackage, providing includes, static libraries and scripts needed - tobuildapplications with libxml(2)) that you can install locally.

        +

        If everything goes well it will generate two binary rpm packages (one + providing the shared libs and xmllint, and the other one, the -devel + package, providing includes, static libraries and scripts needed to build + applications with libxml(2)) that you can install locally.

    Compilation

    1. What is the process to compile libxml2 ?

      As most UNIX libraries libxml2 follows the "standard":

      @@ -65,106 +69,109 @@ A:link, A:visited, A:active { text-decoration: underline }

      ./configure [possible options]

      make

      make install

      -

      At that point you may have to rerun ldconfig or a similar - utilitytoupdate your list of installed shared libs.

      +

      At that point you may have to rerun ldconfig or a similar utility to + update your list of installed shared libs.

    2. What other libraries are needed to compile/install libxml2 ? -

      Libxml2 does not require any other library, the normal C ANSIAPIshould - be sufficient (please report any violation to this rule youmayfind).

      -

      However if found at configuration time libxml2 will detect and - usethefollowing libs:

      -
      • libz:ahighly - portable and available widely compression library.
      • -
      • iconv: a powerful character encoding conversion library. - Itisincluded by default in recent glibc libraries, so it doesn't - needtobe installed specifically on Linux. It now seems a partofthe - official UNIXspecification. Here is one implementation - ofthelibrarywhich source can be found here.
      • +

        Libxml2 does not require any other library, the normal C ANSI API + should be sufficient (please report any violation to this rule you may + find).

        +

        However if found at configuration time libxml2 will detect and use the + following libs:

        +
        • libz : a + highly portable and available widely compression library.
        • +
        • iconv: a powerful character encoding conversion library. It is + included by default in recent glibc libraries, so it doesn't need to + be installed specifically on Linux. It now seems a part + of the official UNIX specification. Here is one implementation of the + library which source can be found here.
      • Make check fails on some platforms -

        Sometimes the regression tests' results don't completely matchthevalue - produced by the parser, and the makefile uses diff to printthedelta. On - some platforms the diff return breaks the compilationprocess;if the diff - is small this is probably not a serious problem.

        -

        Sometimes (especially on Solaris) make checks fail due tolimitationsin - make. Try using GNU-make instead.

        +

        Sometimes the regression tests' results don't completely match the + value produced by the parser, and the makefile uses diff to print the + delta. On some platforms the diff return breaks the compilation process; + if the diff is small this is probably not a serious problem.

        +

        Sometimes (especially on Solaris) make checks fail due to limitations + in make. Try using GNU-make instead.

      • I use the CVS version and there is no configure script -

        The configure script (and other Makefiles) are generated. - Usetheautogen.sh script to regenerate the configure script - andMakefiles,like:

        +

        The configure script (and other Makefiles) are generated. Use the + autogen.sh script to regenerate the configure script and Makefiles, + like:

        ./autogen.sh --prefix=/usr --disable-shared

      • I have troubles when running make tests with gcc-3.0 -

        It seems the initial release of gcc-3.0 has a problem withtheoptimizer - which miscompiles the URI module. Please useanothercompiler.

        +

        It seems the initial release of gcc-3.0 has a problem with the + optimizer which miscompiles the URI module. Please use another + compiler.

      • -

    Developercorner

    1. Troubles compiling or linking programs using libxml2 -

      Usually the problem comes from the fact that the compiler - doesn'tgetthe right compilation or linking flags. There is a small - shellscriptxml2-configwhich is installed as part of - libxml2usualinstall process which provides those flags. Use

      +

    Developer corner

    1. Troubles compiling or linking programs using libxml2 +

      Usually the problem comes from the fact that the compiler doesn't get + the right compilation or linking flags. There is a small shell script + xml2-config which is installed as part of libxml2 usual + install process which provides those flags. Use

      xml2-config --cflags

      to get the compilation flags and

      xml2-config --libs

      -

      to get the linker flags. Usually this is done directly fromtheMakefile - as:

      +

      to get the linker flags. Usually this is done directly from the + Makefile as:

      CFLAGS=`xml2-config --cflags`

      LIBS=`xml2-config --libs`

    2. -
    3. I want to install my own copy of libxml2 in my home - directoryandlink my programs against it, but it doesn't work -

      There are many different ways to accomplish this. Here is one waytodo - this under Linux. Suppose your home directory - is/home/user.Then:

      +
    4. I want to install my own copy of libxml2 in my home directory and + link my programs against it, but it doesn't work +

      There are many different ways to accomplish this. Here is one way to + do this under Linux. Suppose your home directory is /home/user. + Then:

      • Create a subdirectory, let's call it myxml
      • unpack the libxml2 distribution into that subdirectory
      • -
      • chdir into the unpacked - distribution(/home/user/myxml/libxml2)
      • -
      • configure the library using the - "--prefix"switch,specifying an installation - subdirectoryin/home/user/myxml, e.g. -

        ./configure - --prefix/home/user/myxml/xmlinst{otherconfiguration - options}

        +
      • chdir into the unpacked distribution + (/home/user/myxml/libxml2 )
      • +
      • configure the library using the "--prefix" switch, + specifying an installation subdirectory in + /home/user/myxml, e.g. +

        ./configure --prefix /home/user/myxml/xmlinst {other + configuration options}

      • -
      • now run makefollowed by make install
      • -
      • At this point, the installation subdirectory contains - thecomplete"private" include files, library files and binary - programfiles (e.g.xmllint), located in -

        /home/user/myxml/xmlinst/lib,/home/user/myxml/xmlinst/includeand - /home/user/myxml/xmlinst/bin

        +
      • now run make followed by make install
      • +
      • At this point, the installation subdirectory contains the complete + "private" include files, library files and binary program files (e.g. + xmllint), located in +

        /home/user/myxml/xmlinst/lib, + /home/user/myxml/xmlinst/include and + /home/user/myxml/xmlinst/bin

        respectively.
      • -
      • In order to use this "private" library, you should first add - ittothe beginning of your default PATH (so that your own - privateprogramfiles such as xmllint will be used instead of the - normalsystemones). To do this, the Bash command would be +
      • In order to use this "private" library, you should first add it to + the beginning of your default PATH (so that your own private program + files such as xmllint will be used instead of the normal system + ones). To do this, the Bash command would be

        export PATH=/home/user/myxml/xmlinst/bin:$PATH

      • -
      • Now suppose you have a program test1.cthat - youwouldlike to compile with your "private" library. Simply compile - itusingthe command +
      • Now suppose you have a program test1.c that you would + like to compile with your "private" library. Simply compile it using + the command

        gcc `xml2-config --cflags --libs` -o test test.c

        - Note that, because your PATH has been set - with/home/user/myxml/xmlinst/binat the beginning, - thexml2-configprogram which you just installed will be used instead - ofthe systemdefault one, and this will automaticallyget - thecorrectlibraries linked with your program.
      • + Note that, because your PATH has been set with + /home/user/myxml/xmlinst/bin at the beginning, the xml2-config + program which you just installed will be used instead of the system + default one, and this will automatically get the correct + libraries linked with your program.
    5. xmlDocDump() generates output on one line. -

      Libxml2 will not inventspaces in the content - ofadocument since all spaces in the content of a - documentaresignificant. If you build a tree from the API - andwantindentation:

      +

      Libxml2 will not invent spaces in the content of a + document since all spaces in the content of a document are + significant. If you build a tree from the API and want + indentation:

      1. the correct way is to generate those yourself too.
      2. -
      3. the dangerous way is to ask libxml2 to add those blanks - toyourcontent modifying the content of your document - intheprocess. The result may not be what you expect. - ThereisNOway to guarantee that such a - modificationwon'taffect other parts of the content of your document. - See xmlKeepBlanksDefault()andxmlSaveFormatFile()
      4. +
      5. the dangerous way is to ask libxml2 to add those blanks to your + content modifying the content of your document in the + process. The result may not be what you expect. There is + NO way to guarantee that such a modification won't + affect other parts of the content of your document. See xmlKeepBlanksDefault + () and xmlSaveFormatFile + ()
    6. Extra nodes in the document:

      For a XML file as below:

      @@ -173,10 +180,10 @@ A:link, A:visited, A:active { text-decoration: underline } <NODE CommFlag="0"/> <NODE CommFlag="1"/> </PLAN> -

      after parsing it with - thefunctionpxmlDoc=xmlParseFile(...);

      -

      I want to the get the content of the first node (node - withtheCommFlag="0")

      +

      after parsing it with the function + pxmlDoc=xmlParseFile(...);

      +

      I want to the get the content of the first node (node with the + CommFlag="0")

      so I did it as following;

      xmlNodePtr pnode;
       pnode=pxmlDoc->children->children;
      @@ -184,62 +191,63 @@ pnode=pxmlDoc->children->children;
      pnode=pxmlDoc->children->children->next;

      then it works. Can someone explain it to me.

      -

      In XML all characters in the content of the document - aresignificantincluding blanks and formatting - linebreaks.

      -

      The extra nodes you are wondering about are just that, text - nodeswiththe formatting spaces which are part of the document but that - peopletendto forget. There is a function xmlKeepBlanksDefault()toremove - those at parse time, but that's an heuristic, and itsuse should belimited - to cases where you are certain there is nomixed-content in - thedocument.

      +

      In XML all characters in the content of the document are significant + including blanks and formatting line breaks.

      +

      The extra nodes you are wondering about are just that, text nodes with + the formatting spaces which are part of the document but that people tend + to forget. There is a function xmlKeepBlanksDefault + () to remove those at parse time, but that's an heuristic, and its + use should be limited to cases where you are certain there is no + mixed-content in the document.

    7. -
    8. I get compilation errors of existing code like - whenaccessingrootor child - fieldsofnodes. -

      You are compiling code developed for libxml version 1 and - usingalibxml2 development environment. Either switch back to libxml v1 - develoreven better fix the code to compile with libxml2 (or both) by following the instructions.

      +
    9. I get compilation errors of existing code like when accessing + root or child fields of nodes. +

      You are compiling code developed for libxml version 1 and using a + libxml2 development environment. Either switch back to libxml v1 devel or + even better fix the code to compile with libxml2 (or both) by following the instructions.

    10. -
    11. I get compilation errors about - nonexistingxmlRootNodeorxmlChildrenNodefields. -

      The source code you are using has been upgradedto be able to compile with both - libxmlandlibxml2, but you need to install a more recent - version:libxml(-devel)>= 1.8.8 or libxml2(-devel) >= 2.1.0

      +
    12. I get compilation errors about non existing + xmlRootNode or xmlChildrenNode + fields. +

      The source code you are using has been upgraded to be able to compile with both libxml + and libxml2, but you need to install a more recent version: + libxml(-devel) >= 1.8.8 or libxml2(-devel) >= 2.1.0

    13. XPath implementation looks seriously broken -

      XPath implementation prior to 2.3.0 was really incomplete. Upgrade - toarecent version, there are no known bugs in the current version.

      +

      XPath implementation prior to 2.3.0 was really incomplete. Upgrade to + a recent version, there are no known bugs in the current version.

    14. The example provided in the web page does not compile. -

      It's hard to maintain the documentation in sync with - thecode<grin/> ...

      -

      Check the previous points 1/ and 2/ raised before, and - pleasesendpatches.

      +

      It's hard to maintain the documentation in sync with the code + <grin/> ...

      +

      Check the previous points 1/ and 2/ raised before, and please send + patches.

    15. -
    16. Where can I get more examples and information than provided - ontheweb page? -

      Ideally a libxml2 book would be nice. I have no such plan ... - Butyoucan:

      -
      • check more deeply the existinggenerated doc
      • -
      • have a look at the - setofexamples.
      • -
      • look for examples of use for libxml2 function using the - Gnomecode.For example the following will query the full Gnome CVS - base fortheuse of the xmlAddChild()function: +
      • Where can I get more examples and information than provided on the + web page? +

        Ideally a libxml2 book would be nice. I have no such plan ... But you + can:

        +
        • check more deeply the existing + generated doc
        • +
        • have a look at the set of + examples.
        • +
        • look for examples of use for libxml2 function using the Gnome code. + For example the following will query the full Gnome CVS base for the + use of the xmlAddChild() function:

          http://cvs.gnome.org/lxr/search?string=xmlAddChild

          -

          This may be slow, a large hardware donation to the - gnomeprojectcould cure this :-)

          +

          This may be slow, a large hardware donation to the gnome project + could cure this :-)

        • -
        • Browsethelibxml2 - source, I try to write code as clean and documentedaspossible, so - looking at it may be helpful. In particular the codeofxmllint.c and - of the various testXXX.c test programs shouldprovidegood examples of - how to do things with the library.
        • +
        • Browse + the libxml2 source , I try to write code as clean and documented + as possible, so looking at it may be helpful. In particular the code + of xmllint.c and of the various testXXX.c test programs should + provide good examples of how to do things with the library.
      • What about C++ ? -

        libxml2 is written in pure C in order to allow easy reuse on anumberof - platforms, including embedded systems. I don't intend to converttoC++.

        +

        libxml2 is written in pure C in order to allow easy reuse on a number + of platforms, including embedded systems. I don't intend to convert to + C++.

        There is however a C++ wrapper which may fulfill your needs:

      • How to validate a document a posteriori ? -

        It is possible to validate documents which had not been - validatedatinitial parsing time or documents which have been built - fromscratchusing the API. Use the xmlValidateDtd()function.It - is also possible to simply add a DTD to an existingdocument:

        +

        It is possible to validate documents which had not been validated at + initial parsing time or documents which have been built from scratch + using the API. Use the xmlValidateDtd() + function. It is also possible to simply add a DTD to an existing + document:

        xmlDocPtr doc; /* your existing document */
         xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
         
        @@ -268,10 +277,10 @@ xmlDtdPtr dtd = xmlParseDTD(NULL, filename_of_dtd); /* parse the DTD */
                   
      • So what is this funky "xmlChar" used all the time? -

        It is a null terminated sequence of utf-8 characters. And - onlyutf-8!You need to convert strings encoded in different ways to - utf-8beforepassing them to the API. This can be accomplished with the - iconvlibraryfor instance.

        +

        It is a null terminated sequence of utf-8 characters. And only utf-8! + You need to convert strings encoded in different ways to utf-8 before + passing them to the API. This can be accomplished with the iconv library + for instance.

      • etc ...

    Daniel Veillard

    diff --git a/doc/Makefile.in b/doc/Makefile.in index 70bd86e..56ec810 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -149,6 +149,7 @@ RDL_LIBS = @RDL_LIBS@ READER_TEST = @READER_TEST@ RELDATE = @RELDATE@ RM = @RM@ +SED = @SED@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STATIC_BINARIES = @STATIC_BINARIES@ @@ -177,6 +178,7 @@ THREAD_CFLAGS = @THREAD_CFLAGS@ THREAD_LIBS = @THREAD_LIBS@ U = @U@ VERSION = @VERSION@ +WGET = @WGET@ WIN32_EXTRA_LDFLAGS = @WIN32_EXTRA_LDFLAGS@ WIN32_EXTRA_LIBADD = @WIN32_EXTRA_LIBADD@ WITH_C14N = @WITH_C14N@ @@ -212,6 +214,7 @@ WITH_WRITER = @WITH_WRITER@ WITH_XINCLUDE = @WITH_XINCLUDE@ WITH_XPATH = @WITH_XPATH@ WITH_XPTR = @WITH_XPTR@ +WITH_ZLIB = @WITH_ZLIB@ XINCLUDE_OBJ = @XINCLUDE_OBJ@ XMLLINT = @XMLLINT@ XML_CFLAGS = @XML_CFLAGS@ diff --git a/doc/XMLinfo.html b/doc/XMLinfo.html index 5314fac..474f9c1 100644 --- a/doc/XMLinfo.html +++ b/doc/XMLinfo.html @@ -7,9 +7,9 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -XML
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    XML

    Main Menu
    Related links

    XML is astandardformarkup-based -structured documents. Here is an example -XMLdocument:

    <?xml version="1.0"?>
    +XML
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    XML

    Main Menu
    Related links

    XML is a standard for +markup-based structured documents. Here is an example XML +document:

    <?xml version="1.0"?>
     <EXAMPLE prop1="gnome is great" prop2="&amp; linux too">
       <head>
        <title>Welcome to Gnome</title>
    @@ -20,17 +20,16 @@ XMLdocument:

    <?xml version="1.0"?>
        <image href="linus.gif"/>
        <p>...</p>
       </chapter>
    -</EXAMPLE>

    The first line specifies that it is an XML document and -givesusefulinformation about its encoding. Then the rest of the document is -atextformat whose structure is specified by tags between -brackets.Eachtag opened has to be closed. XML is pedantic -about this.However, ifa tag is empty (no content), a single tag can serve as -both theopening andclosing tag if it ends with />rather -thanwith>. Note that, for example, the image tag has no -content(justan attribute) and is closed by ending the tag -with/>.

    XML can be applied successfully to a wide range of tasks, ranging -fromlongterm structured document maintenance (where it follows the steps -ofSGML) tosimple data encoding mechanisms like configuration file -formatting(glade),spreadsheets (gnumeric), or even shorter lived documents -such asWebDAV whereit is used to encode remote calls between a client and -aserver.

    Daniel Veillard

    +</EXAMPLE>

    The first line specifies that it is an XML document and gives useful +information about its encoding. Then the rest of the document is a text +format whose structure is specified by tags between brackets. Each +tag opened has to be closed. XML is pedantic about this. However, if +a tag is empty (no content), a single tag can serve as both the opening and +closing tag if it ends with /> rather than with +>. Note that, for example, the image tag has no content (just +an attribute) and is closed by ending the tag with />.

    XML can be applied successfully to a wide range of tasks, ranging from +long term structured document maintenance (where it follows the steps of +SGML) to simple data encoding mechanisms like configuration file formatting +(glade), spreadsheets (gnumeric), or even shorter lived documents such as +WebDAV where it is used to encode remote calls between a client and a +server.

    Daniel Veillard

    diff --git a/doc/XSLT.html b/doc/XSLT.html index 4a8c09b..657ead3 100644 --- a/doc/XSLT.html +++ b/doc/XSLT.html @@ -7,8 +7,7 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -XSLT
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    XSLT

    Main Menu
    Related links

    Check the separate libxslt page

    XSL Transformations, is -alanguagefor transforming XML documents into other XML documents -(orHTML/textualoutput).

    A separate library called libxslt is available implementing -XSLT-1.0forlibxml2. This module "libxslt" too can be found in the Gnome CVS -base.

    You can check the progresses on the libxslt Changelog.

    Daniel Veillard

    +XSLT
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    XSLT

    Main Menu
    Related links

    Check the separate libxslt page

    XSL Transformations, is a +language for transforming XML documents into other XML documents (or +HTML/textual output).

    A separate library called libxslt is available implementing XSLT-1.0 for +libxml2. This module "libxslt" too can be found in the Gnome CVS base.

    You can check the progresses on the libxslt Changelog.

    Daniel Veillard

    diff --git a/doc/apibuild.py b/doc/apibuild.py index f1a795f..1e73725 100755 --- a/doc/apibuild.py +++ b/doc/apibuild.py @@ -49,6 +49,7 @@ ignored_files = { "runtest.c": "regression tests program", "runsuite.c": "regression tests program", "tst.c": "not part of the library", + "test.c": "not part of the library", "testdso.c": "test for dynamid shared libraries", } diff --git a/doc/architecture.html b/doc/architecture.html index 7809bc6..906c5b2 100644 --- a/doc/architecture.html +++ b/doc/architecture.html @@ -7,8 +7,8 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -libxml2 architecture
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    libxml2 architecture

    Developer Menu
    API Indexes
    Related links

    Libxml2 is made of multiple components; some of them are optional, -andmostof the block interfaces are public. The main components are:

    • an Input/Output layer
    • +libxml2 architecture
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      libxml2 architecture

      Developer Menu
      API Indexes
      Related links

      Libxml2 is made of multiple components; some of them are optional, and +most of the block interfaces are public. The main components are:

      • an Input/Output layer
      • FTP and HTTP client layers (optional)
      • an Internationalization layer managing the encodings support
      • a URI module
      • @@ -17,6 +17,7 @@ andmostof the block interfaces are public. The main components are:

        • a
        • a SAX tree module to build an in-memory DOM representation
        • a tree module to manipulate the DOM representation
        • a validation module using the DOM representation (optional)
        • -
        • an XPath module for global lookup in a DOM representation(optional)
        • +
        • an XPath module for global lookup in a DOM representation + (optional)
        • a debug module (optional)

        Graphically this gives the following:

        a graphical view of the various

        Daniel Veillard

      diff --git a/doc/bugs.html b/doc/bugs.html index c755d00..6415c85 100644 --- a/doc/bugs.html +++ b/doc/bugs.html @@ -7,62 +7,62 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -Reporting bugs and getting help
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      Reporting bugs and getting help

      Main Menu
      Related links

      Well, bugs or missing features are always possible, and I will make -apointof fixing them in a timely fashion. The best way to report a bug is -touse theGnomebugtracking -database(make sure to use the "libxml2" module name). Ilook atreports -there regularly and it's good to have a reminder when a bugis stillopen. Be -sure to specify that the bug is for the package libxml2.

      For small problems you can try to get help on IRC, the #xml -channelonirc.gnome.org (port 6667) usually have a few person subscribed which -mayhelp(but there is no garantee and if a real issue is raised it should go -onthemailing-list for archival).

      There is also a mailing-list xml@gnome.orgfor libxml, with an on-line archive(old). To subscribe to this -list,pleasevisit the associatedWebpage -andfollow the instructions. Do not send code, I won'tdebug -it(but patches are really appreciated!).

      Please note that with the current amount of virus and SPAM, sending -mailtothe list without being subscribed won't work. There is *far too -manybounces*(in the order of a thousand a day !) I cannot approve them -manuallyanymore.If your mail to the list bounced waiting for administrator -approval,it isLOST ! Repost it and fix the problem triggering the error. Also -pleasenotethat emails -withalegal warning asking to not copy or redistribute freely the -informationstheycontainare NOTacceptable for the -mailing-list,suchmail will as much as possible be discarded automatically, -and are lesslikelyto be answered if they made it to the list, DO -NOTpost tothe list from an email address where such legal -requirements areautomaticallyadded, get private paying support if you can't -shareinformations.

      Check the following beforeposting:

      • Read the FAQand usethesearch engineto get information related to - your problem.
      • -
      • Make sure you are using - arecentversion, and that the problem still shows up in a - recentversion.
      • -
      • Check the listarchivesto see if - theproblem was reported already. In this casethere is probably a - fixavailable, similarly check the registeredopenbugs.
      • -
      • Make sure you can reproduce the bug with xmllint or one of - thetestprograms found in source in the distribution.
      • -
      • Please send the command showing the error as well as the input - (asanattachment)
      • -

      Then send the bug with associated information to reproduce it to the xml@gnome.orglist; if it's -reallylibxmlrelated I will approve it. Please do not send mail to me -directly, itmakesthings really hard to track and in some cases I am not the -best persontoanswer a given question, ask on the list.

      To be really clear about support:

      • Support or help requests MUST be senttothe - list or on bugzillain case of problems, so that theQuestionand - Answers can be shared publicly. Failing to do so carries - theimplicitmessage "I want free support but I don't want to share - thebenefits withothers" and is not welcome. I will automatically - Carbon-Copythexml@gnome.org mailing list for any technical reply made - about libxml2orlibxslt.
      • -
      • There is no garantee of - support,ifyour question remains unanswered after a week, repost - it, making sureyougave all the detail needed and the information - requested.
      • -
      • Failing to provide information as requested or double checking - firstforprior feedback also carries the implicit message "the time of - thelibrarymaintainers is less valuable than my time" and might not - bewelcome.
      • -

      Of course, bugs reported with a suggested patch for fixing -themwillprobably be processed faster than those without.

      If you're looking for help, a quick look at the list -archivemayactuallyprovide the answer. I usually send source samples when -answeringlibxml2usage questions. The auto-generateddocumentationisnot -as polished as I would like (i need to learn moreabout DocBook), butit's a -good starting point.

      Daniel Veillard

      +Reporting bugs and getting help
      Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
      Made with Libxml2 Logo

      The XML C parser and toolkit of Gnome

      Reporting bugs and getting help

      Main Menu
      Related links

      Well, bugs or missing features are always possible, and I will make a +point of fixing them in a timely fashion. The best way to report a bug is to +use the Gnome +bug tracking database (make sure to use the "libxml2" module name). I +look at reports there regularly and it's good to have a reminder when a bug +is still open. Be sure to specify that the bug is for the package libxml2.

      For small problems you can try to get help on IRC, the #xml channel on +irc.gnome.org (port 6667) usually have a few person subscribed which may help +(but there is no garantee and if a real issue is raised it should go on the +mailing-list for archival).

      There is also a mailing-list xml@gnome.org for libxml, with an on-line archive (old). To subscribe to this list, +please visit the associated Web page and +follow the instructions. Do not send code, I won't debug it +(but patches are really appreciated!).

      Please note that with the current amount of virus and SPAM, sending mail +to the list without being subscribed won't work. There is *far too many +bounces* (in the order of a thousand a day !) I cannot approve them manually +anymore. If your mail to the list bounced waiting for administrator approval, +it is LOST ! Repost it and fix the problem triggering the error. Also please +note that emails with +a legal warning asking to not copy or redistribute freely the informations +they contain are NOT acceptable for the mailing-list, +such mail will as much as possible be discarded automatically, and are less +likely to be answered if they made it to the list, DO NOT +post to the list from an email address where such legal requirements are +automatically added, get private paying support if you can't share +informations.

      Check the following before +posting:

      • Read the FAQ and use the + search engine to get information related to your problem.
      • +
      • Make sure you are using a recent + version, and that the problem still shows up in a recent version.
      • +
      • Check the list + archives to see if the problem was reported already. In this case + there is probably a fix available, similarly check the registered + open bugs.
      • +
      • Make sure you can reproduce the bug with xmllint or one of the test + programs found in source in the distribution.
      • +
      • Please send the command showing the error as well as the input (as an + attachment)
      • +

      Then send the bug with associated information to reproduce it to the xml@gnome.org list; if it's really libxml +related I will approve it. Please do not send mail to me directly, it makes +things really hard to track and in some cases I am not the best person to +answer a given question, ask on the list.

      To be really clear about support:

      • Support or help requests MUST be sent to + the list or on bugzilla in case of problems, so that the Question + and Answers can be shared publicly. Failing to do so carries the implicit + message "I want free support but I don't want to share the benefits with + others" and is not welcome. I will automatically Carbon-Copy the + xml@gnome.org mailing list for any technical reply made about libxml2 or + libxslt.
      • +
      • There is no garantee of support, if + your question remains unanswered after a week, repost it, making sure you + gave all the detail needed and the information requested.
      • +
      • Failing to provide information as requested or double checking first + for prior feedback also carries the implicit message "the time of the + library maintainers is less valuable than my time" and might not be + welcome.
      • +

      Of course, bugs reported with a suggested patch for fixing them will +probably be processed faster than those without.

      If you're looking for help, a quick look at the list archive may actually +provide the answer. I usually send source samples when answering libxml2 +usage questions. The auto-generated documentation is +not as polished as I would like (i need to learn more about DocBook), but +it's a good starting point.

      Daniel Veillard

      diff --git a/doc/catalog.html b/doc/catalog.html index 34f9902..4100fed 100644 --- a/doc/catalog.html +++ b/doc/catalog.html @@ -14,78 +14,77 @@ A:link, A:visited, A:active { text-decoration: underline }
    • How to tune catalog usage
    • How to debug catalog processing
    • How to create and maintain catalogs
    • -
    • The implementor corner quick review - oftheAPI
    • +
    • The implementor corner quick review of the + API
    • Other resources
    • -

      General overview

      What is a catalog? Basically it's a lookup mechanism used when an -entity(afile or a remote resource) references another entity. The catalog -lookupisinserted between the moment the reference is recognized by the -software(XMLparser, stylesheet processing, or even images referenced for -inclusionin arendering) and the time where loading that resource is -actuallystarted.

      It is basically used for 3 things:

      • mapping from "logical" names, the public identifiers and a - moreconcretename usable for download (and URI). For example it can - associatethelogical name +

        General overview

        What is a catalog? Basically it's a lookup mechanism used when an entity +(a file or a remote resource) references another entity. The catalog lookup +is inserted between the moment the reference is recognized by the software +(XML parser, stylesheet processing, or even images referenced for inclusion +in a rendering) and the time where loading that resource is actually +started.

        It is basically used for 3 things:

        • mapping from "logical" names, the public identifiers and a more + concrete name usable for download (and URI). For example it can associate + the logical name

          "-//OASIS//DTD DocBook XML V4.1.2//EN"

          -

          of the DocBook 4.1.2 XML DTD with the actual URL where it - canbedownloaded

          +

          of the DocBook 4.1.2 XML DTD with the actual URL where it can be + downloaded

          http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd

        • -
        • remapping from a given URL to another one, like an - HTTPindirectionsaying that +
        • remapping from a given URL to another one, like an HTTP indirection + saying that

          "http://www.oasis-open.org/committes/tr.xsl"

          should really be looked at

          "http://www.oasis-open.org/committes/entity/stylesheets/base/tr.xsl"

        • -
        • providing a local cache mechanism allowing to load - theentitiesassociated to public identifiers or remote resources, this is - areallyimportant feature for any significant deployment of XML or - SGMLsince itallows to avoid the aleas and delays associated to - fetchingremoteresources.
        • -

        The definitions

        Libxml, as of 2.4.3 implements 2 kind of catalogs:

        • the older SGML catalogs, the official spec is SGML - OpenTechnicalResolution TR9401:1997, but is better understood by reading - the SP - CatalogpagefromJames Clark. This is relatively old and not the - preferredmode ofoperation of libxml.
        • -
        • XMLCatalogsisfar - more flexible, more recent, uses an XML syntax andshould scale - quitebetter. This is the default option of libxml.
        • -

        Using catalog

        In a normal environment libxml2 will by default check the presence -ofacatalog in /etc/xml/catalog, and assuming it has been -correctlypopulated,the processing is completely transparent to the document -user. Totake aconcrete example, suppose you are authoring a DocBook document, -thisonestarts with the following DOCTYPE definition:

        <?xml version='1.0'?>
        +  
      • providing a local cache mechanism allowing to load the entities + associated to public identifiers or remote resources, this is a really + important feature for any significant deployment of XML or SGML since it + allows to avoid the aleas and delays associated to fetching remote + resources.
      • +

      The definitions

      Libxml, as of 2.4.3 implements 2 kind of catalogs:

      • the older SGML catalogs, the official spec is SGML Open Technical + Resolution TR9401:1997, but is better understood by reading the SP Catalog page from + James Clark. This is relatively old and not the preferred mode of + operation of libxml.
      • +
      • XML + Catalogs is far more flexible, more recent, uses an XML syntax and + should scale quite better. This is the default option of libxml.
      • +

      Using catalog

      In a normal environment libxml2 will by default check the presence of a +catalog in /etc/xml/catalog, and assuming it has been correctly populated, +the processing is completely transparent to the document user. To take a +concrete example, suppose you are authoring a DocBook document, this one +starts with the following DOCTYPE definition:

      <?xml version='1.0'?>
       <!DOCTYPE book PUBLIC "-//Norman Walsh//DTD DocBk XML V3.1.4//EN"
      -          "http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd">

      When validating the document with libxml, the catalog will -beautomaticallyconsulted to lookup the public identifier "-//Norman -Walsh//DTDDocBk XMLV3.1.4//EN" and the -systemidentifier"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if -theseentities havebeen installed on your system and the catalogs actually -point tothem, libxmlwill fetch them from the local disk.

      Note: Really don't usethisDOCTYPE -example it's a really old version, but is fine as an example.

      Libxml2 will check the catalog each time that it is requested to -loadanentity, this includes DTD, external parsed entities, stylesheets, etc -...Ifyour system is correctly configured all the authoring phase -andprocessingshould use only local files, even if your document stays -portablebecause ituses the canonical public and system ID, referencing the -remotedocument.

      Some examples:

      Here is a couple of fragments from XML Catalogs used in -libxml2earlyregression tests in test/catalogs:

      <?xml version="1.0"?>
      +          "http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd">

      When validating the document with libxml, the catalog will be +automatically consulted to lookup the public identifier "-//Norman Walsh//DTD +DocBk XML V3.1.4//EN" and the system identifier +"http://nwalsh.com/docbook/xml/3.1.4/db3xml.dtd", and if these entities have +been installed on your system and the catalogs actually point to them, libxml +will fetch them from the local disk.

      Note: Really don't use this +DOCTYPE example it's a really old version, but is fine as an example.

      Libxml2 will check the catalog each time that it is requested to load an +entity, this includes DTD, external parsed entities, stylesheets, etc ... If +your system is correctly configured all the authoring phase and processing +should use only local files, even if your document stays portable because it +uses the canonical public and system ID, referencing the remote document.

      Some examples:

      Here is a couple of fragments from XML Catalogs used in libxml2 early +regression tests in test/catalogs :

      <?xml version="1.0"?>
       <!DOCTYPE catalog PUBLIC 
          "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
          "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
       <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
         <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
          uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
      -...

      This is the beginning of a catalog for DocBook 4.1.2, XML -Catalogsarewritten in XML, there is a specific namespace for -catalogelements"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry -inthiscatalog is a publicmapping it allows to associate -aPublicIdentifier with an URI.

      ...
      +...

      This is the beginning of a catalog for DocBook 4.1.2, XML Catalogs are +written in XML, there is a specific namespace for catalog elements +"urn:oasis:names:tc:entity:xmlns:xml:catalog". The first entry in this +catalog is a public mapping it allows to associate a Public +Identifier with an URI.

      ...
           <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/"
                          rewritePrefix="file:///usr/share/xml/docbook/"/>
      -...

      A rewriteSystemis a very powerful instruction, it saysthatany -URI starting with a given prefix should be looked at anotherURIconstructed by -replacing the prefix with an new one. In effect this actslikea cache system -for a full area of the Web. In practice it is extremelyusefulwith a file -prefix if you have installed a copy of those resources onyourlocal system.

      ...
      +...

      A rewriteSystem is a very powerful instruction, it says that +any URI starting with a given prefix should be looked at another URI +constructed by replacing the prefix with an new one. In effect this acts like +a cache system for a full area of the Web. In practice it is extremely useful +with a file prefix if you have installed a copy of those resources on your +local system.

      ...
       <delegatePublic publicIdStartString="-//OASIS//DTD XML Catalog //"
                       catalog="file:///usr/share/xml/docbook.xml"/>
       <delegatePublic publicIdStartString="-//OASIS//ENTITIES DocBook XML"
      @@ -96,21 +95,21 @@ prefix if you have installed a copy of those resources onyourlocal system.

      Delegation is the core features which allows to build a tree -ofcatalogs,easier to maintain than a single catalog, based on -PublicIdentifier, SystemIdentifier or URI prefixes it instructs the -catalogsoftware to look upentries in another resource. This feature allow to -buildhierarchies ofcatalogs, the set of entries presented should be -sufficient toredirect theresolution of all DocBook references to the specific -catalogin/usr/share/xml/docbook.xmlthis one in turn could -delegateallreferences for DocBook 4.2.1 to a specific catalog installed at -the sametimeas the DocBook resources on the local machine.

      How to tune catalog usage:

      The user can change the default catalog behaviour by redirecting -queriestoits own set of catalogs, this can be done by -settingtheXML_CATALOG_FILESenvironment variable to a list of -catalogs,anempty one should deactivate loading the -default/etc/xml/catalogdefault catalog

      How to debug catalog processing:

      Setting up the XML_DEBUG_CATALOGenvironment variable -willmakelibxml2 output debugging informations for each catalog -operations,forexample:

      orchis:~/XML -> xmllint --memory --noout test/ent2
      +...

      Delegation is the core features which allows to build a tree of catalogs, +easier to maintain than a single catalog, based on Public Identifier, System +Identifier or URI prefixes it instructs the catalog software to look up +entries in another resource. This feature allow to build hierarchies of +catalogs, the set of entries presented should be sufficient to redirect the +resolution of all DocBook references to the specific catalog in +/usr/share/xml/docbook.xml this one in turn could delegate all +references for DocBook 4.2.1 to a specific catalog installed at the same time +as the DocBook resources on the local machine.

      How to tune catalog usage:

      The user can change the default catalog behaviour by redirecting queries +to its own set of catalogs, this can be done by setting the +XML_CATALOG_FILES environment variable to a list of catalogs, an +empty one should deactivate loading the default /etc/xml/catalog +default catalog

      How to debug catalog processing:

      Setting up the XML_DEBUG_CATALOG environment variable will +make libxml2 output debugging informations for each catalog operations, for +example:

      orchis:~/XML -> xmllint --memory --noout test/ent2
       warning: failed to load external entity "title.xml"
       orchis:~/XML -> export XML_DEBUG_CATALOG=
       orchis:~/XML -> xmllint --memory --noout test/ent2
      @@ -118,26 +117,26 @@ Failed to parse catalog /etc/xml/catalog
       Failed to parse catalog /etc/xml/catalog
       warning: failed to load external entity "title.xml"
       Catalogs cleanup
      -orchis:~/XML -> 

      The test/ent2 references an entity, running the parser from memorymakesthe -base URI unavailable and the the "title.xml" entity cannot beloaded.Setting -up the debug environment variable allows to detect that anattempt ismade to -load the /etc/xml/catalogbut since it's notpresent theresolution -fails.

      But the most advanced way to debug XML catalog processing is to -usethexmlcatalogcommand shipped with libxml2, it allows -toloadcatalogs and make resolution queries to see what is going on. This -isalsoused for the regression tests:

      orchis:~/XML -> ./xmlcatalog test/catalogs/docbook.xml \
      +orchis:~/XML -> 

      The test/ent2 references an entity, running the parser from memory makes +the base URI unavailable and the the "title.xml" entity cannot be loaded. +Setting up the debug environment variable allows to detect that an attempt is +made to load the /etc/xml/catalog but since it's not present the +resolution fails.

      But the most advanced way to debug XML catalog processing is to use the +xmlcatalog command shipped with libxml2, it allows to load +catalogs and make resolution queries to see what is going on. This is also +used for the regression tests:

      orchis:~/XML -> ./xmlcatalog test/catalogs/docbook.xml \
                          "-//OASIS//DTD DocBook XML V4.1.2//EN"
       http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
      -orchis:~/XML -> 

      For debugging what is going on, adding one -v flags increase -theverbositylevel to indicate the processing done (adding a second flag -alsoindicatewhat elements are recognized at parsing):

      orchis:~/XML -> ./xmlcatalog -v test/catalogs/docbook.xml \
      +orchis:~/XML -> 

      For debugging what is going on, adding one -v flags increase the verbosity +level to indicate the processing done (adding a second flag also indicate +what elements are recognized at parsing):

      orchis:~/XML -> ./xmlcatalog -v test/catalogs/docbook.xml \
                          "-//OASIS//DTD DocBook XML V4.1.2//EN"
       Parsing catalog test/catalogs/docbook.xml's content
       Found public match -//OASIS//DTD DocBook XML V4.1.2//EN
       http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
       Catalogs cleanup
      -orchis:~/XML -> 

      A shell interface is also available to debug and process -multiplequeries(and for regression tests):

      orchis:~/XML -> ./xmlcatalog -shell test/catalogs/docbook.xml \
      +orchis:~/XML -> 

      A shell interface is also available to debug and process multiple queries +(and for regression tests):

      orchis:~/XML -> ./xmlcatalog -shell test/catalogs/docbook.xml \
                          "-//OASIS//DTD DocBook XML V4.1.2//EN"
       > help   
       Commands available:
      @@ -153,18 +152,18 @@ exit:  quit the shell
       > public "-//OASIS//DTD DocBook XML V4.1.2//EN"
       http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
       > quit
      -orchis:~/XML -> 

      This should be sufficient for most debugging purpose, this wasactuallyused -heavily to debug the XML Catalog implementation itself.

      How to create and maintaincatalogs:

      Basically XML Catalogs are XML files, you can either use XML toolstomanage -them or use xmlcatalogfor this. The basic stepisto create a -catalog the -create option provide this facility:

      orchis:~/XML -> ./xmlcatalog --create tst.xml
      +orchis:~/XML -> 

      This should be sufficient for most debugging purpose, this was actually +used heavily to debug the XML Catalog implementation itself.

      How to create and maintain catalogs:

      Basically XML Catalogs are XML files, you can either use XML tools to +manage them or use xmlcatalog for this. The basic step is +to create a catalog the -create option provide this facility:

      orchis:~/XML -> ./xmlcatalog --create tst.xml
       <?xml version="1.0"?>
       <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
                "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
       <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
      -orchis:~/XML -> 

      By default xmlcatalog does not overwrite the original catalog and -savetheresult on the standard output, this can be overridden using -the-nooutoption. The -addcommand allows to add entries -inthecatalog:

      orchis:~/XML -> ./xmlcatalog --noout --create --add "public" \
      +orchis:~/XML -> 

      By default xmlcatalog does not overwrite the original catalog and save the +result on the standard output, this can be overridden using the -noout +option. The -add command allows to add entries in the +catalog:

      orchis:~/XML -> ./xmlcatalog --noout --create --add "public" \
         "-//OASIS//DTD DocBook XML V4.1.2//EN" \
         http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd tst.xml
       orchis:~/XML -> cat tst.xml
      @@ -175,80 +174,83 @@ orchis:~/XML -> cat tst.xml
       <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN"
               uri="http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"/>
       </catalog>
      -orchis:~/XML -> 

      The -addoption will always take 3 parameters even if -someofthe XML Catalog constructs (like nextCatalog) will have only -asingleargument, just pass a third empty string, it will be ignored.

      Similarly the -deloption remove matching entries -fromthecatalog:

      orchis:~/XML -> ./xmlcatalog --del \
      +orchis:~/XML -> 

      The -add option will always take 3 parameters even if some of +the XML Catalog constructs (like nextCatalog) will have only a single +argument, just pass a third empty string, it will be ignored.

      Similarly the -del option remove matching entries from the +catalog:

      orchis:~/XML -> ./xmlcatalog --del \
         "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" tst.xml
       <?xml version="1.0"?>
       <!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
           "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
       <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"/>
      -orchis:~/XML -> 

      The catalog is now empty. Note that the matching -of-delisexact and would have worked in a similar fashion with -thePublic IDstring.

      This is rudimentary but should be sufficient to manage a not -toocomplexcatalog tree of resources.

      The implementor corner quick review -oftheAPI:

      First, and like for every other module of libxml, there is -anautomaticallygenerated API page -forcatalogsupport.

      The header for the catalog interfaces should be included as:

      #include <libxml/catalog.h>

      The API is voluntarily kept very simple. First it is not -obviousthatapplications really need access to it since it is the default -behaviouroflibxml2 (Note: it is possible to completely override libxml2 -defaultcatalogby using xmlSetExternalEntityLoadertoplug -anapplication specific resolver).

      Basically libxml2 support 2 catalog lists:

      • the default one, global shared by all the application
      • -
      • a per-document catalog, this one is built if the document - usestheoasis-xml-catalogPIs to specify its own catalog list, - itisassociated to the parser context and destroyed when the - parsingcontextis destroyed.
      • -

      the document one will be used first if it exists.

      Initialization routines:

      xmlInitializeCatalog(), xmlLoadCatalog() and xmlLoadCatalogs() -shouldbeused at startup to initialize the catalog, if the catalog -shouldbeinitialized with specific values xmlLoadCatalog() -orxmlLoadCatalogs()should be called before xmlInitializeCatalog() which -wouldotherwise do adefault initialization first.

      The xmlCatalogAddLocal() call is used by the parser to grow thedocumentown -catalog list if needed.

      Preferences setup:

      The XML Catalog spec requires the possibility to select -defaultpreferencesbetween public and system -delegation,xmlCatalogSetDefaultPrefer() allowsthis, xmlCatalogSetDefaults() -andxmlCatalogGetDefaults() allow to control ifXML Catalogs resolution -shouldbe forbidden, allowed for global catalog, fordocument catalog or both, -thedefault is to allow both.

      And of course xmlCatalogSetDebug() allows to generate -debugmessages(through the xmlGenericError() mechanism).

      Querying routines:

      xmlCatalogResolve(), -xmlCatalogResolveSystem(),xmlCatalogResolvePublic()and xmlCatalogResolveURI() -are relatively explicitif you read the XMLCatalog specification they -correspond to section 7algorithms, they shouldalso work if you have loaded an -SGML catalog with asimplified semantic.

      xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the -samebutoperate on the document catalog list

      Cleanup and Miscellaneous:

      xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal()isthe -per-document equivalent.

      xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically -modifythefirst catalog in the global list, and xmlCatalogDump() allows to -dumpacatalog state, those routines are primarily designed for xmlcatalog, -I'mnotsure that exposing more complex interfaces (like navigation ones) -wouldbereally useful.

      The xmlParseCatalogFile() is a function used to load XML Catalogfiles,it's -similar as xmlParseFile() except it bypass all catalog lookups,it'sprovided -because this functionality may be useful for client tools.

      threaded environments:

      Since the catalog tree is built progressively, some care has been -takentotry to avoid troubles in multithreaded environments. The code is -nowthreadsafe assuming that the libxml2 library has been compiled -withthreadssupport.

      Other resources

      The XML Catalog specification is relatively recent so there -isn'tmuchliterature to point at:

      • You can find a good rant from Norm Walsh about theneedfor - catalogs, it provides a lot of context informations even ifIdon't - agree with everything presented. Norm also wrote a morerecentarticle XMLentitiesand - URI resolversdescribing them.
      • -
      • An oldXMLcatalog - proposalfrom John Cowan
      • -
      • The Resource - DirectoryDescriptionLanguage(RDDL) another catalog system but more - orientedtowardproviding metadata for XML namespaces.
      • -
      • the page from the OASIS Technical Committee - onEntityResolutionwho maintains XML Catalog, you will find pointers - tothespecification update, some background and pointers to - otherstoolsproviding XML Catalog support
      • -
      • There is a shell scriptto - generateXMLCatalogs for DocBook 4.1.2 . If it can write to the - /etc/xml/directory,it will set-up /etc/xml/catalog and /etc/xml/docbook - based ontheresources found on the system. Otherwise it will just - create~/xmlcatalogand ~/dbkxmlcatalog and doing: +orchis:~/XML ->

      The catalog is now empty. Note that the matching of -del is +exact and would have worked in a similar fashion with the Public ID +string.

      This is rudimentary but should be sufficient to manage a not too complex +catalog tree of resources.

      The implementor corner quick review of the +API:

      First, and like for every other module of libxml, there is an +automatically generated API page for +catalog support.

      The header for the catalog interfaces should be included as:

      #include <libxml/catalog.h>

      The API is voluntarily kept very simple. First it is not obvious that +applications really need access to it since it is the default behaviour of +libxml2 (Note: it is possible to completely override libxml2 default catalog +by using xmlSetExternalEntityLoader to +plug an application specific resolver).

      Basically libxml2 support 2 catalog lists:

      • the default one, global shared by all the application
      • +
      • a per-document catalog, this one is built if the document uses the + oasis-xml-catalog PIs to specify its own catalog list, it is + associated to the parser context and destroyed when the parsing context + is destroyed.
      • +

      the document one will be used first if it exists.

      Initialization routines:

      xmlInitializeCatalog(), xmlLoadCatalog() and xmlLoadCatalogs() should be +used at startup to initialize the catalog, if the catalog should be +initialized with specific values xmlLoadCatalog() or xmlLoadCatalogs() +should be called before xmlInitializeCatalog() which would otherwise do a +default initialization first.

      The xmlCatalogAddLocal() call is used by the parser to grow the document +own catalog list if needed.

      Preferences setup:

      The XML Catalog spec requires the possibility to select default +preferences between public and system delegation, +xmlCatalogSetDefaultPrefer() allows this, xmlCatalogSetDefaults() and +xmlCatalogGetDefaults() allow to control if XML Catalogs resolution should +be forbidden, allowed for global catalog, for document catalog or both, the +default is to allow both.

      And of course xmlCatalogSetDebug() allows to generate debug messages +(through the xmlGenericError() mechanism).

      Querying routines:

      xmlCatalogResolve(), xmlCatalogResolveSystem(), xmlCatalogResolvePublic() +and xmlCatalogResolveURI() are relatively explicit if you read the XML +Catalog specification they correspond to section 7 algorithms, they should +also work if you have loaded an SGML catalog with a simplified semantic.

      xmlCatalogLocalResolve() and xmlCatalogLocalResolveURI() are the same but +operate on the document catalog list

      Cleanup and Miscellaneous:

      xmlCatalogCleanup() free-up the global catalog, xmlCatalogFreeLocal() is +the per-document equivalent.

      xmlCatalogAdd() and xmlCatalogRemove() are used to dynamically modify the +first catalog in the global list, and xmlCatalogDump() allows to dump a +catalog state, those routines are primarily designed for xmlcatalog, I'm not +sure that exposing more complex interfaces (like navigation ones) would be +really useful.

      The xmlParseCatalogFile() is a function used to load XML Catalog files, +it's similar as xmlParseFile() except it bypass all catalog lookups, it's +provided because this functionality may be useful for client tools.

      threaded environments:

      Since the catalog tree is built progressively, some care has been taken to +try to avoid troubles in multithreaded environments. The code is now thread +safe assuming that the libxml2 library has been compiled with threads +support.

      Other resources

      The XML Catalog specification is relatively recent so there isn't much +literature to point at:

      • You can find a good rant from Norm Walsh about the + need for catalogs, it provides a lot of context informations even if + I don't agree with everything presented. Norm also wrote a more recent + article XML + entities and URI resolvers describing them.
      • +
      • An old XML + catalog proposal from John Cowan
      • +
      • The Resource Directory Description + Language (RDDL) another catalog system but more oriented toward + providing metadata for XML namespaces.
      • +
      • the page from the OASIS Technical Committee on Entity + Resolution who maintains XML Catalog, you will find pointers to the + specification update, some background and pointers to others tools + providing XML Catalog support
      • +
      • There is a shell script to generate + XML Catalogs for DocBook 4.1.2 . If it can write to the /etc/xml/ + directory, it will set-up /etc/xml/catalog and /etc/xml/docbook based on + the resources found on the system. Otherwise it will just create + ~/xmlcatalog and ~/dbkxmlcatalog and doing:

        export XML_CATALOG_FILES=$HOME/xmlcatalog

        -

        should allow to process DocBook documentations withoutrequiringnetwork - accesses for the DTD or stylesheets

        +

        should allow to process DocBook documentations without requiring + network accesses for the DTD or stylesheets

      • -
      • I have uploaded asmalltarballcontaining - XML Catalogs for DocBook 4.1.2 which seemsto workfine for me too
      • -
      • The xmlcatalogmanualpage
      • -

      If you have suggestions for corrections or additions, simply contactme:

      Daniel Veillard

    +
  • I have uploaded a + small tarball containing XML Catalogs for DocBook 4.1.2 which seems + to work fine for me too
  • +
  • The xmlcatalog + manual page
  • +

    If you have suggestions for corrections or additions, simply contact +me:

    Daniel Veillard

    diff --git a/doc/contribs.html b/doc/contribs.html index 2163d60..e493eb3 100644 --- a/doc/contribs.html +++ b/doc/contribs.html @@ -7,29 +7,34 @@ H1 {font-family: Verdana,Arial,Helvetica} H2 {font-family: Verdana,Arial,Helvetica} H3 {font-family: Verdana,Arial,Helvetica} A:link, A:visited, A:active { text-decoration: underline } -Contributions
    Action against software patentsGnome2 LogoW3C LogoRed Hat Logo
    Made with Libxml2 Logo

    The XML C parser and toolkit of Gnome

    Contributions

    Main Menu
    Related links