Eneboo - Documentación para desarrolladores
|
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