Return to tree.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / include / libxml |
1.1 ! misho 1: /* ! 2: * Summary: interfaces for tree manipulation ! 3: * Description: this module describes the structures found in an tree resulting ! 4: * from an XML or HTML parsing, as well as the API provided for ! 5: * various processing on that tree ! 6: * ! 7: * Copy: See Copyright for the status of this software. ! 8: * ! 9: * Author: Daniel Veillard ! 10: */ ! 11: ! 12: #ifndef __XML_TREE_H__ ! 13: #define __XML_TREE_H__ ! 14: ! 15: #include <stdio.h> ! 16: #include <libxml/xmlversion.h> ! 17: #include <libxml/xmlstring.h> ! 18: ! 19: #ifdef __cplusplus ! 20: extern "C" { ! 21: #endif ! 22: ! 23: /* ! 24: * Some of the basic types pointer to structures: ! 25: */ ! 26: /* xmlIO.h */ ! 27: typedef struct _xmlParserInputBuffer xmlParserInputBuffer; ! 28: typedef xmlParserInputBuffer *xmlParserInputBufferPtr; ! 29: ! 30: typedef struct _xmlOutputBuffer xmlOutputBuffer; ! 31: typedef xmlOutputBuffer *xmlOutputBufferPtr; ! 32: ! 33: /* parser.h */ ! 34: typedef struct _xmlParserInput xmlParserInput; ! 35: typedef xmlParserInput *xmlParserInputPtr; ! 36: ! 37: typedef struct _xmlParserCtxt xmlParserCtxt; ! 38: typedef xmlParserCtxt *xmlParserCtxtPtr; ! 39: ! 40: typedef struct _xmlSAXLocator xmlSAXLocator; ! 41: typedef xmlSAXLocator *xmlSAXLocatorPtr; ! 42: ! 43: typedef struct _xmlSAXHandler xmlSAXHandler; ! 44: typedef xmlSAXHandler *xmlSAXHandlerPtr; ! 45: ! 46: /* entities.h */ ! 47: typedef struct _xmlEntity xmlEntity; ! 48: typedef xmlEntity *xmlEntityPtr; ! 49: ! 50: /** ! 51: * BASE_BUFFER_SIZE: ! 52: * ! 53: * default buffer size 4000. ! 54: */ ! 55: #define BASE_BUFFER_SIZE 4096 ! 56: ! 57: /** ! 58: * LIBXML_NAMESPACE_DICT: ! 59: * ! 60: * Defines experimental behaviour: ! 61: * 1) xmlNs gets an additional field @context (a xmlDoc) ! 62: * 2) when creating a tree, xmlNs->href is stored in the dict of xmlDoc. ! 63: */ ! 64: /* #define LIBXML_NAMESPACE_DICT */ ! 65: ! 66: /** ! 67: * xmlBufferAllocationScheme: ! 68: * ! 69: * A buffer allocation scheme can be defined to either match exactly the ! 70: * need or double it's allocated size each time it is found too small. ! 71: */ ! 72: ! 73: typedef enum { ! 74: XML_BUFFER_ALLOC_DOUBLEIT, /* double each time one need to grow */ ! 75: XML_BUFFER_ALLOC_EXACT, /* grow only to the minimal size */ ! 76: XML_BUFFER_ALLOC_IMMUTABLE, /* immutable buffer */ ! 77: XML_BUFFER_ALLOC_IO /* special allocation scheme used for I/O */ ! 78: } xmlBufferAllocationScheme; ! 79: ! 80: /** ! 81: * xmlBuffer: ! 82: * ! 83: * A buffer structure. ! 84: */ ! 85: typedef struct _xmlBuffer xmlBuffer; ! 86: typedef xmlBuffer *xmlBufferPtr; ! 87: struct _xmlBuffer { ! 88: xmlChar *content; /* The buffer content UTF8 */ ! 89: unsigned int use; /* The buffer size used */ ! 90: unsigned int size; /* The buffer size */ ! 91: xmlBufferAllocationScheme alloc; /* The realloc method */ ! 92: xmlChar *contentIO; /* in IO mode we may have a different base */ ! 93: }; ! 94: ! 95: /** ! 96: * XML_XML_NAMESPACE: ! 97: * ! 98: * This is the namespace for the special xml: prefix predefined in the ! 99: * XML Namespace specification. ! 100: */ ! 101: #define XML_XML_NAMESPACE \ ! 102: (const xmlChar *) "http://www.w3.org/XML/1998/namespace" ! 103: ! 104: /** ! 105: * XML_XML_ID: ! 106: * ! 107: * This is the name for the special xml:id attribute ! 108: */ ! 109: #define XML_XML_ID (const xmlChar *) "xml:id" ! 110: ! 111: /* ! 112: * The different element types carried by an XML tree. ! 113: * ! 114: * NOTE: This is synchronized with DOM Level1 values ! 115: * See http://www.w3.org/TR/REC-DOM-Level-1/ ! 116: * ! 117: * Actually this had diverged a bit, and now XML_DOCUMENT_TYPE_NODE should ! 118: * be deprecated to use an XML_DTD_NODE. ! 119: */ ! 120: typedef enum { ! 121: XML_ELEMENT_NODE= 1, ! 122: XML_ATTRIBUTE_NODE= 2, ! 123: XML_TEXT_NODE= 3, ! 124: XML_CDATA_SECTION_NODE= 4, ! 125: XML_ENTITY_REF_NODE= 5, ! 126: XML_ENTITY_NODE= 6, ! 127: XML_PI_NODE= 7, ! 128: XML_COMMENT_NODE= 8, ! 129: XML_DOCUMENT_NODE= 9, ! 130: XML_DOCUMENT_TYPE_NODE= 10, ! 131: XML_DOCUMENT_FRAG_NODE= 11, ! 132: XML_NOTATION_NODE= 12, ! 133: XML_HTML_DOCUMENT_NODE= 13, ! 134: XML_DTD_NODE= 14, ! 135: XML_ELEMENT_DECL= 15, ! 136: XML_ATTRIBUTE_DECL= 16, ! 137: XML_ENTITY_DECL= 17, ! 138: XML_NAMESPACE_DECL= 18, ! 139: XML_XINCLUDE_START= 19, ! 140: XML_XINCLUDE_END= 20 ! 141: #ifdef LIBXML_DOCB_ENABLED ! 142: ,XML_DOCB_DOCUMENT_NODE= 21 ! 143: #endif ! 144: } xmlElementType; ! 145: ! 146: ! 147: /** ! 148: * xmlNotation: ! 149: * ! 150: * A DTD Notation definition. ! 151: */ ! 152: ! 153: typedef struct _xmlNotation xmlNotation; ! 154: typedef xmlNotation *xmlNotationPtr; ! 155: struct _xmlNotation { ! 156: const xmlChar *name; /* Notation name */ ! 157: const xmlChar *PublicID; /* Public identifier, if any */ ! 158: const xmlChar *SystemID; /* System identifier, if any */ ! 159: }; ! 160: ! 161: /** ! 162: * xmlAttributeType: ! 163: * ! 164: * A DTD Attribute type definition. ! 165: */ ! 166: ! 167: typedef enum { ! 168: XML_ATTRIBUTE_CDATA = 1, ! 169: XML_ATTRIBUTE_ID, ! 170: XML_ATTRIBUTE_IDREF , ! 171: XML_ATTRIBUTE_IDREFS, ! 172: XML_ATTRIBUTE_ENTITY, ! 173: XML_ATTRIBUTE_ENTITIES, ! 174: XML_ATTRIBUTE_NMTOKEN, ! 175: XML_ATTRIBUTE_NMTOKENS, ! 176: XML_ATTRIBUTE_ENUMERATION, ! 177: XML_ATTRIBUTE_NOTATION ! 178: } xmlAttributeType; ! 179: ! 180: /** ! 181: * xmlAttributeDefault: ! 182: * ! 183: * A DTD Attribute default definition. ! 184: */ ! 185: ! 186: typedef enum { ! 187: XML_ATTRIBUTE_NONE = 1, ! 188: XML_ATTRIBUTE_REQUIRED, ! 189: XML_ATTRIBUTE_IMPLIED, ! 190: XML_ATTRIBUTE_FIXED ! 191: } xmlAttributeDefault; ! 192: ! 193: /** ! 194: * xmlEnumeration: ! 195: * ! 196: * List structure used when there is an enumeration in DTDs. ! 197: */ ! 198: ! 199: typedef struct _xmlEnumeration xmlEnumeration; ! 200: typedef xmlEnumeration *xmlEnumerationPtr; ! 201: struct _xmlEnumeration { ! 202: struct _xmlEnumeration *next; /* next one */ ! 203: const xmlChar *name; /* Enumeration name */ ! 204: }; ! 205: ! 206: /** ! 207: * xmlAttribute: ! 208: * ! 209: * An Attribute declaration in a DTD. ! 210: */ ! 211: ! 212: typedef struct _xmlAttribute xmlAttribute; ! 213: typedef xmlAttribute *xmlAttributePtr; ! 214: struct _xmlAttribute { ! 215: void *_private; /* application data */ ! 216: xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */ ! 217: const xmlChar *name; /* Attribute name */ ! 218: struct _xmlNode *children; /* NULL */ ! 219: struct _xmlNode *last; /* NULL */ ! 220: struct _xmlDtd *parent; /* -> DTD */ ! 221: struct _xmlNode *next; /* next sibling link */ ! 222: struct _xmlNode *prev; /* previous sibling link */ ! 223: struct _xmlDoc *doc; /* the containing document */ ! 224: ! 225: struct _xmlAttribute *nexth; /* next in hash table */ ! 226: xmlAttributeType atype; /* The attribute type */ ! 227: xmlAttributeDefault def; /* the default */ ! 228: const xmlChar *defaultValue; /* or the default value */ ! 229: xmlEnumerationPtr tree; /* or the enumeration tree if any */ ! 230: const xmlChar *prefix; /* the namespace prefix if any */ ! 231: const xmlChar *elem; /* Element holding the attribute */ ! 232: }; ! 233: ! 234: /** ! 235: * xmlElementContentType: ! 236: * ! 237: * Possible definitions of element content types. ! 238: */ ! 239: typedef enum { ! 240: XML_ELEMENT_CONTENT_PCDATA = 1, ! 241: XML_ELEMENT_CONTENT_ELEMENT, ! 242: XML_ELEMENT_CONTENT_SEQ, ! 243: XML_ELEMENT_CONTENT_OR ! 244: } xmlElementContentType; ! 245: ! 246: /** ! 247: * xmlElementContentOccur: ! 248: * ! 249: * Possible definitions of element content occurrences. ! 250: */ ! 251: typedef enum { ! 252: XML_ELEMENT_CONTENT_ONCE = 1, ! 253: XML_ELEMENT_CONTENT_OPT, ! 254: XML_ELEMENT_CONTENT_MULT, ! 255: XML_ELEMENT_CONTENT_PLUS ! 256: } xmlElementContentOccur; ! 257: ! 258: /** ! 259: * xmlElementContent: ! 260: * ! 261: * An XML Element content as stored after parsing an element definition ! 262: * in a DTD. ! 263: */ ! 264: ! 265: typedef struct _xmlElementContent xmlElementContent; ! 266: typedef xmlElementContent *xmlElementContentPtr; ! 267: struct _xmlElementContent { ! 268: xmlElementContentType type; /* PCDATA, ELEMENT, SEQ or OR */ ! 269: xmlElementContentOccur ocur; /* ONCE, OPT, MULT or PLUS */ ! 270: const xmlChar *name; /* Element name */ ! 271: struct _xmlElementContent *c1; /* first child */ ! 272: struct _xmlElementContent *c2; /* second child */ ! 273: struct _xmlElementContent *parent; /* parent */ ! 274: const xmlChar *prefix; /* Namespace prefix */ ! 275: }; ! 276: ! 277: /** ! 278: * xmlElementTypeVal: ! 279: * ! 280: * The different possibilities for an element content type. ! 281: */ ! 282: ! 283: typedef enum { ! 284: XML_ELEMENT_TYPE_UNDEFINED = 0, ! 285: XML_ELEMENT_TYPE_EMPTY = 1, ! 286: XML_ELEMENT_TYPE_ANY, ! 287: XML_ELEMENT_TYPE_MIXED, ! 288: XML_ELEMENT_TYPE_ELEMENT ! 289: } xmlElementTypeVal; ! 290: ! 291: #ifdef __cplusplus ! 292: } ! 293: #endif ! 294: #include <libxml/xmlregexp.h> ! 295: #ifdef __cplusplus ! 296: extern "C" { ! 297: #endif ! 298: ! 299: /** ! 300: * xmlElement: ! 301: * ! 302: * An XML Element declaration from a DTD. ! 303: */ ! 304: ! 305: typedef struct _xmlElement xmlElement; ! 306: typedef xmlElement *xmlElementPtr; ! 307: struct _xmlElement { ! 308: void *_private; /* application data */ ! 309: xmlElementType type; /* XML_ELEMENT_DECL, must be second ! */ ! 310: const xmlChar *name; /* Element name */ ! 311: struct _xmlNode *children; /* NULL */ ! 312: struct _xmlNode *last; /* NULL */ ! 313: struct _xmlDtd *parent; /* -> DTD */ ! 314: struct _xmlNode *next; /* next sibling link */ ! 315: struct _xmlNode *prev; /* previous sibling link */ ! 316: struct _xmlDoc *doc; /* the containing document */ ! 317: ! 318: xmlElementTypeVal etype; /* The type */ ! 319: xmlElementContentPtr content; /* the allowed element content */ ! 320: xmlAttributePtr attributes; /* List of the declared attributes */ ! 321: const xmlChar *prefix; /* the namespace prefix if any */ ! 322: #ifdef LIBXML_REGEXP_ENABLED ! 323: xmlRegexpPtr contModel; /* the validating regexp */ ! 324: #else ! 325: void *contModel; ! 326: #endif ! 327: }; ! 328: ! 329: ! 330: /** ! 331: * XML_LOCAL_NAMESPACE: ! 332: * ! 333: * A namespace declaration node. ! 334: */ ! 335: #define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL ! 336: typedef xmlElementType xmlNsType; ! 337: ! 338: /** ! 339: * xmlNs: ! 340: * ! 341: * An XML namespace. ! 342: * Note that prefix == NULL is valid, it defines the default namespace ! 343: * within the subtree (until overridden). ! 344: * ! 345: * xmlNsType is unified with xmlElementType. ! 346: */ ! 347: ! 348: typedef struct _xmlNs xmlNs; ! 349: typedef xmlNs *xmlNsPtr; ! 350: struct _xmlNs { ! 351: struct _xmlNs *next; /* next Ns link for this node */ ! 352: xmlNsType type; /* global or local */ ! 353: const xmlChar *href; /* URL for the namespace */ ! 354: const xmlChar *prefix; /* prefix for the namespace */ ! 355: void *_private; /* application data */ ! 356: struct _xmlDoc *context; /* normally an xmlDoc */ ! 357: }; ! 358: ! 359: /** ! 360: * xmlDtd: ! 361: * ! 362: * An XML DTD, as defined by <!DOCTYPE ... There is actually one for ! 363: * the internal subset and for the external subset. ! 364: */ ! 365: typedef struct _xmlDtd xmlDtd; ! 366: typedef xmlDtd *xmlDtdPtr; ! 367: struct _xmlDtd { ! 368: void *_private; /* application data */ ! 369: xmlElementType type; /* XML_DTD_NODE, must be second ! */ ! 370: const xmlChar *name; /* Name of the DTD */ ! 371: struct _xmlNode *children; /* the value of the property link */ ! 372: struct _xmlNode *last; /* last child link */ ! 373: struct _xmlDoc *parent; /* child->parent link */ ! 374: struct _xmlNode *next; /* next sibling link */ ! 375: struct _xmlNode *prev; /* previous sibling link */ ! 376: struct _xmlDoc *doc; /* the containing document */ ! 377: ! 378: /* End of common part */ ! 379: void *notations; /* Hash table for notations if any */ ! 380: void *elements; /* Hash table for elements if any */ ! 381: void *attributes; /* Hash table for attributes if any */ ! 382: void *entities; /* Hash table for entities if any */ ! 383: const xmlChar *ExternalID; /* External identifier for PUBLIC DTD */ ! 384: const xmlChar *SystemID; /* URI for a SYSTEM or PUBLIC DTD */ ! 385: void *pentities; /* Hash table for param entities if any */ ! 386: }; ! 387: ! 388: /** ! 389: * xmlAttr: ! 390: * ! 391: * An attribute on an XML node. ! 392: */ ! 393: typedef struct _xmlAttr xmlAttr; ! 394: typedef xmlAttr *xmlAttrPtr; ! 395: struct _xmlAttr { ! 396: void *_private; /* application data */ ! 397: xmlElementType type; /* XML_ATTRIBUTE_NODE, must be second ! */ ! 398: const xmlChar *name; /* the name of the property */ ! 399: struct _xmlNode *children; /* the value of the property */ ! 400: struct _xmlNode *last; /* NULL */ ! 401: struct _xmlNode *parent; /* child->parent link */ ! 402: struct _xmlAttr *next; /* next sibling link */ ! 403: struct _xmlAttr *prev; /* previous sibling link */ ! 404: struct _xmlDoc *doc; /* the containing document */ ! 405: xmlNs *ns; /* pointer to the associated namespace */ ! 406: xmlAttributeType atype; /* the attribute type if validating */ ! 407: void *psvi; /* for type/PSVI informations */ ! 408: }; ! 409: ! 410: /** ! 411: * xmlID: ! 412: * ! 413: * An XML ID instance. ! 414: */ ! 415: ! 416: typedef struct _xmlID xmlID; ! 417: typedef xmlID *xmlIDPtr; ! 418: struct _xmlID { ! 419: struct _xmlID *next; /* next ID */ ! 420: const xmlChar *value; /* The ID name */ ! 421: xmlAttrPtr attr; /* The attribute holding it */ ! 422: const xmlChar *name; /* The attribute if attr is not available */ ! 423: int lineno; /* The line number if attr is not available */ ! 424: struct _xmlDoc *doc; /* The document holding the ID */ ! 425: }; ! 426: ! 427: /** ! 428: * xmlRef: ! 429: * ! 430: * An XML IDREF instance. ! 431: */ ! 432: ! 433: typedef struct _xmlRef xmlRef; ! 434: typedef xmlRef *xmlRefPtr; ! 435: struct _xmlRef { ! 436: struct _xmlRef *next; /* next Ref */ ! 437: const xmlChar *value; /* The Ref name */ ! 438: xmlAttrPtr attr; /* The attribute holding it */ ! 439: const xmlChar *name; /* The attribute if attr is not available */ ! 440: int lineno; /* The line number if attr is not available */ ! 441: }; ! 442: ! 443: /** ! 444: * xmlNode: ! 445: * ! 446: * A node in an XML tree. ! 447: */ ! 448: typedef struct _xmlNode xmlNode; ! 449: typedef xmlNode *xmlNodePtr; ! 450: struct _xmlNode { ! 451: void *_private; /* application data */ ! 452: xmlElementType type; /* type number, must be second ! */ ! 453: const xmlChar *name; /* the name of the node, or the entity */ ! 454: struct _xmlNode *children; /* parent->childs link */ ! 455: struct _xmlNode *last; /* last child link */ ! 456: struct _xmlNode *parent; /* child->parent link */ ! 457: struct _xmlNode *next; /* next sibling link */ ! 458: struct _xmlNode *prev; /* previous sibling link */ ! 459: struct _xmlDoc *doc; /* the containing document */ ! 460: ! 461: /* End of common part */ ! 462: xmlNs *ns; /* pointer to the associated namespace */ ! 463: xmlChar *content; /* the content */ ! 464: struct _xmlAttr *properties;/* properties list */ ! 465: xmlNs *nsDef; /* namespace definitions on this node */ ! 466: void *psvi; /* for type/PSVI informations */ ! 467: unsigned short line; /* line number */ ! 468: unsigned short extra; /* extra data for XPath/XSLT */ ! 469: }; ! 470: ! 471: /** ! 472: * XML_GET_CONTENT: ! 473: * ! 474: * Macro to extract the content pointer of a node. ! 475: */ ! 476: #define XML_GET_CONTENT(n) \ ! 477: ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content) ! 478: ! 479: /** ! 480: * XML_GET_LINE: ! 481: * ! 482: * Macro to extract the line number of an element node. ! 483: */ ! 484: #define XML_GET_LINE(n) \ ! 485: (xmlGetLineNo(n)) ! 486: ! 487: /** ! 488: * xmlDocProperty ! 489: * ! 490: * Set of properties of the document as found by the parser ! 491: * Some of them are linked to similary named xmlParserOption ! 492: */ ! 493: typedef enum { ! 494: XML_DOC_WELLFORMED = 1<<0, /* document is XML well formed */ ! 495: XML_DOC_NSVALID = 1<<1, /* document is Namespace valid */ ! 496: XML_DOC_OLD10 = 1<<2, /* parsed with old XML-1.0 parser */ ! 497: XML_DOC_DTDVALID = 1<<3, /* DTD validation was successful */ ! 498: XML_DOC_XINCLUDE = 1<<4, /* XInclude substitution was done */ ! 499: XML_DOC_USERBUILT = 1<<5, /* Document was built using the API ! 500: and not by parsing an instance */ ! 501: XML_DOC_INTERNAL = 1<<6, /* built for internal processing */ ! 502: XML_DOC_HTML = 1<<7 /* parsed or built HTML document */ ! 503: } xmlDocProperties; ! 504: ! 505: /** ! 506: * xmlDoc: ! 507: * ! 508: * An XML document. ! 509: */ ! 510: typedef struct _xmlDoc xmlDoc; ! 511: typedef xmlDoc *xmlDocPtr; ! 512: struct _xmlDoc { ! 513: void *_private; /* application data */ ! 514: xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */ ! 515: char *name; /* name/filename/URI of the document */ ! 516: struct _xmlNode *children; /* the document tree */ ! 517: struct _xmlNode *last; /* last child link */ ! 518: struct _xmlNode *parent; /* child->parent link */ ! 519: struct _xmlNode *next; /* next sibling link */ ! 520: struct _xmlNode *prev; /* previous sibling link */ ! 521: struct _xmlDoc *doc; /* autoreference to itself */ ! 522: ! 523: /* End of common part */ ! 524: int compression;/* level of zlib compression */ ! 525: int standalone; /* standalone document (no external refs) ! 526: 1 if standalone="yes" ! 527: 0 if standalone="no" ! 528: -1 if there is no XML declaration ! 529: -2 if there is an XML declaration, but no ! 530: standalone attribute was specified */ ! 531: struct _xmlDtd *intSubset; /* the document internal subset */ ! 532: struct _xmlDtd *extSubset; /* the document external subset */ ! 533: struct _xmlNs *oldNs; /* Global namespace, the old way */ ! 534: const xmlChar *version; /* the XML version string */ ! 535: const xmlChar *encoding; /* external initial encoding, if any */ ! 536: void *ids; /* Hash table for ID attributes if any */ ! 537: void *refs; /* Hash table for IDREFs attributes if any */ ! 538: const xmlChar *URL; /* The URI for that document */ ! 539: int charset; /* encoding of the in-memory content ! 540: actually an xmlCharEncoding */ ! 541: struct _xmlDict *dict; /* dict used to allocate names or NULL */ ! 542: void *psvi; /* for type/PSVI informations */ ! 543: int parseFlags; /* set of xmlParserOption used to parse the ! 544: document */ ! 545: int properties; /* set of xmlDocProperties for this document ! 546: set at the end of parsing */ ! 547: }; ! 548: ! 549: ! 550: typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt; ! 551: typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr; ! 552: ! 553: /** ! 554: * xmlDOMWrapAcquireNsFunction: ! 555: * @ctxt: a DOM wrapper context ! 556: * @node: the context node (element or attribute) ! 557: * @nsName: the requested namespace name ! 558: * @nsPrefix: the requested namespace prefix ! 559: * ! 560: * A function called to acquire namespaces (xmlNs) from the wrapper. ! 561: * ! 562: * Returns an xmlNsPtr or NULL in case of an error. ! 563: */ ! 564: typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt, ! 565: xmlNodePtr node, ! 566: const xmlChar *nsName, ! 567: const xmlChar *nsPrefix); ! 568: ! 569: /** ! 570: * xmlDOMWrapCtxt: ! 571: * ! 572: * Context for DOM wrapper-operations. ! 573: */ ! 574: struct _xmlDOMWrapCtxt { ! 575: void * _private; ! 576: /* ! 577: * The type of this context, just in case we need specialized ! 578: * contexts in the future. ! 579: */ ! 580: int type; ! 581: /* ! 582: * Internal namespace map used for various operations. ! 583: */ ! 584: void * namespaceMap; ! 585: /* ! 586: * Use this one to acquire an xmlNsPtr intended for node->ns. ! 587: * (Note that this is not intended for elem->nsDef). ! 588: */ ! 589: xmlDOMWrapAcquireNsFunction getNsForNodeFunc; ! 590: }; ! 591: ! 592: /** ! 593: * xmlChildrenNode: ! 594: * ! 595: * Macro for compatibility naming layer with libxml1. Maps ! 596: * to "children." ! 597: */ ! 598: #ifndef xmlChildrenNode ! 599: #define xmlChildrenNode children ! 600: #endif ! 601: ! 602: /** ! 603: * xmlRootNode: ! 604: * ! 605: * Macro for compatibility naming layer with libxml1. Maps ! 606: * to "children". ! 607: */ ! 608: #ifndef xmlRootNode ! 609: #define xmlRootNode children ! 610: #endif ! 611: ! 612: /* ! 613: * Variables. ! 614: */ ! 615: ! 616: /* ! 617: * Some helper functions ! 618: */ ! 619: #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) ! 620: XMLPUBFUN int XMLCALL ! 621: xmlValidateNCName (const xmlChar *value, ! 622: int space); ! 623: #endif ! 624: ! 625: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) ! 626: XMLPUBFUN int XMLCALL ! 627: xmlValidateQName (const xmlChar *value, ! 628: int space); ! 629: XMLPUBFUN int XMLCALL ! 630: xmlValidateName (const xmlChar *value, ! 631: int space); ! 632: XMLPUBFUN int XMLCALL ! 633: xmlValidateNMToken (const xmlChar *value, ! 634: int space); ! 635: #endif ! 636: ! 637: XMLPUBFUN xmlChar * XMLCALL ! 638: xmlBuildQName (const xmlChar *ncname, ! 639: const xmlChar *prefix, ! 640: xmlChar *memory, ! 641: int len); ! 642: XMLPUBFUN xmlChar * XMLCALL ! 643: xmlSplitQName2 (const xmlChar *name, ! 644: xmlChar **prefix); ! 645: XMLPUBFUN const xmlChar * XMLCALL ! 646: xmlSplitQName3 (const xmlChar *name, ! 647: int *len); ! 648: ! 649: /* ! 650: * Handling Buffers. ! 651: */ ! 652: ! 653: XMLPUBFUN void XMLCALL ! 654: xmlSetBufferAllocationScheme(xmlBufferAllocationScheme scheme); ! 655: XMLPUBFUN xmlBufferAllocationScheme XMLCALL ! 656: xmlGetBufferAllocationScheme(void); ! 657: ! 658: XMLPUBFUN xmlBufferPtr XMLCALL ! 659: xmlBufferCreate (void); ! 660: XMLPUBFUN xmlBufferPtr XMLCALL ! 661: xmlBufferCreateSize (size_t size); ! 662: XMLPUBFUN xmlBufferPtr XMLCALL ! 663: xmlBufferCreateStatic (void *mem, ! 664: size_t size); ! 665: XMLPUBFUN int XMLCALL ! 666: xmlBufferResize (xmlBufferPtr buf, ! 667: unsigned int size); ! 668: XMLPUBFUN void XMLCALL ! 669: xmlBufferFree (xmlBufferPtr buf); ! 670: XMLPUBFUN int XMLCALL ! 671: xmlBufferDump (FILE *file, ! 672: xmlBufferPtr buf); ! 673: XMLPUBFUN int XMLCALL ! 674: xmlBufferAdd (xmlBufferPtr buf, ! 675: const xmlChar *str, ! 676: int len); ! 677: XMLPUBFUN int XMLCALL ! 678: xmlBufferAddHead (xmlBufferPtr buf, ! 679: const xmlChar *str, ! 680: int len); ! 681: XMLPUBFUN int XMLCALL ! 682: xmlBufferCat (xmlBufferPtr buf, ! 683: const xmlChar *str); ! 684: XMLPUBFUN int XMLCALL ! 685: xmlBufferCCat (xmlBufferPtr buf, ! 686: const char *str); ! 687: XMLPUBFUN int XMLCALL ! 688: xmlBufferShrink (xmlBufferPtr buf, ! 689: unsigned int len); ! 690: XMLPUBFUN int XMLCALL ! 691: xmlBufferGrow (xmlBufferPtr buf, ! 692: unsigned int len); ! 693: XMLPUBFUN void XMLCALL ! 694: xmlBufferEmpty (xmlBufferPtr buf); ! 695: XMLPUBFUN const xmlChar* XMLCALL ! 696: xmlBufferContent (const xmlBufferPtr buf); ! 697: XMLPUBFUN void XMLCALL ! 698: xmlBufferSetAllocationScheme(xmlBufferPtr buf, ! 699: xmlBufferAllocationScheme scheme); ! 700: XMLPUBFUN int XMLCALL ! 701: xmlBufferLength (const xmlBufferPtr buf); ! 702: ! 703: /* ! 704: * Creating/freeing new structures. ! 705: */ ! 706: XMLPUBFUN xmlDtdPtr XMLCALL ! 707: xmlCreateIntSubset (xmlDocPtr doc, ! 708: const xmlChar *name, ! 709: const xmlChar *ExternalID, ! 710: const xmlChar *SystemID); ! 711: XMLPUBFUN xmlDtdPtr XMLCALL ! 712: xmlNewDtd (xmlDocPtr doc, ! 713: const xmlChar *name, ! 714: const xmlChar *ExternalID, ! 715: const xmlChar *SystemID); ! 716: XMLPUBFUN xmlDtdPtr XMLCALL ! 717: xmlGetIntSubset (xmlDocPtr doc); ! 718: XMLPUBFUN void XMLCALL ! 719: xmlFreeDtd (xmlDtdPtr cur); ! 720: #ifdef LIBXML_LEGACY_ENABLED ! 721: XMLPUBFUN xmlNsPtr XMLCALL ! 722: xmlNewGlobalNs (xmlDocPtr doc, ! 723: const xmlChar *href, ! 724: const xmlChar *prefix); ! 725: #endif /* LIBXML_LEGACY_ENABLED */ ! 726: XMLPUBFUN xmlNsPtr XMLCALL ! 727: xmlNewNs (xmlNodePtr node, ! 728: const xmlChar *href, ! 729: const xmlChar *prefix); ! 730: XMLPUBFUN void XMLCALL ! 731: xmlFreeNs (xmlNsPtr cur); ! 732: XMLPUBFUN void XMLCALL ! 733: xmlFreeNsList (xmlNsPtr cur); ! 734: XMLPUBFUN xmlDocPtr XMLCALL ! 735: xmlNewDoc (const xmlChar *version); ! 736: XMLPUBFUN void XMLCALL ! 737: xmlFreeDoc (xmlDocPtr cur); ! 738: XMLPUBFUN xmlAttrPtr XMLCALL ! 739: xmlNewDocProp (xmlDocPtr doc, ! 740: const xmlChar *name, ! 741: const xmlChar *value); ! 742: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ ! 743: defined(LIBXML_SCHEMAS_ENABLED) ! 744: XMLPUBFUN xmlAttrPtr XMLCALL ! 745: xmlNewProp (xmlNodePtr node, ! 746: const xmlChar *name, ! 747: const xmlChar *value); ! 748: #endif ! 749: XMLPUBFUN xmlAttrPtr XMLCALL ! 750: xmlNewNsProp (xmlNodePtr node, ! 751: xmlNsPtr ns, ! 752: const xmlChar *name, ! 753: const xmlChar *value); ! 754: XMLPUBFUN xmlAttrPtr XMLCALL ! 755: xmlNewNsPropEatName (xmlNodePtr node, ! 756: xmlNsPtr ns, ! 757: xmlChar *name, ! 758: const xmlChar *value); ! 759: XMLPUBFUN void XMLCALL ! 760: xmlFreePropList (xmlAttrPtr cur); ! 761: XMLPUBFUN void XMLCALL ! 762: xmlFreeProp (xmlAttrPtr cur); ! 763: XMLPUBFUN xmlAttrPtr XMLCALL ! 764: xmlCopyProp (xmlNodePtr target, ! 765: xmlAttrPtr cur); ! 766: XMLPUBFUN xmlAttrPtr XMLCALL ! 767: xmlCopyPropList (xmlNodePtr target, ! 768: xmlAttrPtr cur); ! 769: #ifdef LIBXML_TREE_ENABLED ! 770: XMLPUBFUN xmlDtdPtr XMLCALL ! 771: xmlCopyDtd (xmlDtdPtr dtd); ! 772: #endif /* LIBXML_TREE_ENABLED */ ! 773: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) ! 774: XMLPUBFUN xmlDocPtr XMLCALL ! 775: xmlCopyDoc (xmlDocPtr doc, ! 776: int recursive); ! 777: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ ! 778: /* ! 779: * Creating new nodes. ! 780: */ ! 781: XMLPUBFUN xmlNodePtr XMLCALL ! 782: xmlNewDocNode (xmlDocPtr doc, ! 783: xmlNsPtr ns, ! 784: const xmlChar *name, ! 785: const xmlChar *content); ! 786: XMLPUBFUN xmlNodePtr XMLCALL ! 787: xmlNewDocNodeEatName (xmlDocPtr doc, ! 788: xmlNsPtr ns, ! 789: xmlChar *name, ! 790: const xmlChar *content); ! 791: XMLPUBFUN xmlNodePtr XMLCALL ! 792: xmlNewNode (xmlNsPtr ns, ! 793: const xmlChar *name); ! 794: XMLPUBFUN xmlNodePtr XMLCALL ! 795: xmlNewNodeEatName (xmlNsPtr ns, ! 796: xmlChar *name); ! 797: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) ! 798: XMLPUBFUN xmlNodePtr XMLCALL ! 799: xmlNewChild (xmlNodePtr parent, ! 800: xmlNsPtr ns, ! 801: const xmlChar *name, ! 802: const xmlChar *content); ! 803: #endif ! 804: XMLPUBFUN xmlNodePtr XMLCALL ! 805: xmlNewDocText (xmlDocPtr doc, ! 806: const xmlChar *content); ! 807: XMLPUBFUN xmlNodePtr XMLCALL ! 808: xmlNewText (const xmlChar *content); ! 809: XMLPUBFUN xmlNodePtr XMLCALL ! 810: xmlNewDocPI (xmlDocPtr doc, ! 811: const xmlChar *name, ! 812: const xmlChar *content); ! 813: XMLPUBFUN xmlNodePtr XMLCALL ! 814: xmlNewPI (const xmlChar *name, ! 815: const xmlChar *content); ! 816: XMLPUBFUN xmlNodePtr XMLCALL ! 817: xmlNewDocTextLen (xmlDocPtr doc, ! 818: const xmlChar *content, ! 819: int len); ! 820: XMLPUBFUN xmlNodePtr XMLCALL ! 821: xmlNewTextLen (const xmlChar *content, ! 822: int len); ! 823: XMLPUBFUN xmlNodePtr XMLCALL ! 824: xmlNewDocComment (xmlDocPtr doc, ! 825: const xmlChar *content); ! 826: XMLPUBFUN xmlNodePtr XMLCALL ! 827: xmlNewComment (const xmlChar *content); ! 828: XMLPUBFUN xmlNodePtr XMLCALL ! 829: xmlNewCDataBlock (xmlDocPtr doc, ! 830: const xmlChar *content, ! 831: int len); ! 832: XMLPUBFUN xmlNodePtr XMLCALL ! 833: xmlNewCharRef (xmlDocPtr doc, ! 834: const xmlChar *name); ! 835: XMLPUBFUN xmlNodePtr XMLCALL ! 836: xmlNewReference (xmlDocPtr doc, ! 837: const xmlChar *name); ! 838: XMLPUBFUN xmlNodePtr XMLCALL ! 839: xmlCopyNode (const xmlNodePtr node, ! 840: int recursive); ! 841: XMLPUBFUN xmlNodePtr XMLCALL ! 842: xmlDocCopyNode (const xmlNodePtr node, ! 843: xmlDocPtr doc, ! 844: int recursive); ! 845: XMLPUBFUN xmlNodePtr XMLCALL ! 846: xmlDocCopyNodeList (xmlDocPtr doc, ! 847: const xmlNodePtr node); ! 848: XMLPUBFUN xmlNodePtr XMLCALL ! 849: xmlCopyNodeList (const xmlNodePtr node); ! 850: #ifdef LIBXML_TREE_ENABLED ! 851: XMLPUBFUN xmlNodePtr XMLCALL ! 852: xmlNewTextChild (xmlNodePtr parent, ! 853: xmlNsPtr ns, ! 854: const xmlChar *name, ! 855: const xmlChar *content); ! 856: XMLPUBFUN xmlNodePtr XMLCALL ! 857: xmlNewDocRawNode (xmlDocPtr doc, ! 858: xmlNsPtr ns, ! 859: const xmlChar *name, ! 860: const xmlChar *content); ! 861: XMLPUBFUN xmlNodePtr XMLCALL ! 862: xmlNewDocFragment (xmlDocPtr doc); ! 863: #endif /* LIBXML_TREE_ENABLED */ ! 864: ! 865: /* ! 866: * Navigating. ! 867: */ ! 868: XMLPUBFUN long XMLCALL ! 869: xmlGetLineNo (xmlNodePtr node); ! 870: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) ! 871: XMLPUBFUN xmlChar * XMLCALL ! 872: xmlGetNodePath (xmlNodePtr node); ! 873: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED) */ ! 874: XMLPUBFUN xmlNodePtr XMLCALL ! 875: xmlDocGetRootElement (xmlDocPtr doc); ! 876: XMLPUBFUN xmlNodePtr XMLCALL ! 877: xmlGetLastChild (xmlNodePtr parent); ! 878: XMLPUBFUN int XMLCALL ! 879: xmlNodeIsText (xmlNodePtr node); ! 880: XMLPUBFUN int XMLCALL ! 881: xmlIsBlankNode (xmlNodePtr node); ! 882: ! 883: /* ! 884: * Changing the structure. ! 885: */ ! 886: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) ! 887: XMLPUBFUN xmlNodePtr XMLCALL ! 888: xmlDocSetRootElement (xmlDocPtr doc, ! 889: xmlNodePtr root); ! 890: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ ! 891: #ifdef LIBXML_TREE_ENABLED ! 892: XMLPUBFUN void XMLCALL ! 893: xmlNodeSetName (xmlNodePtr cur, ! 894: const xmlChar *name); ! 895: #endif /* LIBXML_TREE_ENABLED */ ! 896: XMLPUBFUN xmlNodePtr XMLCALL ! 897: xmlAddChild (xmlNodePtr parent, ! 898: xmlNodePtr cur); ! 899: XMLPUBFUN xmlNodePtr XMLCALL ! 900: xmlAddChildList (xmlNodePtr parent, ! 901: xmlNodePtr cur); ! 902: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) ! 903: XMLPUBFUN xmlNodePtr XMLCALL ! 904: xmlReplaceNode (xmlNodePtr old, ! 905: xmlNodePtr cur); ! 906: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED) */ ! 907: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \ ! 908: defined(LIBXML_SCHEMAS_ENABLED) ! 909: XMLPUBFUN xmlNodePtr XMLCALL ! 910: xmlAddPrevSibling (xmlNodePtr cur, ! 911: xmlNodePtr elem); ! 912: #endif /* LIBXML_TREE_ENABLED || LIBXML_HTML_ENABLED || LIBXML_SCHEMAS_ENABLED */ ! 913: XMLPUBFUN xmlNodePtr XMLCALL ! 914: xmlAddSibling (xmlNodePtr cur, ! 915: xmlNodePtr elem); ! 916: XMLPUBFUN xmlNodePtr XMLCALL ! 917: xmlAddNextSibling (xmlNodePtr cur, ! 918: xmlNodePtr elem); ! 919: XMLPUBFUN void XMLCALL ! 920: xmlUnlinkNode (xmlNodePtr cur); ! 921: XMLPUBFUN xmlNodePtr XMLCALL ! 922: xmlTextMerge (xmlNodePtr first, ! 923: xmlNodePtr second); ! 924: XMLPUBFUN int XMLCALL ! 925: xmlTextConcat (xmlNodePtr node, ! 926: const xmlChar *content, ! 927: int len); ! 928: XMLPUBFUN void XMLCALL ! 929: xmlFreeNodeList (xmlNodePtr cur); ! 930: XMLPUBFUN void XMLCALL ! 931: xmlFreeNode (xmlNodePtr cur); ! 932: XMLPUBFUN void XMLCALL ! 933: xmlSetTreeDoc (xmlNodePtr tree, ! 934: xmlDocPtr doc); ! 935: XMLPUBFUN void XMLCALL ! 936: xmlSetListDoc (xmlNodePtr list, ! 937: xmlDocPtr doc); ! 938: /* ! 939: * Namespaces. ! 940: */ ! 941: XMLPUBFUN xmlNsPtr XMLCALL ! 942: xmlSearchNs (xmlDocPtr doc, ! 943: xmlNodePtr node, ! 944: const xmlChar *nameSpace); ! 945: XMLPUBFUN xmlNsPtr XMLCALL ! 946: xmlSearchNsByHref (xmlDocPtr doc, ! 947: xmlNodePtr node, ! 948: const xmlChar *href); ! 949: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) ! 950: XMLPUBFUN xmlNsPtr * XMLCALL ! 951: xmlGetNsList (xmlDocPtr doc, ! 952: xmlNodePtr node); ! 953: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) */ ! 954: ! 955: XMLPUBFUN void XMLCALL ! 956: xmlSetNs (xmlNodePtr node, ! 957: xmlNsPtr ns); ! 958: XMLPUBFUN xmlNsPtr XMLCALL ! 959: xmlCopyNamespace (xmlNsPtr cur); ! 960: XMLPUBFUN xmlNsPtr XMLCALL ! 961: xmlCopyNamespaceList (xmlNsPtr cur); ! 962: ! 963: /* ! 964: * Changing the content. ! 965: */ ! 966: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) ! 967: XMLPUBFUN xmlAttrPtr XMLCALL ! 968: xmlSetProp (xmlNodePtr node, ! 969: const xmlChar *name, ! 970: const xmlChar *value); ! 971: XMLPUBFUN xmlAttrPtr XMLCALL ! 972: xmlSetNsProp (xmlNodePtr node, ! 973: xmlNsPtr ns, ! 974: const xmlChar *name, ! 975: const xmlChar *value); ! 976: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED) */ ! 977: XMLPUBFUN xmlChar * XMLCALL ! 978: xmlGetNoNsProp (xmlNodePtr node, ! 979: const xmlChar *name); ! 980: XMLPUBFUN xmlChar * XMLCALL ! 981: xmlGetProp (xmlNodePtr node, ! 982: const xmlChar *name); ! 983: XMLPUBFUN xmlAttrPtr XMLCALL ! 984: xmlHasProp (xmlNodePtr node, ! 985: const xmlChar *name); ! 986: XMLPUBFUN xmlAttrPtr XMLCALL ! 987: xmlHasNsProp (xmlNodePtr node, ! 988: const xmlChar *name, ! 989: const xmlChar *nameSpace); ! 990: XMLPUBFUN xmlChar * XMLCALL ! 991: xmlGetNsProp (xmlNodePtr node, ! 992: const xmlChar *name, ! 993: const xmlChar *nameSpace); ! 994: XMLPUBFUN xmlNodePtr XMLCALL ! 995: xmlStringGetNodeList (xmlDocPtr doc, ! 996: const xmlChar *value); ! 997: XMLPUBFUN xmlNodePtr XMLCALL ! 998: xmlStringLenGetNodeList (xmlDocPtr doc, ! 999: const xmlChar *value, ! 1000: int len); ! 1001: XMLPUBFUN xmlChar * XMLCALL ! 1002: xmlNodeListGetString (xmlDocPtr doc, ! 1003: xmlNodePtr list, ! 1004: int inLine); ! 1005: #ifdef LIBXML_TREE_ENABLED ! 1006: XMLPUBFUN xmlChar * XMLCALL ! 1007: xmlNodeListGetRawString (xmlDocPtr doc, ! 1008: xmlNodePtr list, ! 1009: int inLine); ! 1010: #endif /* LIBXML_TREE_ENABLED */ ! 1011: XMLPUBFUN void XMLCALL ! 1012: xmlNodeSetContent (xmlNodePtr cur, ! 1013: const xmlChar *content); ! 1014: #ifdef LIBXML_TREE_ENABLED ! 1015: XMLPUBFUN void XMLCALL ! 1016: xmlNodeSetContentLen (xmlNodePtr cur, ! 1017: const xmlChar *content, ! 1018: int len); ! 1019: #endif /* LIBXML_TREE_ENABLED */ ! 1020: XMLPUBFUN void XMLCALL ! 1021: xmlNodeAddContent (xmlNodePtr cur, ! 1022: const xmlChar *content); ! 1023: XMLPUBFUN void XMLCALL ! 1024: xmlNodeAddContentLen (xmlNodePtr cur, ! 1025: const xmlChar *content, ! 1026: int len); ! 1027: XMLPUBFUN xmlChar * XMLCALL ! 1028: xmlNodeGetContent (xmlNodePtr cur); ! 1029: XMLPUBFUN int XMLCALL ! 1030: xmlNodeBufGetContent (xmlBufferPtr buffer, ! 1031: xmlNodePtr cur); ! 1032: XMLPUBFUN xmlChar * XMLCALL ! 1033: xmlNodeGetLang (xmlNodePtr cur); ! 1034: XMLPUBFUN int XMLCALL ! 1035: xmlNodeGetSpacePreserve (xmlNodePtr cur); ! 1036: #ifdef LIBXML_TREE_ENABLED ! 1037: XMLPUBFUN void XMLCALL ! 1038: xmlNodeSetLang (xmlNodePtr cur, ! 1039: const xmlChar *lang); ! 1040: XMLPUBFUN void XMLCALL ! 1041: xmlNodeSetSpacePreserve (xmlNodePtr cur, ! 1042: int val); ! 1043: #endif /* LIBXML_TREE_ENABLED */ ! 1044: XMLPUBFUN xmlChar * XMLCALL ! 1045: xmlNodeGetBase (xmlDocPtr doc, ! 1046: xmlNodePtr cur); ! 1047: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) ! 1048: XMLPUBFUN void XMLCALL ! 1049: xmlNodeSetBase (xmlNodePtr cur, ! 1050: const xmlChar *uri); ! 1051: #endif ! 1052: ! 1053: /* ! 1054: * Removing content. ! 1055: */ ! 1056: XMLPUBFUN int XMLCALL ! 1057: xmlRemoveProp (xmlAttrPtr cur); ! 1058: #if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) ! 1059: XMLPUBFUN int XMLCALL ! 1060: xmlUnsetNsProp (xmlNodePtr node, ! 1061: xmlNsPtr ns, ! 1062: const xmlChar *name); ! 1063: XMLPUBFUN int XMLCALL ! 1064: xmlUnsetProp (xmlNodePtr node, ! 1065: const xmlChar *name); ! 1066: #endif /* defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED) */ ! 1067: ! 1068: /* ! 1069: * Internal, don't use. ! 1070: */ ! 1071: XMLPUBFUN void XMLCALL ! 1072: xmlBufferWriteCHAR (xmlBufferPtr buf, ! 1073: const xmlChar *string); ! 1074: XMLPUBFUN void XMLCALL ! 1075: xmlBufferWriteChar (xmlBufferPtr buf, ! 1076: const char *string); ! 1077: XMLPUBFUN void XMLCALL ! 1078: xmlBufferWriteQuotedString(xmlBufferPtr buf, ! 1079: const xmlChar *string); ! 1080: ! 1081: #ifdef LIBXML_OUTPUT_ENABLED ! 1082: XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr buf, ! 1083: xmlDocPtr doc, ! 1084: xmlAttrPtr attr, ! 1085: const xmlChar *string); ! 1086: #endif /* LIBXML_OUTPUT_ENABLED */ ! 1087: ! 1088: #ifdef LIBXML_TREE_ENABLED ! 1089: /* ! 1090: * Namespace handling. ! 1091: */ ! 1092: XMLPUBFUN int XMLCALL ! 1093: xmlReconciliateNs (xmlDocPtr doc, ! 1094: xmlNodePtr tree); ! 1095: #endif ! 1096: ! 1097: #ifdef LIBXML_OUTPUT_ENABLED ! 1098: /* ! 1099: * Saving. ! 1100: */ ! 1101: XMLPUBFUN void XMLCALL ! 1102: xmlDocDumpFormatMemory (xmlDocPtr cur, ! 1103: xmlChar **mem, ! 1104: int *size, ! 1105: int format); ! 1106: XMLPUBFUN void XMLCALL ! 1107: xmlDocDumpMemory (xmlDocPtr cur, ! 1108: xmlChar **mem, ! 1109: int *size); ! 1110: XMLPUBFUN void XMLCALL ! 1111: xmlDocDumpMemoryEnc (xmlDocPtr out_doc, ! 1112: xmlChar **doc_txt_ptr, ! 1113: int * doc_txt_len, ! 1114: const char *txt_encoding); ! 1115: XMLPUBFUN void XMLCALL ! 1116: xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, ! 1117: xmlChar **doc_txt_ptr, ! 1118: int * doc_txt_len, ! 1119: const char *txt_encoding, ! 1120: int format); ! 1121: XMLPUBFUN int XMLCALL ! 1122: xmlDocFormatDump (FILE *f, ! 1123: xmlDocPtr cur, ! 1124: int format); ! 1125: XMLPUBFUN int XMLCALL ! 1126: xmlDocDump (FILE *f, ! 1127: xmlDocPtr cur); ! 1128: XMLPUBFUN void XMLCALL ! 1129: xmlElemDump (FILE *f, ! 1130: xmlDocPtr doc, ! 1131: xmlNodePtr cur); ! 1132: XMLPUBFUN int XMLCALL ! 1133: xmlSaveFile (const char *filename, ! 1134: xmlDocPtr cur); ! 1135: XMLPUBFUN int XMLCALL ! 1136: xmlSaveFormatFile (const char *filename, ! 1137: xmlDocPtr cur, ! 1138: int format); ! 1139: XMLPUBFUN int XMLCALL ! 1140: xmlNodeDump (xmlBufferPtr buf, ! 1141: xmlDocPtr doc, ! 1142: xmlNodePtr cur, ! 1143: int level, ! 1144: int format); ! 1145: ! 1146: XMLPUBFUN int XMLCALL ! 1147: xmlSaveFileTo (xmlOutputBufferPtr buf, ! 1148: xmlDocPtr cur, ! 1149: const char *encoding); ! 1150: XMLPUBFUN int XMLCALL ! 1151: xmlSaveFormatFileTo (xmlOutputBufferPtr buf, ! 1152: xmlDocPtr cur, ! 1153: const char *encoding, ! 1154: int format); ! 1155: XMLPUBFUN void XMLCALL ! 1156: xmlNodeDumpOutput (xmlOutputBufferPtr buf, ! 1157: xmlDocPtr doc, ! 1158: xmlNodePtr cur, ! 1159: int level, ! 1160: int format, ! 1161: const char *encoding); ! 1162: ! 1163: XMLPUBFUN int XMLCALL ! 1164: xmlSaveFormatFileEnc (const char *filename, ! 1165: xmlDocPtr cur, ! 1166: const char *encoding, ! 1167: int format); ! 1168: ! 1169: XMLPUBFUN int XMLCALL ! 1170: xmlSaveFileEnc (const char *filename, ! 1171: xmlDocPtr cur, ! 1172: const char *encoding); ! 1173: ! 1174: #endif /* LIBXML_OUTPUT_ENABLED */ ! 1175: /* ! 1176: * XHTML ! 1177: */ ! 1178: XMLPUBFUN int XMLCALL ! 1179: xmlIsXHTML (const xmlChar *systemID, ! 1180: const xmlChar *publicID); ! 1181: ! 1182: /* ! 1183: * Compression. ! 1184: */ ! 1185: XMLPUBFUN int XMLCALL ! 1186: xmlGetDocCompressMode (xmlDocPtr doc); ! 1187: XMLPUBFUN void XMLCALL ! 1188: xmlSetDocCompressMode (xmlDocPtr doc, ! 1189: int mode); ! 1190: XMLPUBFUN int XMLCALL ! 1191: xmlGetCompressMode (void); ! 1192: XMLPUBFUN void XMLCALL ! 1193: xmlSetCompressMode (int mode); ! 1194: ! 1195: /* ! 1196: * DOM-wrapper helper functions. ! 1197: */ ! 1198: XMLPUBFUN xmlDOMWrapCtxtPtr XMLCALL ! 1199: xmlDOMWrapNewCtxt (void); ! 1200: XMLPUBFUN void XMLCALL ! 1201: xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt); ! 1202: XMLPUBFUN int XMLCALL ! 1203: xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt, ! 1204: xmlNodePtr elem, ! 1205: int options); ! 1206: XMLPUBFUN int XMLCALL ! 1207: xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt, ! 1208: xmlDocPtr sourceDoc, ! 1209: xmlNodePtr node, ! 1210: xmlDocPtr destDoc, ! 1211: xmlNodePtr destParent, ! 1212: int options); ! 1213: XMLPUBFUN int XMLCALL ! 1214: xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt, ! 1215: xmlDocPtr doc, ! 1216: xmlNodePtr node, ! 1217: int options); ! 1218: XMLPUBFUN int XMLCALL ! 1219: xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt, ! 1220: xmlDocPtr sourceDoc, ! 1221: xmlNodePtr node, ! 1222: xmlNodePtr *clonedNode, ! 1223: xmlDocPtr destDoc, ! 1224: xmlNodePtr destParent, ! 1225: int deep, ! 1226: int options); ! 1227: ! 1228: #ifdef LIBXML_TREE_ENABLED ! 1229: /* ! 1230: * 5 interfaces from DOM ElementTraversal, but different in entities ! 1231: * traversal. ! 1232: */ ! 1233: XMLPUBFUN unsigned long XMLCALL ! 1234: xmlChildElementCount (xmlNodePtr parent); ! 1235: XMLPUBFUN xmlNodePtr XMLCALL ! 1236: xmlNextElementSibling (xmlNodePtr node); ! 1237: XMLPUBFUN xmlNodePtr XMLCALL ! 1238: xmlFirstElementChild (xmlNodePtr parent); ! 1239: XMLPUBFUN xmlNodePtr XMLCALL ! 1240: xmlLastElementChild (xmlNodePtr parent); ! 1241: XMLPUBFUN xmlNodePtr XMLCALL ! 1242: xmlPreviousElementSibling (xmlNodePtr node); ! 1243: #endif ! 1244: #ifdef __cplusplus ! 1245: } ! 1246: #endif ! 1247: #ifndef __XML_PARSER_H__ ! 1248: #include <libxml/xmlmemory.h> ! 1249: #endif ! 1250: ! 1251: #endif /* __XML_TREE_H__ */ ! 1252: