williamr@4: /* williamr@4: * Summary: interfaces for tree manipulation williamr@4: * Description: this module describes the structures found in an tree resulting williamr@4: * from an XML or HTML parsing, as well as the API provided for williamr@4: * various processing on that tree williamr@4: * williamr@4: * Copy: See Copyright for the status of this software. williamr@4: * williamr@4: * Author: Daniel Veillard williamr@4: * Portion Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. williamr@4: */ williamr@4: williamr@4: /** @file williamr@4: @publishedAll williamr@4: @released williamr@4: */ williamr@4: williamr@4: #ifndef XML_TREE_H williamr@4: #define XML_TREE_H williamr@4: williamr@4: #include williamr@4: williamr@4: #include williamr@4: #include williamr@4: williamr@4: #ifdef LIBXML_REGEXP_ENABLED williamr@4: #include "libxml2_xmlregexp.h" williamr@4: #endif williamr@4: williamr@4: #ifdef __cplusplus williamr@4: extern "C" { williamr@4: #endif williamr@4: williamr@4: /* williamr@4: * Some of the basic types pointer to structures: williamr@4: */ williamr@4: /* xmlIO.h */ williamr@4: typedef struct _xmlParserInputBuffer xmlParserInputBuffer; williamr@4: typedef xmlParserInputBuffer *xmlParserInputBufferPtr; williamr@4: williamr@4: typedef struct _xmlOutputBuffer xmlOutputBuffer; williamr@4: typedef xmlOutputBuffer *xmlOutputBufferPtr; williamr@4: williamr@4: /* parser.h */ williamr@4: williamr@4: williamr@4: typedef struct _xmlParserCtxt xmlParserCtxt; williamr@4: typedef xmlParserCtxt *xmlParserCtxtPtr; williamr@4: williamr@4: typedef struct _xmlSAXLocator xmlSAXLocator; williamr@4: typedef xmlSAXLocator *xmlSAXLocatorPtr; williamr@4: williamr@4: typedef struct _xmlSAXHandler xmlSAXHandler; williamr@4: typedef xmlSAXHandler *xmlSAXHandlerPtr; williamr@4: williamr@4: /* entities.h */ williamr@4: typedef struct _xmlEntity xmlEntity; williamr@4: typedef xmlEntity *xmlEntityPtr; williamr@4: williamr@4: /** williamr@4: * BASE_BUFFER_SIZE: williamr@4: * williamr@4: * default buffer size 4000. williamr@4: */ williamr@4: #define BASE_BUFFER_SIZE 4096 williamr@4: williamr@4: williamr@4: // BUT! remember that it is checked in #ifdef's williamr@4: /** williamr@4: * XML_XML_NAMESPACE: williamr@4: * williamr@4: * This is the namespace for the special xml: prefix predefined in the williamr@4: * XML Namespace specification. williamr@4: */ williamr@4: #define XML_XML_NAMESPACE \ williamr@4: (const xmlChar *) "http://www.w3.org/XML/1998/namespace" williamr@4: williamr@4: /** williamr@4: * XML_XML_ID: williamr@4: * williamr@4: * This is the name for the special xml:id attribute williamr@4: */ williamr@4: #define XML_XML_ID (const xmlChar *) "xml:id" williamr@4: williamr@4: /* williamr@4: * The different element types carried by an XML tree. williamr@4: * williamr@4: * NOTE: This is synchronized with DOM Level1 values williamr@4: * See http://www.w3.org/TR/REC-DOM-Level-1/ williamr@4: * williamr@4: * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should williamr@4: * be deprecated to use an XML_DTD_NODE. williamr@4: */ williamr@4: typedef enum { williamr@4: XML_ELEMENT_NODE= 1, williamr@4: XML_ATTRIBUTE_NODE= 2, williamr@4: XML_TEXT_NODE= 3, williamr@4: XML_CDATA_SECTION_NODE= 4, williamr@4: XML_ENTITY_REF_NODE= 5, williamr@4: XML_ENTITY_NODE= 6, williamr@4: XML_PI_NODE= 7, williamr@4: XML_COMMENT_NODE= 8, williamr@4: XML_DOCUMENT_NODE= 9, williamr@4: XML_DOCUMENT_TYPE_NODE= 10, williamr@4: XML_DOCUMENT_FRAG_NODE= 11, williamr@4: XML_NOTATION_NODE= 12, williamr@4: XML_HTML_DOCUMENT_NODE= 13, williamr@4: XML_DTD_NODE= 14, williamr@4: XML_ELEMENT_DECL= 15, williamr@4: XML_ATTRIBUTE_DECL= 16, williamr@4: XML_ENTITY_DECL= 17, williamr@4: XML_NAMESPACE_DECL= 18, williamr@4: XML_XINCLUDE_START= 19, williamr@4: XML_XINCLUDE_END= 20 williamr@4: //#ifdef LIBXML_DOCB_ENABLED williamr@4: // ,XML_DOCB_DOCUMENT_NODE= 21 //DocBook support is excluded from XML Engine williamr@4: //#endif williamr@4: } xmlElementType; williamr@4: williamr@4: williamr@4: /** williamr@4: * xmlNotation: williamr@4: * williamr@4: * A DTD Notation definition. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlNotation xmlNotation; williamr@4: typedef xmlNotation *xmlNotationPtr; williamr@4: struct _xmlNotation { williamr@4: const xmlChar *name; /* Notation name */ williamr@4: const xmlChar *PublicID; /* Public identifier, if any */ williamr@4: const xmlChar *SystemID; /* System identifier, if any */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlAttributeType: williamr@4: * williamr@4: * A DTD Attribute type definition. williamr@4: */ williamr@4: williamr@4: typedef enum { williamr@4: XML_ATTRIBUTE_CDATA = 1, williamr@4: XML_ATTRIBUTE_ID, williamr@4: XML_ATTRIBUTE_IDREF , williamr@4: XML_ATTRIBUTE_IDREFS, williamr@4: XML_ATTRIBUTE_ENTITY, williamr@4: XML_ATTRIBUTE_ENTITIES, williamr@4: XML_ATTRIBUTE_NMTOKEN, williamr@4: XML_ATTRIBUTE_NMTOKENS, williamr@4: XML_ATTRIBUTE_ENUMERATION, williamr@4: XML_ATTRIBUTE_NOTATION williamr@4: } xmlAttributeType; williamr@4: williamr@4: /** williamr@4: * xmlAttributeDefault: williamr@4: * williamr@4: * A DTD Attribute default definition. williamr@4: */ williamr@4: williamr@4: typedef enum { williamr@4: XML_ATTRIBUTE_NONE = 1, williamr@4: XML_ATTRIBUTE_REQUIRED, williamr@4: XML_ATTRIBUTE_IMPLIED, williamr@4: XML_ATTRIBUTE_FIXED williamr@4: } xmlAttributeDefault; williamr@4: williamr@4: /** williamr@4: * xmlEnumeration: williamr@4: * williamr@4: * List structure used when there is an enumeration in DTDs. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlEnumeration xmlEnumeration; williamr@4: typedef xmlEnumeration *xmlEnumerationPtr; williamr@4: struct _xmlEnumeration { williamr@4: struct _xmlEnumeration *next; /* next one */ williamr@4: const xmlChar *name; /* Enumeration name */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlAttribute: williamr@4: * williamr@4: * An Attribute declaration in a DTD. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlAttribute xmlAttribute; williamr@4: typedef xmlAttribute *xmlAttributePtr; williamr@4: struct _xmlAttribute { williamr@4: void *_private; /* application data */ williamr@4: xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */ williamr@4: const xmlChar *name; /* Attribute name */ williamr@4: struct _xmlNode *children; /* NULL */ williamr@4: struct _xmlNode *last; /* NULL */ williamr@4: struct _xmlDtd *parent; /* -> DTD */ williamr@4: struct _xmlNode *next; /* next sibling link */ williamr@4: struct _xmlNode *prev; /* previous sibling link */ williamr@4: struct _xmlDoc *doc; /* the containing document */ williamr@4: williamr@4: struct _xmlAttribute *nexth; /* next in hash table */ williamr@4: xmlAttributeType atype; /* The attribute type */ williamr@4: xmlAttributeDefault def; /* the default */ williamr@4: const xmlChar *defaultValue; /* or the default value */ williamr@4: xmlEnumerationPtr tree; /* or the enumeration tree if any */ williamr@4: const xmlChar *prefix; /* the namespace prefix if any */ williamr@4: const xmlChar *elem; /* Element holding the attribute */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlElementContentType: williamr@4: * williamr@4: * Possible definitions of element content types. williamr@4: */ williamr@4: typedef enum { williamr@4: XML_ELEMENT_CONTENT_PCDATA = 1, williamr@4: XML_ELEMENT_CONTENT_ELEMENT, williamr@4: XML_ELEMENT_CONTENT_SEQ, williamr@4: XML_ELEMENT_CONTENT_OR williamr@4: } xmlElementContentType; williamr@4: williamr@4: /** williamr@4: * xmlElementContentOccur: williamr@4: * williamr@4: * Possible definitions of element content occurrences. williamr@4: */ williamr@4: typedef enum { williamr@4: XML_ELEMENT_CONTENT_ONCE = 1, williamr@4: XML_ELEMENT_CONTENT_OPT, williamr@4: XML_ELEMENT_CONTENT_MULT, williamr@4: XML_ELEMENT_CONTENT_PLUS williamr@4: } xmlElementContentOccur; williamr@4: williamr@4: /** williamr@4: * xmlElementContent: williamr@4: * williamr@4: * An XML Element content as stored after parsing an element definition williamr@4: * in a DTD. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlElementContent xmlElementContent; williamr@4: typedef xmlElementContent *xmlElementContentPtr; williamr@4: struct _xmlElementContent { williamr@4: xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */ williamr@4: xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */ williamr@4: const xmlChar *name; /* Element name */ williamr@4: struct _xmlElementContent *c1; /* first child */ williamr@4: struct _xmlElementContent *c2; /* second child */ williamr@4: struct _xmlElementContent *parent; /* parent */ williamr@4: const xmlChar *prefix; /* Namespace prefix */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlElementTypeVal: williamr@4: * williamr@4: * The different possibilities for an element content type. williamr@4: */ williamr@4: williamr@4: typedef enum { williamr@4: XML_ELEMENT_TYPE_UNDEFINED = 0, williamr@4: XML_ELEMENT_TYPE_EMPTY = 1, williamr@4: XML_ELEMENT_TYPE_ANY, williamr@4: XML_ELEMENT_TYPE_MIXED, williamr@4: XML_ELEMENT_TYPE_ELEMENT williamr@4: } xmlElementTypeVal; williamr@4: williamr@4: williamr@4: //#ifdef __cplusplus williamr@4: //} williamr@4: //#endif williamr@4: //#ifdef __cplusplus williamr@4: //extern "C" { williamr@4: //#endif williamr@4: williamr@4: /** williamr@4: * xmlElement: williamr@4: * williamr@4: * An XML Element declaration from a DTD. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlElement xmlElement; williamr@4: typedef xmlElement *xmlElementPtr; williamr@4: struct _xmlElement { williamr@4: void *_private; /* application data */ williamr@4: xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */ williamr@4: const xmlChar *name; /* Element name */ williamr@4: struct _xmlNode *children; /* NULL */ williamr@4: struct _xmlNode *last; /* NULL */ williamr@4: struct _xmlDtd *parent; /* -> DTD */ williamr@4: struct _xmlNode *next; /* next sibling link */ williamr@4: struct _xmlNode *prev; /* previous sibling link */ williamr@4: struct _xmlDoc *doc; /* the containing document */ williamr@4: williamr@4: xmlElementTypeVal etype; /* The type */ williamr@4: xmlElementContentPtr content; /* the allowed element content */ williamr@4: xmlAttributePtr attributes; /* List of the declared attributes */ williamr@4: const xmlChar *prefix; /* the namespace prefix if any */ williamr@4: #ifdef LIBXML_REGEXP_ENABLED williamr@4: xmlRegexpPtr contModel; /* the validating regexp */ williamr@4: #else williamr@4: void* contModel; williamr@4: #endif williamr@4: }; williamr@4: williamr@4: williamr@4: /** williamr@4: * XML_LOCAL_NAMESPACE: williamr@4: * williamr@4: * A namespace declaration node. williamr@4: */ williamr@4: #define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL williamr@4: typedef xmlElementType xmlNsType; williamr@4: williamr@4: /** williamr@4: * xmlNs: williamr@4: * williamr@4: * An XML namespace. williamr@4: * Note that prefix == NULL is valid, it defines the default namespace williamr@4: * within the subtree (until overridden). williamr@4: * williamr@4: * xmlNsType is unified with xmlElementType. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlNs xmlNs; williamr@4: typedef xmlNs *xmlNsPtr; williamr@4: struct _xmlNs { williamr@4: struct _xmlNs *next; /* next Ns link for this node */ williamr@4: xmlNsType type; /* global or local */ williamr@4: const xmlChar *href; /* URL for the namespace */ williamr@4: const xmlChar *prefix; /* prefix for the namespace */ williamr@4: void *_private; /* application data */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlDtd: williamr@4: * williamr@4: * An XML DTD, as defined by parent link */ williamr@4: struct _xmlNode *next; /* next sibling link */ williamr@4: struct _xmlNode *prev; /* previous sibling link */ williamr@4: struct _xmlDoc *doc; /* the containing document */ williamr@4: williamr@4: /* End of common part */ williamr@4: void *notations; /* Hash table for notations if any */ williamr@4: void *elements; /* Hash table for elements if any */ williamr@4: void *attributes; /* Hash table for attributes if any */ williamr@4: void *entities; /* Hash table for entities if any */ williamr@4: const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */ williamr@4: const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */ williamr@4: void *pentities; /* Hash table for param entities if any */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlAttr: williamr@4: * williamr@4: * An attribute on an XML node. williamr@4: */ williamr@4: typedef struct _xmlAttr xmlAttr; williamr@4: typedef xmlAttr *xmlAttrPtr; williamr@4: struct _xmlAttr { williamr@4: void *_private; /* application data */ williamr@4: xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */ williamr@4: const xmlChar *name; /* the name of the property */ williamr@4: struct _xmlNode *children; /* the value of the property */ williamr@4: struct _xmlNode *last; /* NULL */ williamr@4: struct _xmlNode *parent; /* child->parent link */ williamr@4: struct _xmlAttr *next; /* next sibling link */ williamr@4: struct _xmlAttr *prev; /* previous sibling link */ williamr@4: struct _xmlDoc *doc; /* the containing document */ williamr@4: /* End of common part */ williamr@4: xmlNs *ns; /* pointer to the associated namespace */ williamr@4: xmlAttributeType atype; /* the attribute type if validating */ williamr@4: void *psvi; /* for type/PSVI informations */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlID: williamr@4: * williamr@4: * An XML ID instance. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlID xmlID; williamr@4: typedef xmlID* xmlIDPtr; williamr@4: struct _xmlID { williamr@4: xmlIDPtr next; /* next ID */ williamr@4: const xmlChar* value; /* The ID name */ williamr@4: xmlAttrPtr attr; /* The attribute holding it */ williamr@4: const xmlChar* name; /* The attribute if attr is not available */ williamr@4: struct _xmlDoc* doc; /* The document holding the ID */ williamr@4: #ifdef LIBXML_ENABLE_NODE_LINEINFO williamr@4: int lineno; /* The line number if attr is not available */ williamr@4: #endif williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlRef: williamr@4: * williamr@4: * An XML IDREF instance. williamr@4: */ williamr@4: williamr@4: typedef struct _xmlRef xmlRef; williamr@4: typedef xmlRef* xmlRefPtr; williamr@4: struct _xmlRef { williamr@4: xmlRefPtr next; /* next Ref */ williamr@4: const xmlChar* value; /* The Ref name */ williamr@4: xmlAttrPtr attr; /* The attribute holding it */ williamr@4: const xmlChar* name; /* The attribute if attr is not available */ williamr@4: #ifdef LIBXML_ENABLE_NODE_LINEINFO williamr@4: int lineno; /* The line number if attr is not available */ williamr@4: #endif williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlBufferAllocationScheme: williamr@4: * williamr@4: * A buffer allocation scheme can be defined to either match exactly the williamr@4: * need or double it's allocated size each time it is found too small. williamr@4: */ williamr@4: williamr@4: typedef enum { williamr@4: XML_BUFFER_ALLOC_DOUBLEIT, williamr@4: XML_BUFFER_ALLOC_EXACT, williamr@4: XML_BUFFER_ALLOC_IMMUTABLE williamr@4: } xmlBufferAllocationScheme; williamr@4: williamr@4: /** williamr@4: * xmlBuffer: williamr@4: * williamr@4: * A buffer structure. williamr@4: */ williamr@4: typedef struct _xmlBuffer xmlBuffer; williamr@4: typedef xmlBuffer* xmlBufferPtr; williamr@4: struct _xmlBuffer { williamr@4: xmlChar* content; /* The buffer content UTF8 */ williamr@4: unsigned int use; /* The buffer size used */ williamr@4: unsigned int size; /* The buffer size */ williamr@4: xmlBufferAllocationScheme alloc; /* The realloc method */ williamr@4: }; williamr@4: williamr@4: /** williamr@4: * xmlNode: williamr@4: * williamr@4: * A node in an XML tree. williamr@4: * williamr@4: * Note: williamr@4: * Text nodes are also used to store binary data in the tree. williamr@4: * 'content' field is used to store a pointer to binary data williamr@4: * 'properties' field is used to store int length of the data williamr@4: * williamr@4: */ williamr@4: typedef struct _xmlNode xmlNode; williamr@4: typedef xmlNode* xmlNodePtr; williamr@4: struct _xmlNode { williamr@4: void* _private; /* application data */ williamr@4: xmlElementType type; /* type number, must be second ! */ williamr@4: const xmlChar* name; /* the name of the node, or the entity */ williamr@4: xmlNodePtr children; /* parent->childs link */ williamr@4: xmlNodePtr last; /* last child link */ williamr@4: xmlNodePtr parent; /* child->parent link */ williamr@4: xmlNodePtr next; /* next sibling link */ williamr@4: xmlNodePtr prev; /* previous sibling link */ williamr@4: struct _xmlDoc* doc; /* the containing document */ williamr@4: /* End of common part */ williamr@4: xmlNs *ns; /* pointer to the associated namespace */ williamr@4: xmlChar *content; /* the content */ williamr@4: struct _xmlAttr *properties;/* properties list */ williamr@4: xmlNs *nsDef; /* namespace definitions on this node */ williamr@4: void *psvi; /* for type/PSVI informations */ williamr@4: unsigned short extra; /* extra data for XPath/XSLT */ williamr@4: #ifdef LIBXML_ENABLE_NODE_LINEINFO williamr@4: unsigned short line; /* line number */ williamr@4: #endif williamr@4: }; williamr@4: williamr@4: /** williamr@4: * XML_GET_CONTENT: williamr@4: * williamr@4: * Macro to extract the content pointer of a node. williamr@4: */ williamr@4: #define XML_GET_CONTENT(n) \ williamr@4: ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content) williamr@4: williamr@4: williamr@4: williamr@4: #ifdef LIBXML_ENABLE_NODE_LINEINFO williamr@4: /** williamr@4: * XML_GET_LINE: williamr@4: * williamr@4: * Macro to extract the line number of an element node. williamr@4: */ williamr@4: #define XML_GET_LINE(n) (xmlGetLineNo(n)) williamr@4: #endif /* LIBXML_ENABLE_NODE_LINEINFO */ williamr@4: williamr@4: /** williamr@4: * xmlDoc: williamr@4: * williamr@4: * An XML document. williamr@4: */ williamr@4: typedef struct _xmlDoc xmlDoc; williamr@4: typedef xmlDoc* xmlDocPtr; williamr@4: struct _xmlDoc { williamr@4: void *_private; /* application data */ williamr@4: xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */ williamr@4: char *name; /* name/filename/URI of the document */ williamr@4: struct _xmlNode *children; /* the document tree */ williamr@4: struct _xmlNode *last; /* last child link */ williamr@4: struct _xmlNode *parent; /* child->parent link */ williamr@4: struct _xmlNode *next; /* next sibling link */ williamr@4: struct _xmlNode *prev; /* previous sibling link */ williamr@4: struct _xmlDoc *doc; /* autoreference to itself */ williamr@4: /* End of common part */ williamr@4: williamr@4: /* dummy fields to avoid incorrect use of xmlDoc as xmlNode williamr@4: currently, always NULL; reserved. williamr@4: williamr@4: Added to prevent potential problems of same kind in the future. williamr@4: */ williamr@4: void* _reserved1; /* ~ xmlNode.ns */ williamr@4: void* _reserved2; /* ~ xmlNode.content */ williamr@4: void* _reserved3; /* ~ xmlNode.properties */ williamr@4: void* _reserved4; /* ~ xmlNode.nsDef */ williamr@4: /* End of 2nd (extra) common part (same as xmlNode) */ williamr@4: williamr@4: #ifdef LIBXML_ENABLE_GS_CACHING_IN_DOC williamr@4: void* cachedGs; /* cached value returned by xmlGetGlobalState() */ williamr@4: #endif williamr@4: int compression;/* level of zlib compression */ williamr@4: int standalone; /* standalone document (no external refs) */ williamr@4: struct _xmlDtd *intSubset; /* the document internal subset */ williamr@4: struct _xmlDtd *extSubset; /* the document external subset */ williamr@4: struct _xmlNs *oldNs; /* Global namespace, the old way */ williamr@4: const xmlChar *version; /* the XML version string */ williamr@4: const xmlChar *encoding; /* external initial encoding, if any */ williamr@4: void *ids; /* Hash table for ID attributes if any */ williamr@4: void *refs; /* Hash table for IDREFs attributes if any */ williamr@4: const xmlChar *URL; /* The URI for that document */ williamr@4: int charset; /* encoding of the in-memory content williamr@4: actually an xmlCharEncoding */ williamr@4: struct _xmlDict *dict; /* dict used to allocate names or NULL */ williamr@4: void *psvi; /* for type/PSVI informations */ williamr@4: //XMLENGINE: NEW CODE williamr@4: /* williamr@4: A container for nodes that were created as nodes of this document but williamr@4: are not linked into the document yet williamr@4: NOTE: this field is used by DOM C++ API only (not in libxml2 functions) williamr@4: */ williamr@4: void* ownedNodes; williamr@4: /* williamr@4: * Container for nodes that store external data references williamr@4: */ williamr@4: xmlNodePtr* dataNodeList; /* array of data nodes */ williamr@4: int dataNodeMax; /* maximum number of data nodes in the array */ williamr@4: // williamr@4: }; williamr@4: williamr@4: /* williamr@4: * Variables. williamr@4: */ williamr@4: williamr@4: /* williamr@4: * Some helper functions williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL xmlValidateNCName (const xmlChar* value, int space); williamr@4: XMLPUBFUN int XMLCALL xmlValidateQName (const xmlChar* value, int space); williamr@4: XMLPUBFUN int XMLCALL xmlValidateName (const xmlChar* value, int space); williamr@4: XMLPUBFUN int XMLCALL xmlValidateNMToken(const xmlChar* value, int space); williamr@4: williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlBuildQName (const xmlChar *ncname, const xmlChar *prefix, williamr@4: xmlChar *memory, int len); williamr@4: XMLPUBFUN xmlChar* XMLCALL williamr@4: xmlSplitQName2 (const xmlChar *name, xmlChar **prefix); williamr@4: XMLPUBFUN const xmlChar* XMLCALL williamr@4: xmlSplitQName3 (const xmlChar *name, int *len); williamr@4: williamr@4: /* williamr@4: * Handling Buffers. williamr@4: */ williamr@4: williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_UNUSED williamr@4: XMLPUBFUN xmlBufferAllocationScheme XMLCALL williamr@4: xmlGetBufferAllocationScheme(void); williamr@4: #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */ williamr@4: williamr@4: XMLPUBFUN xmlBufferPtr XMLCALL williamr@4: xmlBufferCreate (void); williamr@4: XMLPUBFUN xmlBufferPtr XMLCALL williamr@4: xmlBufferCreateSize (size_t size); williamr@4: XMLPUBFUN xmlBufferPtr XMLCALL williamr@4: xmlBufferCreateStatic (void *mem, size_t size); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlBufferResize (xmlBufferPtr buf, unsigned int size); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferFree (xmlBufferPtr buf); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_FILE_FUNC williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlBufferDump (FILE *file, xmlBufferPtr buf); williamr@4: #endif williamr@4: williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferAdd (xmlBufferPtr buf, const xmlChar *str, int len); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferAddHead (xmlBufferPtr buf, const xmlChar *str, int len); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferCat (xmlBufferPtr buf, const xmlChar *str); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferCCat (xmlBufferPtr buf, const char *str); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlBufferShrink (xmlBufferPtr buf, unsigned int len); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlBufferGrow (xmlBufferPtr buf, unsigned int len); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_UNUSED williamr@4: XMLPUBFUN void XMLCALL xmlBufferEmpty (xmlBufferPtr buf); williamr@4: XMLPUBFUN void XMLCALL xmlBufferSetAllocationScheme(xmlBufferPtr buf, xmlBufferAllocationScheme scheme); williamr@4: #endif williamr@4: williamr@4: XMLPUBFUN int XMLCALL xmlBufferLength (const xmlBufferPtr buf); williamr@4: williamr@4: // XMLENGINE: BEGIN NEW CODE williamr@4: /** williamr@4: * xmlBufferContent: williamr@4: * @param buf the buffer williamr@4: * williamr@4: * Function to extract the content of a buffer williamr@4: * williamr@4: * Returns the internal content williamr@4: */ williamr@4: #define xmlBufferContent(buf) ((buf)? (buf)->content : NULL) williamr@4: // XMLENGINE: END NEW CODE williamr@4: williamr@4: // DONE: OPTIMIZE: replaced by MACRO williamr@4: // XMLPUBFUN const xmlChar* XMLCALL williamr@4: // xmlBufferContent (const xmlBufferPtr buf); williamr@4: williamr@4: /* williamr@4: * Creating/freeing new structures. williamr@4: */ williamr@4: williamr@4: XMLPUBFUN xmlDtdPtr XMLCALL williamr@4: xmlCreateIntSubset (xmlDocPtr doc, williamr@4: const xmlChar *name, williamr@4: const xmlChar *ExternalID, williamr@4: const xmlChar *SystemID); williamr@4: XMLPUBFUN xmlDtdPtr XMLCALL williamr@4: xmlNewDtd (xmlDocPtr doc, williamr@4: const xmlChar *name, williamr@4: const xmlChar *ExternalID, williamr@4: const xmlChar *SystemID); williamr@4: XMLPUBFUN xmlDtdPtr XMLCALL williamr@4: xmlGetIntSubset (xmlDocPtr doc); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreeDtd (xmlDtdPtr cur); williamr@4: XMLPUBFUN xmlNsPtr XMLCALL williamr@4: xmlNewGlobalNs (xmlDocPtr doc, williamr@4: const xmlChar *href, williamr@4: const xmlChar *prefix); williamr@4: XMLPUBFUN xmlNsPtr XMLCALL williamr@4: xmlNewNs (xmlNodePtr node, williamr@4: const xmlChar *href, williamr@4: const xmlChar *prefix); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreeNs (xmlNsPtr cur); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreeNsList (xmlNsPtr cur); williamr@4: XMLPUBFUN xmlDocPtr XMLCALL williamr@4: xmlNewDoc (const xmlChar *version); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreeDoc (xmlDocPtr cur); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlNewDocProp (xmlDocPtr doc, williamr@4: const xmlChar *name, williamr@4: const xmlChar *value); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlNewProp (xmlNodePtr node, williamr@4: const xmlChar *name, williamr@4: const xmlChar *value); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlNewNsProp (xmlNodePtr node, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *value); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlNewNsPropEatName (xmlNodePtr node, williamr@4: xmlNsPtr ns, williamr@4: xmlChar *name, williamr@4: const xmlChar *value); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreePropList (xmlAttrPtr cur); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlFreeProp (xmlAttrPtr cur); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlCopyProp (xmlNodePtr target, williamr@4: xmlAttrPtr cur); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlCopyPropList (xmlNodePtr target, williamr@4: xmlAttrPtr cur); williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlDtdPtr XMLCALL williamr@4: xmlCopyDtd (xmlDtdPtr dtd); williamr@4: XMLPUBFUN xmlDocPtr XMLCALL williamr@4: xmlCopyDoc (xmlDocPtr doc, williamr@4: int recursive); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: /* williamr@4: * Creating new nodes. williamr@4: */ williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocNode (xmlDocPtr doc, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocNodeEatName (xmlDocPtr doc, williamr@4: xmlNsPtr ns, williamr@4: xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocRawNode (xmlDocPtr doc, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewNode (xmlNsPtr ns, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewNodeEatName (xmlNsPtr ns, williamr@4: xmlChar *name); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewChild (xmlNodePtr parent, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewTextChild (xmlNodePtr parent, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocText (xmlDocPtr doc, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewText (const xmlChar *content); williamr@4: williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewPI (const xmlChar *name, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocTextLen (xmlDocPtr doc, williamr@4: const xmlChar *content, williamr@4: int len); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewTextLen (const xmlChar *content, williamr@4: int len); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewDocComment (xmlDocPtr doc, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewComment (const xmlChar *content); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewCDataBlock (xmlDocPtr doc, williamr@4: const xmlChar *content, williamr@4: int len); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewCharRef (xmlDocPtr doc, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlNewReference (xmlDocPtr doc, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlCopyNode (const xmlNodePtr node, williamr@4: int recursive); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlDocCopyNode (const xmlNodePtr node, williamr@4: xmlDocPtr doc, williamr@4: int recursive); williamr@4: williamr@4: williamr@4: XMLPUBFUN xmlNodePtr XMLCALL xmlCopyNodeList (const xmlNodePtr node); williamr@4: williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlNodePtr XMLCALL xmlNewDocFragment (xmlDocPtr doc); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: /* williamr@4: * Navigating. williamr@4: */ williamr@4: #ifdef LIBXML_ENABLE_NODE_LINEINFO williamr@4: XMLPUBFUN long XMLCALL xmlGetLineNo(xmlNodePtr node); williamr@4: #endif williamr@4: williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: # ifndef XMLENGINE_EXCLUDE_UNUSED williamr@4: XMLPUBFUN xmlChar * XMLCALL xmlGetNodePath (xmlNodePtr node); williamr@4: # endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */ williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: XMLPUBFUN xmlNodePtr XMLCALL xmlDocGetRootElement (xmlDocPtr doc); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL xmlGetLastChild (xmlNodePtr parent); williamr@4: XMLPUBFUN int XMLCALL xmlNodeIsText (xmlNodePtr node); williamr@4: XMLPUBFUN int XMLCALL xmlIsBlankNode (xmlNodePtr node); williamr@4: williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: /* williamr@4: * Changing the structure. williamr@4: */ williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlDocSetRootElement (xmlDocPtr doc, xmlNodePtr root); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetName (xmlNodePtr cur, const xmlChar *name); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlReplaceNode (xmlNodePtr old, xmlNodePtr cur); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlAddChild (xmlNodePtr parent, xmlNodePtr cur); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlAddChildList (xmlNodePtr parent, xmlNodePtr cur); williamr@4: williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlAddSibling (xmlNodePtr cur, xmlNodePtr elem); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlAddNextSibling (xmlNodePtr cur, xmlNodePtr elem); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlUnlinkNode (xmlNodePtr cur); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlTextMerge (xmlNodePtr first, xmlNodePtr second); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlTextConcat (xmlNodePtr node, const xmlChar *content, int len); williamr@4: williamr@4: XMLPUBFUN void XMLCALL xmlFreeNodeList (xmlNodePtr cur); williamr@4: XMLPUBFUN void XMLCALL xmlFreeNode (xmlNodePtr cur); williamr@4: XMLPUBFUN void XMLCALL xmlSetTreeDoc (xmlNodePtr tree, xmlDocPtr doc); williamr@4: XMLPUBFUN void XMLCALL xmlSetListDoc (xmlNodePtr list, xmlDocPtr doc); williamr@4: /* williamr@4: * Namespaces. williamr@4: */ williamr@4: XMLPUBFUN xmlNsPtr XMLCALL williamr@4: xmlSearchNs (xmlDocPtr doc, williamr@4: xmlNodePtr node, williamr@4: const xmlChar *nameSpace); williamr@4: XMLPUBFUN xmlNsPtr XMLCALL williamr@4: xmlSearchNsByHref (xmlDocPtr doc, williamr@4: xmlNodePtr node, williamr@4: const xmlChar *href); williamr@4: williamr@4: XMLPUBFUN void XMLCALL xmlSetNs (xmlNodePtr node, xmlNsPtr ns); williamr@4: XMLPUBFUN xmlNsPtr XMLCALL xmlCopyNamespace (xmlNsPtr cur); williamr@4: XMLPUBFUN xmlNsPtr XMLCALL xmlCopyNamespaceList (xmlNsPtr cur); williamr@4: williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlNsPtr* XMLCALL xmlGetNsList (xmlDocPtr doc, xmlNodePtr node); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: williamr@4: /* williamr@4: * Changing the content. williamr@4: */ williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlSetProp (xmlNodePtr node, williamr@4: const xmlChar *name, williamr@4: const xmlChar *value); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlGetNoNsProp (xmlNodePtr node, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlGetProp (xmlNodePtr node, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlHasProp (xmlNodePtr node, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlHasNsProp (xmlNodePtr node, williamr@4: const xmlChar *name, williamr@4: const xmlChar *nameSpace); williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlAttrPtr XMLCALL williamr@4: xmlSetNsProp (xmlNodePtr node, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name, williamr@4: const xmlChar *value); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlGetNsProp (xmlNodePtr node, williamr@4: const xmlChar *name, williamr@4: const xmlChar *nameSpace); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlStringGetNodeList (xmlDocPtr doc, williamr@4: const xmlChar *value); williamr@4: XMLPUBFUN xmlNodePtr XMLCALL williamr@4: xmlStringLenGetNodeList (xmlDocPtr doc, williamr@4: const xmlChar *value, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlNodeListGetString (xmlDocPtr doc, williamr@4: xmlNodePtr list, williamr@4: int inLine); williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlNodeListGetRawString (xmlDocPtr doc, williamr@4: xmlNodePtr list, williamr@4: int inLine); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetContent (xmlNodePtr cur, williamr@4: const xmlChar *content); williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetContentLen (xmlNodePtr cur, williamr@4: const xmlChar *content, williamr@4: int len); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeAddContent (xmlNodePtr cur, williamr@4: const xmlChar *content); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeAddContentLen (xmlNodePtr cur, williamr@4: const xmlChar *content, williamr@4: int len); williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlNodeGetContent (xmlNodePtr cur); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlNodeBufGetContent (xmlBufferPtr buffer, williamr@4: xmlNodePtr cur); williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlNodeGetLang (xmlNodePtr cur); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlNodeGetSpacePreserve (xmlNodePtr cur); williamr@4: williamr@4: XMLPUBFUN xmlChar * XMLCALL williamr@4: xmlNodeGetBase (xmlDocPtr doc, williamr@4: xmlNodePtr cur); williamr@4: williamr@4: #ifdef LIBXML_TREE_ENABLED williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetLang (xmlNodePtr cur, williamr@4: const xmlChar *lang); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetSpacePreserve (xmlNodePtr cur, williamr@4: int val); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeSetBase (xmlNodePtr cur, williamr@4: const xmlChar *uri); williamr@4: /* williamr@4: * Removing content. williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlRemoveProp (xmlAttrPtr cur); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUnsetProp (xmlNodePtr node, williamr@4: const xmlChar *name); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlUnsetNsProp (xmlNodePtr node, williamr@4: xmlNsPtr ns, williamr@4: const xmlChar *name); williamr@4: #endif /* LIBXML_TREE_ENABLED */ williamr@4: williamr@4: /* williamr@4: * Internal, don't use. williamr@4: */ williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferWriteCHAR (xmlBufferPtr buf, williamr@4: const xmlChar *string); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferWriteChar (xmlBufferPtr buf, williamr@4: const char *string); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlBufferWriteQuotedString(xmlBufferPtr buf, williamr@4: const xmlChar *string); williamr@4: williamr@4: XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf, williamr@4: xmlDocPtr doc, williamr@4: xmlAttrPtr attr, williamr@4: const xmlChar *string); williamr@4: williamr@4: /* williamr@4: * Namespace handling. williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlReconciliateNs (xmlDocPtr doc, williamr@4: xmlNodePtr tree); williamr@4: williamr@4: #ifdef LIBXML_OUTPUT_ENABLED williamr@4: /* williamr@4: * Saving. williamr@4: */ williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlDocDumpFormatMemory (xmlDocPtr cur, williamr@4: xmlChar **mem, williamr@4: int *size, williamr@4: int format); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlDocDumpMemory (xmlDocPtr cur, williamr@4: xmlChar **mem, williamr@4: int *size); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlDocDumpMemoryEnc (xmlDocPtr out_doc, williamr@4: xmlChar **doc_txt_ptr, williamr@4: int * doc_txt_len, williamr@4: const char *txt_encoding); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, williamr@4: xmlChar **doc_txt_ptr, williamr@4: int * doc_txt_len, williamr@4: const char *txt_encoding, williamr@4: int format); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_FILE_FUNC williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlDocFormatDump (FILE *f, williamr@4: xmlDocPtr cur, williamr@4: int format); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlDocDump (FILE *f, williamr@4: xmlDocPtr cur); williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlElemDump (FILE *f, williamr@4: xmlDocPtr doc, williamr@4: xmlNodePtr cur); williamr@4: #endif /* XMLENGINE_EXCLUDE_FILE_FUNC */ williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFile (const char *filename, williamr@4: xmlDocPtr cur); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFormatFile (const char *filename, williamr@4: xmlDocPtr cur, williamr@4: int format); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlNodeDump (xmlBufferPtr buf, williamr@4: xmlDocPtr doc, williamr@4: xmlNodePtr cur, williamr@4: int level, williamr@4: int format); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFileTo (xmlOutputBufferPtr buf, williamr@4: xmlDocPtr cur, williamr@4: const char *encoding); williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFormatFileTo (xmlOutputBufferPtr buf, williamr@4: xmlDocPtr cur, williamr@4: const char *encoding, williamr@4: int format); williamr@4: williamr@4: XMLPUBFUN void XMLCALL williamr@4: xmlNodeDumpOutput (xmlOutputBufferPtr buf, williamr@4: xmlDocPtr doc, williamr@4: xmlNodePtr cur, williamr@4: int level, williamr@4: int format, williamr@4: const char *encoding); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFormatFileEnc (const char *filename, williamr@4: xmlDocPtr cur, williamr@4: const char *encoding, williamr@4: int format); williamr@4: williamr@4: XMLPUBFUN int XMLCALL williamr@4: xmlSaveFileEnc (const char *filename, williamr@4: xmlDocPtr cur, williamr@4: const char *encoding); williamr@4: williamr@4: #endif /* LIBXML_OUTPUT_ENABLED */ williamr@4: /* williamr@4: * XHTML williamr@4: */ williamr@4: XMLPUBFUN int XMLCALL xmlIsXHTML(const xmlChar *systemID, const xmlChar *publicID); williamr@4: williamr@4: /* williamr@4: * Compression. williamr@4: */ williamr@4: XMLPUBFUN void XMLCALL xmlSetDocCompressMode(xmlDocPtr doc, int mode); williamr@4: williamr@4: #ifndef XMLENGINE_EXCLUDE_UNUSED williamr@4: XMLPUBFUN int XMLCALL xmlGetDocCompressMode(xmlDocPtr doc); williamr@4: XMLPUBFUN int XMLCALL xmlGetCompressMode(void); williamr@4: XMLPUBFUN void XMLCALL xmlSetCompressMode(int mode); williamr@4: #endif /* ifndef XMLENGINE_EXCLUDE_UNUSED */ williamr@4: williamr@4: #ifdef __cplusplus williamr@4: } williamr@4: #endif williamr@4: williamr@4: #endif /* XML_TREE_H */ williamr@4: williamr@4: