Annotation of embedaddon/libxml2/include/libxml/tree.h, revision 1.1

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: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>