Eneboo - Documentación para desarrolladores
src/libdigidoc/libxml2/include/libxml/tree.h
Ir a la documentación de este archivo.
00001 /*
00002  * Summary: interfaces for tree manipulation
00003  * Description: this module describes the structures found in an tree resulting
00004  *              from an XML or HTML parsing, as well as the API provided for
00005  *              various processing on that tree
00006  *
00007  * Copy: See Copyright for the status of this software.
00008  *
00009  * Author: Daniel Veillard
00010  */
00011 
00012 #ifndef __XML_TREE_H__
00013 #define __XML_TREE_H__
00014 
00015 #include <stdio.h>
00016 #include <libxml/xmlversion.h>
00017 #include <libxml/xmlstring.h>
00018 
00019 #ifdef __cplusplus
00020 extern "C" {
00021 #endif
00022 
00023 /*
00024  * Some of the basic types pointer to structures:
00025  */
00026 /* xmlIO.h */
00027 typedef struct _xmlParserInputBuffer xmlParserInputBuffer;
00028 typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
00029 
00030 typedef struct _xmlOutputBuffer xmlOutputBuffer;
00031 typedef xmlOutputBuffer *xmlOutputBufferPtr;
00032 
00033 /* parser.h */
00034 typedef struct _xmlParserInput xmlParserInput;
00035 typedef xmlParserInput *xmlParserInputPtr;
00036 
00037 typedef struct _xmlParserCtxt xmlParserCtxt;
00038 typedef xmlParserCtxt *xmlParserCtxtPtr;
00039 
00040 typedef struct _xmlSAXLocator xmlSAXLocator;
00041 typedef xmlSAXLocator *xmlSAXLocatorPtr;
00042 
00043 typedef struct _xmlSAXHandler xmlSAXHandler;
00044 typedef xmlSAXHandler *xmlSAXHandlerPtr;
00045 
00046 /* entities.h */
00047 typedef struct _xmlEntity xmlEntity;
00048 typedef xmlEntity *xmlEntityPtr;
00049 
00055 #define BASE_BUFFER_SIZE 4096
00056 
00064 /* #define LIBXML_NAMESPACE_DICT */
00065 
00073 typedef enum {
00074     XML_BUFFER_ALLOC_DOUBLEIT,  /* double each time one need to grow */
00075     XML_BUFFER_ALLOC_EXACT,     /* grow only to the minimal size */
00076     XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */
00077     XML_BUFFER_ALLOC_IO         /* special allocation scheme used for I/O */
00078 } xmlBufferAllocationScheme;
00079 
00085 typedef struct _xmlBuffer xmlBuffer;
00086 typedef xmlBuffer *xmlBufferPtr;
00087 struct _xmlBuffer {
00088     xmlChar *content;           /* The buffer content UTF8 */
00089     unsigned int use;           /* The buffer size used */
00090     unsigned int size;          /* The buffer size */
00091     xmlBufferAllocationScheme alloc; /* The realloc method */
00092     xmlChar *contentIO;         /* in IO mode we may have a different base */
00093 };
00094 
00101 #define XML_XML_NAMESPACE \
00102     (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
00103 
00109 #define XML_XML_ID (const xmlChar *) "xml:id"
00110 
00111 /*
00112  * The different element types carried by an XML tree.
00113  *
00114  * NOTE: This is synchronized with DOM Level1 values
00115  *       See http://www.w3.org/TR/REC-DOM-Level-1/
00116  *
00117  * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should
00118  * be deprecated to use an XML_DTD_NODE.
00119  */
00120 typedef enum {
00121     XML_ELEMENT_NODE=           1,
00122     XML_ATTRIBUTE_NODE=         2,
00123     XML_TEXT_NODE=              3,
00124     XML_CDATA_SECTION_NODE=     4,
00125     XML_ENTITY_REF_NODE=        5,
00126     XML_ENTITY_NODE=            6,
00127     XML_PI_NODE=                7,
00128     XML_COMMENT_NODE=           8,
00129     XML_DOCUMENT_NODE=          9,
00130     XML_DOCUMENT_TYPE_NODE=     10,
00131     XML_DOCUMENT_FRAG_NODE=     11,
00132     XML_NOTATION_NODE=          12,
00133     XML_HTML_DOCUMENT_NODE=     13,
00134     XML_DTD_NODE=               14,
00135     XML_ELEMENT_DECL=           15,
00136     XML_ATTRIBUTE_DECL=         16,
00137     XML_ENTITY_DECL=            17,
00138     XML_NAMESPACE_DECL=         18,
00139     XML_XINCLUDE_START=         19,
00140     XML_XINCLUDE_END=           20
00141 #ifdef LIBXML_DOCB_ENABLED
00142    ,XML_DOCB_DOCUMENT_NODE=     21
00143 #endif
00144 } xmlElementType;
00145 
00146 
00153 typedef struct _xmlNotation xmlNotation;
00154 typedef xmlNotation *xmlNotationPtr;
00155 struct _xmlNotation {
00156     const xmlChar               *name;          /* Notation name */
00157     const xmlChar               *PublicID;      /* Public identifier, if any */
00158     const xmlChar               *SystemID;      /* System identifier, if any */
00159 };
00160 
00167 typedef enum {
00168     XML_ATTRIBUTE_CDATA = 1,
00169     XML_ATTRIBUTE_ID,
00170     XML_ATTRIBUTE_IDREF ,
00171     XML_ATTRIBUTE_IDREFS,
00172     XML_ATTRIBUTE_ENTITY,
00173     XML_ATTRIBUTE_ENTITIES,
00174     XML_ATTRIBUTE_NMTOKEN,
00175     XML_ATTRIBUTE_NMTOKENS,
00176     XML_ATTRIBUTE_ENUMERATION,
00177     XML_ATTRIBUTE_NOTATION
00178 } xmlAttributeType;
00179 
00186 typedef enum {
00187     XML_ATTRIBUTE_NONE = 1,
00188     XML_ATTRIBUTE_REQUIRED,
00189     XML_ATTRIBUTE_IMPLIED,
00190     XML_ATTRIBUTE_FIXED
00191 } xmlAttributeDefault;
00192 
00199 typedef struct _xmlEnumeration xmlEnumeration;
00200 typedef xmlEnumeration *xmlEnumerationPtr;
00201 struct _xmlEnumeration {
00202     struct _xmlEnumeration    *next;    /* next one */
00203     const xmlChar            *name;     /* Enumeration name */
00204 };
00205 
00212 typedef struct _xmlAttribute xmlAttribute;
00213 typedef xmlAttribute *xmlAttributePtr;
00214 struct _xmlAttribute {
00215     void           *_private;           /* application data */
00216     xmlElementType          type;       /* XML_ATTRIBUTE_DECL, must be second ! */
00217     const xmlChar          *name;       /* Attribute name */
00218     struct _xmlNode    *children;       /* NULL */
00219     struct _xmlNode        *last;       /* NULL */
00220     struct _xmlDtd       *parent;       /* -> DTD */
00221     struct _xmlNode        *next;       /* next sibling link  */
00222     struct _xmlNode        *prev;       /* previous sibling link  */
00223     struct _xmlDoc          *doc;       /* the containing document */
00224 
00225     struct _xmlAttribute  *nexth;       /* next in hash table */
00226     xmlAttributeType       atype;       /* The attribute type */
00227     xmlAttributeDefault      def;       /* the default */
00228     const xmlChar  *defaultValue;       /* or the default value */
00229     xmlEnumerationPtr       tree;       /* or the enumeration tree if any */
00230     const xmlChar        *prefix;       /* the namespace prefix if any */
00231     const xmlChar          *elem;       /* Element holding the attribute */
00232 };
00233 
00239 typedef enum {
00240     XML_ELEMENT_CONTENT_PCDATA = 1,
00241     XML_ELEMENT_CONTENT_ELEMENT,
00242     XML_ELEMENT_CONTENT_SEQ,
00243     XML_ELEMENT_CONTENT_OR
00244 } xmlElementContentType;
00245 
00251 typedef enum {
00252     XML_ELEMENT_CONTENT_ONCE = 1,
00253     XML_ELEMENT_CONTENT_OPT,
00254     XML_ELEMENT_CONTENT_MULT,
00255     XML_ELEMENT_CONTENT_PLUS
00256 } xmlElementContentOccur;
00257 
00265 typedef struct _xmlElementContent xmlElementContent;
00266 typedef xmlElementContent *xmlElementContentPtr;
00267 struct _xmlElementContent {
00268     xmlElementContentType     type;     /* PCDATA, ELEMENT, SEQ or OR */
00269     xmlElementContentOccur    ocur;     /* ONCE, OPT, MULT or PLUS */
00270     const xmlChar             *name;    /* Element name */
00271     struct _xmlElementContent *c1;      /* first child */
00272     struct _xmlElementContent *c2;      /* second child */
00273     struct _xmlElementContent *parent;  /* parent */
00274     const xmlChar             *prefix;  /* Namespace prefix */
00275 };
00276 
00283 typedef enum {
00284     XML_ELEMENT_TYPE_UNDEFINED = 0,
00285     XML_ELEMENT_TYPE_EMPTY = 1,
00286     XML_ELEMENT_TYPE_ANY,
00287     XML_ELEMENT_TYPE_MIXED,
00288     XML_ELEMENT_TYPE_ELEMENT
00289 } xmlElementTypeVal;
00290 
00291 #ifdef __cplusplus
00292 }
00293 #endif
00294 #include <libxml/xmlregexp.h>
00295 #ifdef __cplusplus
00296 extern "C" {
00297 #endif
00298 
00305 typedef struct _xmlElement xmlElement;
00306 typedef xmlElement *xmlElementPtr;
00307 struct _xmlElement {
00308     void           *_private;           /* application data */
00309     xmlElementType          type;       /* XML_ELEMENT_DECL, must be second ! */
00310     const xmlChar          *name;       /* Element name */
00311     struct _xmlNode    *children;       /* NULL */
00312     struct _xmlNode        *last;       /* NULL */
00313     struct _xmlDtd       *parent;       /* -> DTD */
00314     struct _xmlNode        *next;       /* next sibling link  */
00315     struct _xmlNode        *prev;       /* previous sibling link  */
00316     struct _xmlDoc          *doc;       /* the containing document */
00317 
00318     xmlElementTypeVal      etype;       /* The type */
00319     xmlElementContentPtr content;       /* the allowed element content */
00320     xmlAttributePtr   attributes;       /* List of the declared attributes */
00321     const xmlChar        *prefix;       /* the namespace prefix if any */
00322 #ifdef LIBXML_REGEXP_ENABLED
00323     xmlRegexpPtr       contModel;       /* the validating regexp */
00324 #else
00325     void              *contModel;
00326 #endif
00327 };
00328 
00329 
00335 #define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
00336 typedef xmlElementType xmlNsType;
00337 
00348 typedef struct _xmlNs xmlNs;
00349 typedef xmlNs *xmlNsPtr;
00350 struct _xmlNs {
00351     struct _xmlNs  *next;       /* next Ns link for this node  */
00352     xmlNsType      type;        /* global or local */
00353     const xmlChar *href;        /* URL for the namespace */
00354     const xmlChar *prefix;      /* prefix for the namespace */
00355     void           *_private;   /* application data */
00356     struct _xmlDoc *context;            /* normally an xmlDoc */
00357 };
00358 
00365 typedef struct _xmlDtd xmlDtd;
00366 typedef xmlDtd *xmlDtdPtr;
00367 struct _xmlDtd {
00368     void           *_private;   /* application data */
00369     xmlElementType  type;       /* XML_DTD_NODE, must be second ! */
00370     const xmlChar *name;        /* Name of the DTD */
00371     struct _xmlNode *children;  /* the value of the property link */
00372     struct _xmlNode *last;      /* last child link */
00373     struct _xmlDoc  *parent;    /* child->parent link */
00374     struct _xmlNode *next;      /* next sibling link  */
00375     struct _xmlNode *prev;      /* previous sibling link  */
00376     struct _xmlDoc  *doc;       /* the containing document */
00377 
00378     /* End of common part */
00379     void          *notations;   /* Hash table for notations if any */
00380     void          *elements;    /* Hash table for elements if any */
00381     void          *attributes;  /* Hash table for attributes if any */
00382     void          *entities;    /* Hash table for entities if any */
00383     const xmlChar *ExternalID;  /* External identifier for PUBLIC DTD */
00384     const xmlChar *SystemID;    /* URI for a SYSTEM or PUBLIC DTD */
00385     void          *pentities;   /* Hash table for param entities if any */
00386 };
00387 
00393 typedef struct _xmlAttr xmlAttr;
00394 typedef xmlAttr *xmlAttrPtr;
00395 struct _xmlAttr {
00396     void           *_private;   /* application data */
00397     xmlElementType   type;      /* XML_ATTRIBUTE_NODE, must be second ! */
00398     const xmlChar   *name;      /* the name of the property */
00399     struct _xmlNode *children;  /* the value of the property */
00400     struct _xmlNode *last;      /* NULL */
00401     struct _xmlNode *parent;    /* child->parent link */
00402     struct _xmlAttr *next;      /* next sibling link  */
00403     struct _xmlAttr *prev;      /* previous sibling link  */
00404     struct _xmlDoc  *doc;       /* the containing document */
00405     xmlNs           *ns;        /* pointer to the associated namespace */
00406     xmlAttributeType atype;     /* the attribute type if validating */
00407     void            *psvi;      /* for type/PSVI informations */
00408 };
00409 
00416 typedef struct _xmlID xmlID;
00417 typedef xmlID *xmlIDPtr;
00418 struct _xmlID {
00419     struct _xmlID    *next;     /* next ID */
00420     const xmlChar    *value;    /* The ID name */
00421     xmlAttrPtr        attr;     /* The attribute holding it */
00422     const xmlChar    *name;     /* The attribute if attr is not available */
00423     int               lineno;   /* The line number if attr is not available */
00424     struct _xmlDoc   *doc;      /* The document holding the ID */
00425 };
00426 
00433 typedef struct _xmlRef xmlRef;
00434 typedef xmlRef *xmlRefPtr;
00435 struct _xmlRef {
00436     struct _xmlRef    *next;    /* next Ref */
00437     const xmlChar     *value;   /* The Ref name */
00438     xmlAttrPtr        attr;     /* The attribute holding it */
00439     const xmlChar    *name;     /* The attribute if attr is not available */
00440     int               lineno;   /* The line number if attr is not available */
00441 };
00442 
00448 typedef struct _xmlNode xmlNode;
00449 typedef xmlNode *xmlNodePtr;
00450 struct _xmlNode {
00451     void           *_private;   /* application data */
00452     xmlElementType   type;      /* type number, must be second ! */
00453     const xmlChar   *name;      /* the name of the node, or the entity */
00454     struct _xmlNode *children;  /* parent->childs link */
00455     struct _xmlNode *last;      /* last child link */
00456     struct _xmlNode *parent;    /* child->parent link */
00457     struct _xmlNode *next;      /* next sibling link  */
00458     struct _xmlNode *prev;      /* previous sibling link  */
00459     struct _xmlDoc  *doc;       /* the containing document */
00460 
00461     /* End of common part */
00462     xmlNs           *ns;        /* pointer to the associated namespace */
00463     xmlChar         *content;   /* the content */
00464     struct _xmlAttr *properties;/* properties list */
00465     xmlNs           *nsDef;     /* namespace definitions on this node */
00466     void            *psvi;      /* for type/PSVI informations */
00467     unsigned short   line;      /* line number */
00468     unsigned short   extra;     /* extra data for XPath/XSLT */
00469 };
00470 
00476 #define XML_GET_CONTENT(n)                                      \
00477     ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
00478 
00484 #define XML_GET_LINE(n)                                         \
00485     (xmlGetLineNo(n))
00486 
00493 typedef enum {
00494     XML_DOC_WELLFORMED          = 1<<0, /* document is XML well formed */
00495     XML_DOC_NSVALID             = 1<<1, /* document is Namespace valid */
00496     XML_DOC_OLD10               = 1<<2, /* parsed with old XML-1.0 parser */
00497     XML_DOC_DTDVALID            = 1<<3, /* DTD validation was successful */
00498     XML_DOC_XINCLUDE            = 1<<4, /* XInclude substitution was done */
00499     XML_DOC_USERBUILT           = 1<<5, /* Document was built using the API
00500                                            and not by parsing an instance */
00501     XML_DOC_INTERNAL            = 1<<6, /* built for internal processing */
00502     XML_DOC_HTML                = 1<<7  /* parsed or built HTML document */
00503 } xmlDocProperties;
00504 
00510 typedef struct _xmlDoc xmlDoc;
00511 typedef xmlDoc *xmlDocPtr;
00512 struct _xmlDoc {
00513     void           *_private;   /* application data */
00514     xmlElementType  type;       /* XML_DOCUMENT_NODE, must be second ! */
00515     char           *name;       /* name/filename/URI of the document */
00516     struct _xmlNode *children;  /* the document tree */
00517     struct _xmlNode *last;      /* last child link */
00518     struct _xmlNode *parent;    /* child->parent link */
00519     struct _xmlNode *next;      /* next sibling link  */
00520     struct _xmlNode *prev;      /* previous sibling link  */
00521     struct _xmlDoc  *doc;       /* autoreference to itself */
00522 
00523     /* End of common part */
00524     int             compression;/* level of zlib compression */
00525     int             standalone; /* standalone document (no external refs) 
00526                                      1 if standalone="yes"
00527                                      0 if standalone="no"
00528                                     -1 if there is no XML declaration
00529                                     -2 if there is an XML declaration, but no
00530                                         standalone attribute was specified */
00531     struct _xmlDtd  *intSubset; /* the document internal subset */
00532     struct _xmlDtd  *extSubset; /* the document external subset */
00533     struct _xmlNs   *oldNs;     /* Global namespace, the old way */
00534     const xmlChar  *version;    /* the XML version string */
00535     const xmlChar  *encoding;   /* external initial encoding, if any */
00536     void           *ids;        /* Hash table for ID attributes if any */
00537     void           *refs;       /* Hash table for IDREFs attributes if any */
00538     const xmlChar  *URL;        /* The URI for that document */
00539     int             charset;    /* encoding of the in-memory content
00540                                    actually an xmlCharEncoding */
00541     struct _xmlDict *dict;      /* dict used to allocate names or NULL */
00542     void           *psvi;       /* for type/PSVI informations */
00543     int             parseFlags; /* set of xmlParserOption used to parse the
00544                                    document */
00545     int             properties; /* set of xmlDocProperties for this document
00546                                    set at the end of parsing */
00547 };
00548 
00549 
00550 typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
00551 typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
00552 
00564 typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
00565                                                  xmlNodePtr node,
00566                                                  const xmlChar *nsName,
00567                                                  const xmlChar *nsPrefix);
00568 
00574 struct _xmlDOMWrapCtxt {
00575     void * _private;
00576     /*
00577     * The type of this context, just in case we need specialized
00578     * contexts in the future.
00579     */
00580     int type;
00581     /*
00582     * Internal namespace map used for various operations.
00583     */
00584     void * namespaceMap;
00585     /*
00586     * Use this one to acquire an xmlNsPtr intended for node->ns.
00587     * (Note that this is not intended for elem->nsDef).
00588     */
00589     xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
00590 };
00591 
00598 #ifndef xmlChildrenNode
00599 #define xmlChildrenNode children
00600 #endif
00601 
00608 #ifndef xmlRootNode
00609 #define xmlRootNode children
00610 #endif
00611 
00612 /*
00613  * Variables.
00614  */
00615 
00616 /*
00617  * Some helper functions
00618  */
00619 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_DEBUG_ENABLED) || defined (LIBXML_HTML_ENABLED) || defined(LIBXML_SAX1_ENABLED) || defined(LIBXML_HTML_ENABLED) || defined(LIBXML_WRITER_ENABLED) || defined(LIBXML_DOCB_ENABLED)
00620 XMLPUBFUN int XMLCALL
00621                 xmlValidateNCName       (const xmlChar *value,
00622                                          int space);
00623 #endif
00624 
00625 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
00626 XMLPUBFUN int XMLCALL           
00627                 xmlValidateQName        (const xmlChar *value,
00628                                          int space);
00629 XMLPUBFUN int XMLCALL           
00630                 xmlValidateName         (const xmlChar *value,
00631                                          int space);
00632 XMLPUBFUN int XMLCALL           
00633                 xmlValidateNMToken      (const xmlChar *value,
00634                                          int space);
00635 #endif
00636 
00637 XMLPUBFUN xmlChar * XMLCALL     
00638                 xmlBuildQName           (const xmlChar *ncname,
00639                                          const xmlChar *prefix,
00640                                          xmlChar *memory,
00641                                          int len);
00642 XMLPUBFUN xmlChar * XMLCALL     
00643                 xmlSplitQName2          (const xmlChar *name,
00644                                          xmlChar **prefix);
00645 XMLPUBFUN const xmlChar * XMLCALL       
00646                 xmlSplitQName3          (const xmlChar *name,
00647                                          int *len);
00648 
00649 /*
00650  * Handling Buffers.
00651  */
00652 
00653 XMLPUBFUN void XMLCALL          
00654                 xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme);
00655 XMLPUBFUN xmlBufferAllocationScheme XMLCALL      
00656                 xmlGetBufferAllocationScheme(void);
00657 
00658 XMLPUBFUN xmlBufferPtr XMLCALL  
00659                 xmlBufferCreate         (void);
00660 XMLPUBFUN xmlBufferPtr XMLCALL  
00661                 xmlBufferCreateSize     (size_t size);
00662 XMLPUBFUN xmlBufferPtr XMLCALL  
00663                 xmlBufferCreateStatic   (void *mem,
00664                                          size_t size);
00665 XMLPUBFUN int XMLCALL           
00666                 xmlBufferResize         (xmlBufferPtr buf,
00667                                          unsigned int size);
00668 XMLPUBFUN void XMLCALL          
00669                 xmlBufferFree           (xmlBufferPtr buf);
00670 XMLPUBFUN int XMLCALL           
00671                 xmlBufferDump           (FILE *file,
00672                                          xmlBufferPtr buf);
00673 XMLPUBFUN int XMLCALL           
00674                 xmlBufferAdd            (xmlBufferPtr buf,
00675                                          const xmlChar *str,
00676                                          int len);
00677 XMLPUBFUN int XMLCALL           
00678                 xmlBufferAddHead        (xmlBufferPtr buf,
00679                                          const xmlChar *str,
00680                                          int len);
00681 XMLPUBFUN int XMLCALL           
00682                 xmlBufferCat            (xmlBufferPtr buf,
00683                                          const xmlChar *str);
00684 XMLPUBFUN int XMLCALL   
00685                 xmlBufferCCat           (xmlBufferPtr buf,
00686                                          const char *str);
00687 XMLPUBFUN int XMLCALL           
00688                 xmlBufferShrink         (xmlBufferPtr buf,
00689                                          unsigned int len);
00690 XMLPUBFUN int XMLCALL           
00691                 xmlBufferGrow           (xmlBufferPtr buf,
00692                                          unsigned int len);
00693 XMLPUBFUN void XMLCALL          
00694                 xmlBufferEmpty          (xmlBufferPtr buf);
00695 XMLPUBFUN const xmlChar* XMLCALL        
00696                 xmlBufferContent        (const xmlBufferPtr buf);
00697 XMLPUBFUN void XMLCALL          
00698                 xmlBufferSetAllocationScheme(xmlBufferPtr buf,
00699                                          xmlBufferAllocationScheme scheme);
00700 XMLPUBFUN int XMLCALL           
00701                 xmlBufferLength         (const xmlBufferPtr buf);
00702 
00703 /*
00704  * Creating/freeing new structures.
00705  */
00706 XMLPUBFUN xmlDtdPtr XMLCALL     
00707                 xmlCreateIntSubset      (xmlDocPtr doc,
00708                                          const xmlChar *name,
00709                                          const xmlChar *ExternalID,
00710                                          const xmlChar *SystemID);
00711 XMLPUBFUN xmlDtdPtr XMLCALL     
00712                 xmlNewDtd               (xmlDocPtr doc,
00713                                          const xmlChar *name,
00714                                          const xmlChar *ExternalID,
00715                                          const xmlChar *SystemID);
00716 XMLPUBFUN xmlDtdPtr XMLCALL     
00717                 xmlGetIntSubset         (xmlDocPtr doc);
00718 XMLPUBFUN void XMLCALL          
00719                 xmlFreeDtd              (xmlDtdPtr cur);
00720 #ifdef LIBXML_LEGACY_ENABLED
00721 XMLPUBFUN xmlNsPtr XMLCALL      
00722                 xmlNewGlobalNs          (xmlDocPtr doc,
00723                                          const xmlChar *href,
00724                                          const xmlChar *prefix);
00725 #endif /* LIBXML_LEGACY_ENABLED */
00726 XMLPUBFUN xmlNsPtr XMLCALL      
00727                 xmlNewNs                (xmlNodePtr node,
00728                                          const xmlChar *href,
00729                                          const xmlChar *prefix);
00730 XMLPUBFUN void XMLCALL          
00731                 xmlFreeNs               (xmlNsPtr cur);
00732 XMLPUBFUN void XMLCALL          
00733                 xmlFreeNsList           (xmlNsPtr cur);
00734 XMLPUBFUN xmlDocPtr XMLCALL     
00735                 xmlNewDoc               (const xmlChar *version);
00736 XMLPUBFUN void XMLCALL          
00737                 xmlFreeDoc              (xmlDocPtr cur);
00738 XMLPUBFUN xmlAttrPtr XMLCALL    
00739                 xmlNewDocProp           (xmlDocPtr doc,
00740                                          const xmlChar *name,
00741                                          const xmlChar *value);
00742 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
00743     defined(LIBXML_SCHEMAS_ENABLED)
00744 XMLPUBFUN xmlAttrPtr XMLCALL    
00745                 xmlNewProp              (xmlNodePtr node,
00746                                          const xmlChar *name,
00747                                          const xmlChar *value);
00748 #endif
00749 XMLPUBFUN xmlAttrPtr XMLCALL    
00750                 xmlNewNsProp            (xmlNodePtr node,
00751                                          xmlNsPtr ns,
00752                                          const xmlChar *name,
00753                                          const xmlChar *value);
00754 XMLPUBFUN xmlAttrPtr XMLCALL    
00755                 xmlNewNsPropEatName     (xmlNodePtr node,
00756                                          xmlNsPtr ns,
00757                                          xmlChar *name,
00758                                          const xmlChar *value);
00759 XMLPUBFUN void XMLCALL          
00760                 xmlFreePropList         (xmlAttrPtr cur);
00761 XMLPUBFUN void XMLCALL          
00762                 xmlFreeProp             (xmlAttrPtr cur);
00763 XMLPUBFUN xmlAttrPtr XMLCALL    
00764                 xmlCopyProp             (xmlNodePtr target,
00765                                          xmlAttrPtr cur);
00766 XMLPUBFUN xmlAttrPtr XMLCALL    
00767                 xmlCopyPropList         (xmlNodePtr target,
00768                                          xmlAttrPtr cur);
00769 #ifdef LIBXML_TREE_ENABLED
00770 XMLPUBFUN xmlDtdPtr XMLCALL     
00771                 xmlCopyDtd              (xmlDtdPtr dtd);
00772 #endif /* LIBXML_TREE_ENABLED */
00773 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
00774 XMLPUBFUN xmlDocPtr XMLCALL     
00775                 xmlCopyDoc              (xmlDocPtr doc,
00776                                          int recursive);
00777 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
00778 /*
00779  * Creating new nodes.
00780  */
00781 XMLPUBFUN xmlNodePtr XMLCALL    
00782                 xmlNewDocNode           (xmlDocPtr doc,
00783                                          xmlNsPtr ns,
00784                                          const xmlChar *name,
00785                                          const xmlChar *content);
00786 XMLPUBFUN xmlNodePtr XMLCALL    
00787                 xmlNewDocNodeEatName    (xmlDocPtr doc,
00788                                          xmlNsPtr ns,
00789                                          xmlChar *name,
00790                                          const xmlChar *content);
00791 XMLPUBFUN xmlNodePtr XMLCALL    
00792                 xmlNewNode              (xmlNsPtr ns,
00793                                          const xmlChar *name);
00794 XMLPUBFUN xmlNodePtr XMLCALL    
00795                 xmlNewNodeEatName       (xmlNsPtr ns,
00796                                          xmlChar *name);
00797 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
00798 XMLPUBFUN xmlNodePtr XMLCALL    
00799                 xmlNewChild             (xmlNodePtr parent,
00800                                          xmlNsPtr ns,
00801                                          const xmlChar *name,
00802                                          const xmlChar *content);
00803 #endif
00804 XMLPUBFUN xmlNodePtr XMLCALL    
00805                 xmlNewDocText           (xmlDocPtr doc,
00806                                          const xmlChar *content);
00807 XMLPUBFUN xmlNodePtr XMLCALL    
00808                 xmlNewText              (const xmlChar *content);
00809 XMLPUBFUN xmlNodePtr XMLCALL    
00810                 xmlNewDocPI             (xmlDocPtr doc,
00811                                          const xmlChar *name,
00812                                          const xmlChar *content);
00813 XMLPUBFUN xmlNodePtr XMLCALL    
00814                 xmlNewPI                (const xmlChar *name,
00815                                          const xmlChar *content);
00816 XMLPUBFUN xmlNodePtr XMLCALL    
00817                 xmlNewDocTextLen        (xmlDocPtr doc,
00818                                          const xmlChar *content,
00819                                          int len);
00820 XMLPUBFUN xmlNodePtr XMLCALL    
00821                 xmlNewTextLen           (const xmlChar *content,
00822                                          int len);
00823 XMLPUBFUN xmlNodePtr XMLCALL    
00824                 xmlNewDocComment        (xmlDocPtr doc,
00825                                          const xmlChar *content);
00826 XMLPUBFUN xmlNodePtr XMLCALL    
00827                 xmlNewComment           (const xmlChar *content);
00828 XMLPUBFUN xmlNodePtr XMLCALL    
00829                 xmlNewCDataBlock        (xmlDocPtr doc,
00830                                          const xmlChar *content,
00831                                          int len);
00832 XMLPUBFUN xmlNodePtr XMLCALL    
00833                 xmlNewCharRef           (xmlDocPtr doc,
00834                                          const xmlChar *name);
00835 XMLPUBFUN xmlNodePtr XMLCALL    
00836                 xmlNewReference         (xmlDocPtr doc,
00837                                          const xmlChar *name);
00838 XMLPUBFUN xmlNodePtr XMLCALL    
00839                 xmlCopyNode             (const xmlNodePtr node,
00840                                          int recursive);
00841 XMLPUBFUN xmlNodePtr XMLCALL    
00842                 xmlDocCopyNode          (const xmlNodePtr node,
00843                                          xmlDocPtr doc,
00844                                          int recursive);
00845 XMLPUBFUN xmlNodePtr XMLCALL    
00846                 xmlDocCopyNodeList      (xmlDocPtr doc,
00847                                          const xmlNodePtr node);
00848 XMLPUBFUN xmlNodePtr XMLCALL    
00849                 xmlCopyNodeList         (const xmlNodePtr node);
00850 #ifdef LIBXML_TREE_ENABLED
00851 XMLPUBFUN xmlNodePtr XMLCALL    
00852                 xmlNewTextChild         (xmlNodePtr parent,
00853                                          xmlNsPtr ns,
00854                                          const xmlChar *name,
00855                                          const xmlChar *content);
00856 XMLPUBFUN xmlNodePtr XMLCALL    
00857                 xmlNewDocRawNode        (xmlDocPtr doc,
00858                                          xmlNsPtr ns,
00859                                          const xmlChar *name,
00860                                          const xmlChar *content);
00861 XMLPUBFUN xmlNodePtr XMLCALL    
00862                 xmlNewDocFragment       (xmlDocPtr doc);
00863 #endif /* LIBXML_TREE_ENABLED */
00864 
00865 /*
00866  * Navigating.
00867  */
00868 XMLPUBFUN long XMLCALL          
00869                 xmlGetLineNo            (xmlNodePtr node);
00870 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
00871 XMLPUBFUN xmlChar * XMLCALL     
00872                 xmlGetNodePath          (xmlNodePtr node);
00873 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */
00874 XMLPUBFUN xmlNodePtr XMLCALL    
00875                 xmlDocGetRootElement    (xmlDocPtr doc);
00876 XMLPUBFUN xmlNodePtr XMLCALL    
00877                 xmlGetLastChild         (xmlNodePtr parent);
00878 XMLPUBFUN int XMLCALL           
00879                 xmlNodeIsText           (xmlNodePtr node);
00880 XMLPUBFUN int XMLCALL           
00881                 xmlIsBlankNode          (xmlNodePtr node);
00882 
00883 /*
00884  * Changing the structure.
00885  */
00886 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
00887 XMLPUBFUN xmlNodePtr XMLCALL    
00888                 xmlDocSetRootElement    (xmlDocPtr doc,
00889                                          xmlNodePtr root);
00890 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
00891 #ifdef LIBXML_TREE_ENABLED
00892 XMLPUBFUN void XMLCALL          
00893                 xmlNodeSetName          (xmlNodePtr cur,
00894                                          const xmlChar *name);
00895 #endif /* LIBXML_TREE_ENABLED */
00896 XMLPUBFUN xmlNodePtr XMLCALL    
00897                 xmlAddChild             (xmlNodePtr parent,
00898                                          xmlNodePtr cur);
00899 XMLPUBFUN xmlNodePtr XMLCALL    
00900                 xmlAddChildList         (xmlNodePtr parent,
00901                                          xmlNodePtr cur);
00902 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
00903 XMLPUBFUN xmlNodePtr XMLCALL    
00904                 xmlReplaceNode          (xmlNodePtr old,
00905                                          xmlNodePtr cur);
00906 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */
00907 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
00908     defined(LIBXML_SCHEMAS_ENABLED)
00909 XMLPUBFUN xmlNodePtr XMLCALL    
00910                 xmlAddPrevSibling       (xmlNodePtr cur,
00911                                          xmlNodePtr elem);
00912 #endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */
00913 XMLPUBFUN xmlNodePtr XMLCALL    
00914                 xmlAddSibling           (xmlNodePtr cur,
00915                                          xmlNodePtr elem);
00916 XMLPUBFUN xmlNodePtr XMLCALL    
00917                 xmlAddNextSibling       (xmlNodePtr cur,
00918                                          xmlNodePtr elem);
00919 XMLPUBFUN void XMLCALL          
00920                 xmlUnlinkNode           (xmlNodePtr cur);
00921 XMLPUBFUN xmlNodePtr XMLCALL    
00922                 xmlTextMerge            (xmlNodePtr first,
00923                                          xmlNodePtr second);
00924 XMLPUBFUN int XMLCALL           
00925                 xmlTextConcat           (xmlNodePtr node,
00926                                          const xmlChar *content,
00927                                          int len);
00928 XMLPUBFUN void XMLCALL          
00929                 xmlFreeNodeList         (xmlNodePtr cur);
00930 XMLPUBFUN void XMLCALL          
00931                 xmlFreeNode             (xmlNodePtr cur);
00932 XMLPUBFUN void XMLCALL          
00933                 xmlSetTreeDoc           (xmlNodePtr tree,
00934                                          xmlDocPtr doc);
00935 XMLPUBFUN void XMLCALL          
00936                 xmlSetListDoc           (xmlNodePtr list,
00937                                          xmlDocPtr doc);
00938 /*
00939  * Namespaces.
00940  */
00941 XMLPUBFUN xmlNsPtr XMLCALL      
00942                 xmlSearchNs             (xmlDocPtr doc,
00943                                          xmlNodePtr node,
00944                                          const xmlChar *nameSpace);
00945 XMLPUBFUN xmlNsPtr XMLCALL      
00946                 xmlSearchNsByHref       (xmlDocPtr doc,
00947                                          xmlNodePtr node,
00948                                          const xmlChar *href);
00949 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
00950 XMLPUBFUN xmlNsPtr * XMLCALL    
00951                 xmlGetNsList            (xmlDocPtr doc,
00952                                          xmlNodePtr node);
00953 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */
00954 
00955 XMLPUBFUN void XMLCALL          
00956                 xmlSetNs                (xmlNodePtr node,
00957                                          xmlNsPtr ns);
00958 XMLPUBFUN xmlNsPtr XMLCALL      
00959                 xmlCopyNamespace        (xmlNsPtr cur);
00960 XMLPUBFUN xmlNsPtr XMLCALL      
00961                 xmlCopyNamespaceList    (xmlNsPtr cur);
00962 
00963 /*
00964  * Changing the content.
00965  */
00966 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
00967 XMLPUBFUN xmlAttrPtr XMLCALL    
00968                 xmlSetProp              (xmlNodePtr node,
00969                                          const xmlChar *name,
00970                                          const xmlChar *value);
00971 XMLPUBFUN xmlAttrPtr XMLCALL    
00972                 xmlSetNsProp            (xmlNodePtr node,
00973                                          xmlNsPtr ns,
00974                                          const xmlChar *name,
00975                                          const xmlChar *value);
00976 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */
00977 XMLPUBFUN xmlChar * XMLCALL     
00978                 xmlGetNoNsProp          (xmlNodePtr node,
00979                                          const xmlChar *name);
00980 XMLPUBFUN xmlChar * XMLCALL     
00981                 xmlGetProp              (xmlNodePtr node,
00982                                          const xmlChar *name);
00983 XMLPUBFUN xmlAttrPtr XMLCALL    
00984                 xmlHasProp              (xmlNodePtr node,
00985                                          const xmlChar *name);
00986 XMLPUBFUN xmlAttrPtr XMLCALL    
00987                 xmlHasNsProp            (xmlNodePtr node,
00988                                          const xmlChar *name,
00989                                          const xmlChar *nameSpace);
00990 XMLPUBFUN xmlChar * XMLCALL     
00991                 xmlGetNsProp            (xmlNodePtr node,
00992                                          const xmlChar *name,
00993                                          const xmlChar *nameSpace);
00994 XMLPUBFUN xmlNodePtr XMLCALL    
00995                 xmlStringGetNodeList    (xmlDocPtr doc,
00996                                          const xmlChar *value);
00997 XMLPUBFUN xmlNodePtr XMLCALL    
00998                 xmlStringLenGetNodeList (xmlDocPtr doc,
00999                                          const xmlChar *value,
01000                                          int len);
01001 XMLPUBFUN xmlChar * XMLCALL     
01002                 xmlNodeListGetString    (xmlDocPtr doc,
01003                                          xmlNodePtr list,
01004                                          int inLine);
01005 #ifdef LIBXML_TREE_ENABLED
01006 XMLPUBFUN xmlChar * XMLCALL     
01007                 xmlNodeListGetRawString (xmlDocPtr doc,
01008                                          xmlNodePtr list,
01009                                          int inLine);
01010 #endif /* LIBXML_TREE_ENABLED */
01011 XMLPUBFUN void XMLCALL          
01012                 xmlNodeSetContent       (xmlNodePtr cur,
01013                                          const xmlChar *content);
01014 #ifdef LIBXML_TREE_ENABLED
01015 XMLPUBFUN void XMLCALL          
01016                 xmlNodeSetContentLen    (xmlNodePtr cur,
01017                                          const xmlChar *content,
01018                                          int len);
01019 #endif /* LIBXML_TREE_ENABLED */
01020 XMLPUBFUN void XMLCALL          
01021                 xmlNodeAddContent       (xmlNodePtr cur,
01022                                          const xmlChar *content);
01023 XMLPUBFUN void XMLCALL          
01024                 xmlNodeAddContentLen    (xmlNodePtr cur,
01025                                          const xmlChar *content,
01026                                          int len);
01027 XMLPUBFUN xmlChar * XMLCALL     
01028                 xmlNodeGetContent       (xmlNodePtr cur);
01029 XMLPUBFUN int XMLCALL
01030                 xmlNodeBufGetContent    (xmlBufferPtr buffer,
01031                                          xmlNodePtr cur);
01032 XMLPUBFUN xmlChar * XMLCALL     
01033                 xmlNodeGetLang          (xmlNodePtr cur);
01034 XMLPUBFUN int XMLCALL           
01035                 xmlNodeGetSpacePreserve (xmlNodePtr cur);
01036 #ifdef LIBXML_TREE_ENABLED
01037 XMLPUBFUN void XMLCALL          
01038                 xmlNodeSetLang          (xmlNodePtr cur,
01039                                          const xmlChar *lang);
01040 XMLPUBFUN void XMLCALL          
01041                 xmlNodeSetSpacePreserve (xmlNodePtr cur,
01042                                          int val);
01043 #endif /* LIBXML_TREE_ENABLED */
01044 XMLPUBFUN xmlChar * XMLCALL     
01045                 xmlNodeGetBase          (xmlDocPtr doc,
01046                                          xmlNodePtr cur);
01047 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
01048 XMLPUBFUN void XMLCALL          
01049                 xmlNodeSetBase          (xmlNodePtr cur,
01050                                          const xmlChar *uri);
01051 #endif
01052 
01053 /*
01054  * Removing content.
01055  */
01056 XMLPUBFUN int XMLCALL           
01057                 xmlRemoveProp           (xmlAttrPtr cur);
01058 #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
01059 XMLPUBFUN int XMLCALL           
01060                 xmlUnsetNsProp          (xmlNodePtr node,
01061                                          xmlNsPtr ns,
01062                                          const xmlChar *name);
01063 XMLPUBFUN int XMLCALL           
01064                 xmlUnsetProp            (xmlNodePtr node,
01065                                          const xmlChar *name);
01066 #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */
01067 
01068 /*
01069  * Internal, don't use.
01070  */
01071 XMLPUBFUN void XMLCALL          
01072                 xmlBufferWriteCHAR      (xmlBufferPtr buf,
01073                                          const xmlChar *string);
01074 XMLPUBFUN void XMLCALL          
01075                 xmlBufferWriteChar      (xmlBufferPtr buf,
01076                                          const char *string);
01077 XMLPUBFUN void XMLCALL          
01078                 xmlBufferWriteQuotedString(xmlBufferPtr buf,
01079                                          const xmlChar *string);
01080 
01081 #ifdef LIBXML_OUTPUT_ENABLED
01082 XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf,
01083                                          xmlDocPtr doc,
01084                                          xmlAttrPtr attr,
01085                                          const xmlChar *string);
01086 #endif /* LIBXML_OUTPUT_ENABLED */
01087 
01088 #ifdef LIBXML_TREE_ENABLED
01089 /*
01090  * Namespace handling.
01091  */
01092 XMLPUBFUN int XMLCALL           
01093                 xmlReconciliateNs       (xmlDocPtr doc,
01094                                          xmlNodePtr tree);
01095 #endif
01096 
01097 #ifdef LIBXML_OUTPUT_ENABLED
01098 /*
01099  * Saving.
01100  */
01101 XMLPUBFUN void XMLCALL          
01102                 xmlDocDumpFormatMemory  (xmlDocPtr cur,
01103                                          xmlChar **mem,
01104                                          int *size,
01105                                          int format);
01106 XMLPUBFUN void XMLCALL          
01107                 xmlDocDumpMemory        (xmlDocPtr cur,
01108                                          xmlChar **mem,
01109                                          int *size);
01110 XMLPUBFUN void XMLCALL          
01111                 xmlDocDumpMemoryEnc     (xmlDocPtr out_doc,
01112                                          xmlChar **doc_txt_ptr,
01113                                          int * doc_txt_len,
01114                                          const char *txt_encoding);
01115 XMLPUBFUN void XMLCALL          
01116                 xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
01117                                          xmlChar **doc_txt_ptr,
01118                                          int * doc_txt_len,
01119                                          const char *txt_encoding,
01120                                          int format);
01121 XMLPUBFUN int XMLCALL           
01122                 xmlDocFormatDump        (FILE *f,
01123                                          xmlDocPtr cur,
01124                                          int format);
01125 XMLPUBFUN int XMLCALL   
01126                 xmlDocDump              (FILE *f,
01127                                          xmlDocPtr cur);
01128 XMLPUBFUN void XMLCALL          
01129                 xmlElemDump             (FILE *f,
01130                                          xmlDocPtr doc,
01131                                          xmlNodePtr cur);
01132 XMLPUBFUN int XMLCALL           
01133                 xmlSaveFile             (const char *filename,
01134                                          xmlDocPtr cur);
01135 XMLPUBFUN int XMLCALL           
01136                 xmlSaveFormatFile       (const char *filename,
01137                                          xmlDocPtr cur,
01138                                          int format);
01139 XMLPUBFUN int XMLCALL           
01140                 xmlNodeDump             (xmlBufferPtr buf,
01141                                          xmlDocPtr doc,
01142                                          xmlNodePtr cur,
01143                                          int level,
01144                                          int format);
01145 
01146 XMLPUBFUN int XMLCALL           
01147                 xmlSaveFileTo           (xmlOutputBufferPtr buf,
01148                                          xmlDocPtr cur,
01149                                          const char *encoding);
01150 XMLPUBFUN int XMLCALL             
01151                 xmlSaveFormatFileTo     (xmlOutputBufferPtr buf,
01152                                          xmlDocPtr cur,
01153                                          const char *encoding,
01154                                          int format);
01155 XMLPUBFUN void XMLCALL          
01156                 xmlNodeDumpOutput       (xmlOutputBufferPtr buf,
01157                                          xmlDocPtr doc,
01158                                          xmlNodePtr cur,
01159                                          int level,
01160                                          int format,
01161                                          const char *encoding);
01162 
01163 XMLPUBFUN int XMLCALL           
01164                 xmlSaveFormatFileEnc    (const char *filename,
01165                                          xmlDocPtr cur,
01166                                          const char *encoding,
01167                                          int format);
01168 
01169 XMLPUBFUN int XMLCALL           
01170                 xmlSaveFileEnc          (const char *filename,
01171                                          xmlDocPtr cur,
01172                                          const char *encoding);
01173 
01174 #endif /* LIBXML_OUTPUT_ENABLED */
01175 /*
01176  * XHTML
01177  */
01178 XMLPUBFUN int XMLCALL           
01179                 xmlIsXHTML              (const xmlChar *systemID,
01180                                          const xmlChar *publicID);
01181 
01182 /*
01183  * Compression.
01184  */
01185 XMLPUBFUN int XMLCALL           
01186                 xmlGetDocCompressMode   (xmlDocPtr doc);
01187 XMLPUBFUN void XMLCALL          
01188                 xmlSetDocCompressMode   (xmlDocPtr doc,
01189                                          int mode);
01190 XMLPUBFUN int XMLCALL           
01191                 xmlGetCompressMode      (void);
01192 XMLPUBFUN void XMLCALL          
01193                 xmlSetCompressMode      (int mode);
01194 
01195 /*
01196 * DOM-wrapper helper functions.
01197 */
01198 XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL
01199                 xmlDOMWrapNewCtxt       (void);
01200 XMLPUBFUN void XMLCALL
01201                 xmlDOMWrapFreeCtxt      (xmlDOMWrapCtxtPtr ctxt);
01202 XMLPUBFUN int XMLCALL
01203             xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
01204                                          xmlNodePtr elem,
01205                                          int options);
01206 XMLPUBFUN int XMLCALL
01207             xmlDOMWrapAdoptNode         (xmlDOMWrapCtxtPtr ctxt,
01208                                          xmlDocPtr sourceDoc,
01209                                          xmlNodePtr node,
01210                                          xmlDocPtr destDoc,                 
01211                                          xmlNodePtr destParent,
01212                                          int options);
01213 XMLPUBFUN int XMLCALL
01214             xmlDOMWrapRemoveNode        (xmlDOMWrapCtxtPtr ctxt,
01215                                          xmlDocPtr doc,
01216                                          xmlNodePtr node,
01217                                          int options);
01218 XMLPUBFUN int XMLCALL
01219             xmlDOMWrapCloneNode         (xmlDOMWrapCtxtPtr ctxt,
01220                                          xmlDocPtr sourceDoc,
01221                                          xmlNodePtr node,
01222                                          xmlNodePtr *clonedNode,
01223                                          xmlDocPtr destDoc,
01224                                          xmlNodePtr destParent,
01225                                          int deep,
01226                                          int options);
01227 
01228 #ifdef LIBXML_TREE_ENABLED
01229 /*
01230  * 5 interfaces from DOM ElementTraversal, but different in entities
01231  * traversal.
01232  */
01233 XMLPUBFUN unsigned long XMLCALL
01234             xmlChildElementCount        (xmlNodePtr parent);
01235 XMLPUBFUN xmlNodePtr XMLCALL
01236             xmlNextElementSibling       (xmlNodePtr node);
01237 XMLPUBFUN xmlNodePtr XMLCALL
01238             xmlFirstElementChild        (xmlNodePtr parent);
01239 XMLPUBFUN xmlNodePtr XMLCALL
01240             xmlLastElementChild         (xmlNodePtr parent);
01241 XMLPUBFUN xmlNodePtr XMLCALL
01242             xmlPreviousElementSibling   (xmlNodePtr node);
01243 #endif
01244 #ifdef __cplusplus
01245 }
01246 #endif
01247 #ifndef __XML_PARSER_H__
01248 #include <libxml/xmlmemory.h>
01249 #endif
01250 
01251 #endif /* __XML_TREE_H__ */
01252 
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'