12#ifndef XML_TREE_INTERNALS
40typedef xmlParserInputBuffer *xmlParserInputBufferPtr;
42typedef struct _xmlOutputBuffer xmlOutputBuffer;
43typedef xmlOutputBuffer *xmlOutputBufferPtr;
47typedef xmlParserInput *xmlParserInputPtr;
50typedef xmlParserCtxt *xmlParserCtxtPtr;
53typedef xmlSAXLocator *xmlSAXLocatorPtr;
56typedef xmlSAXHandler *xmlSAXHandlerPtr;
60typedef xmlEntity *xmlEntityPtr;
67#define BASE_BUFFER_SIZE 4096
86 XML_BUFFER_ALLOC_DOUBLEIT,
87 XML_BUFFER_ALLOC_EXACT,
88 XML_BUFFER_ALLOC_IMMUTABLE,
90 XML_BUFFER_ALLOC_HYBRID,
91 XML_BUFFER_ALLOC_BOUNDED
92} xmlBufferAllocationScheme;
100typedef struct _xmlBuffer xmlBuffer;
101typedef xmlBuffer *xmlBufferPtr;
106 xmlBufferAllocationScheme
alloc;
125typedef xmlBuf *xmlBufPtr;
143#define LIBXML2_NEW_BUFFER
151#define XML_XML_NAMESPACE \
152 (const xmlChar *) "http://www.w3.org/XML/1998/namespace"
159#define XML_XML_ID (const xmlChar *) "xml:id"
172 XML_ATTRIBUTE_NODE= 2,
174 XML_CDATA_SECTION_NODE= 4,
175 XML_ENTITY_REF_NODE= 5,
179 XML_DOCUMENT_NODE= 9,
180 XML_DOCUMENT_TYPE_NODE= 10,
181 XML_DOCUMENT_FRAG_NODE= 11,
182 XML_NOTATION_NODE= 12,
183 XML_HTML_DOCUMENT_NODE= 13,
185 XML_ELEMENT_DECL= 15,
186 XML_ATTRIBUTE_DECL= 16,
188 XML_NAMESPACE_DECL= 18,
189 XML_XINCLUDE_START= 19,
196#define XML_DOCB_DOCUMENT_NODE 21
205typedef struct _xmlNotation xmlNotation;
206typedef xmlNotation *xmlNotationPtr;
220 XML_ATTRIBUTE_CDATA = 1,
222 XML_ATTRIBUTE_IDREF ,
223 XML_ATTRIBUTE_IDREFS,
224 XML_ATTRIBUTE_ENTITY,
225 XML_ATTRIBUTE_ENTITIES,
226 XML_ATTRIBUTE_NMTOKEN,
227 XML_ATTRIBUTE_NMTOKENS,
228 XML_ATTRIBUTE_ENUMERATION,
229 XML_ATTRIBUTE_NOTATION
239 XML_ATTRIBUTE_NONE = 1,
240 XML_ATTRIBUTE_REQUIRED,
241 XML_ATTRIBUTE_IMPLIED,
243} xmlAttributeDefault;
251typedef struct _xmlEnumeration xmlEnumeration;
252typedef xmlEnumeration *xmlEnumerationPtr;
253struct _xmlEnumeration {
254 struct _xmlEnumeration *
next;
264typedef struct _xmlAttribute xmlAttribute;
265typedef xmlAttribute *xmlAttributePtr;
266struct _xmlAttribute {
270 struct _xmlNode *children;
271 struct _xmlNode *
last;
273 struct _xmlNode *
next;
274 struct _xmlNode *prev;
277 struct _xmlAttribute *nexth;
278 xmlAttributeType atype;
279 xmlAttributeDefault def;
281 xmlEnumerationPtr
tree;
292 XML_ELEMENT_CONTENT_PCDATA = 1,
293 XML_ELEMENT_CONTENT_ELEMENT,
294 XML_ELEMENT_CONTENT_SEQ,
295 XML_ELEMENT_CONTENT_OR
296} xmlElementContentType;
304 XML_ELEMENT_CONTENT_ONCE = 1,
305 XML_ELEMENT_CONTENT_OPT,
306 XML_ELEMENT_CONTENT_MULT,
307 XML_ELEMENT_CONTENT_PLUS
308} xmlElementContentOccur;
317typedef struct _xmlElementContent xmlElementContent;
318typedef xmlElementContent *xmlElementContentPtr;
319struct _xmlElementContent {
320 xmlElementContentType
type;
321 xmlElementContentOccur ocur;
323 struct _xmlElementContent *c1;
324 struct _xmlElementContent *c2;
325 struct _xmlElementContent *
parent;
336 XML_ELEMENT_TYPE_UNDEFINED = 0,
337 XML_ELEMENT_TYPE_EMPTY = 1,
338 XML_ELEMENT_TYPE_ANY,
339 XML_ELEMENT_TYPE_MIXED,
340 XML_ELEMENT_TYPE_ELEMENT
349typedef struct _xmlElement xmlElement;
350typedef xmlElement *xmlElementPtr;
355 struct _xmlNode *children;
356 struct _xmlNode *
last;
358 struct _xmlNode *
next;
359 struct _xmlNode *prev;
362 xmlElementTypeVal etype;
364 xmlAttributePtr attributes;
366#ifdef LIBXML_REGEXP_ENABLED
367 xmlRegexpPtr contModel;
379#define XML_LOCAL_NAMESPACE XML_NAMESPACE_DECL
380typedef xmlElementType xmlNsType;
392typedef struct _xmlNs xmlNs;
393typedef xmlNs *xmlNsPtr;
409typedef struct _xmlDtd xmlDtd;
410typedef xmlDtd *xmlDtdPtr;
415 struct _xmlNode *children;
416 struct _xmlNode *
last;
418 struct _xmlNode *
next;
419 struct _xmlNode *prev;
437typedef struct _xmlAttr xmlAttr;
438typedef xmlAttr *xmlAttrPtr;
443 struct _xmlNode *children;
444 struct _xmlNode *
last;
446 struct _xmlAttr *
next;
447 struct _xmlAttr *prev;
450 xmlAttributeType atype;
460typedef struct _xmlID xmlID;
461typedef xmlID *xmlIDPtr;
477typedef struct _xmlRef xmlRef;
478typedef xmlRef *xmlRefPtr;
480 struct _xmlRef *
next;
492typedef struct _xmlNode xmlNode;
493typedef xmlNode *xmlNodePtr;
498 struct _xmlNode *children;
499 struct _xmlNode *
last;
501 struct _xmlNode *
next;
502 struct _xmlNode *prev;
508 struct _xmlAttr *properties;
512 unsigned short extra;
520#define XML_GET_CONTENT(n) \
521 ((n)->type == XML_ELEMENT_NODE ? NULL : (n)->content)
528#define XML_GET_LINE(n) \
538 XML_DOC_WELLFORMED = 1<<0,
539 XML_DOC_NSVALID = 1<<1,
540 XML_DOC_OLD10 = 1<<2,
541 XML_DOC_DTDVALID = 1<<3,
542 XML_DOC_XINCLUDE = 1<<4,
543 XML_DOC_USERBUILT = 1<<5,
545 XML_DOC_INTERNAL = 1<<6,
554typedef struct _xmlDoc xmlDoc;
555typedef xmlDoc *xmlDocPtr;
560 struct _xmlNode *children;
561 struct _xmlNode *
last;
563 struct _xmlNode *
next;
564 struct _xmlNode *prev;
575 struct _xmlDtd *intSubset;
576 struct _xmlDtd *extSubset;
577 struct _xmlNs *oldNs;
593typedef struct _xmlDOMWrapCtxt xmlDOMWrapCtxt;
594typedef xmlDOMWrapCtxt *xmlDOMWrapCtxtPtr;
607typedef xmlNsPtr (*xmlDOMWrapAcquireNsFunction) (xmlDOMWrapCtxtPtr ctxt,
617struct _xmlDOMWrapCtxt {
632 xmlDOMWrapAcquireNsFunction getNsForNodeFunc;
641typedef void (*xmlRegisterNodeFunc) (xmlNodePtr
node);
649typedef void (*xmlDeregisterNodeFunc) (xmlNodePtr
node);
657#ifndef xmlChildrenNode
658#define xmlChildrenNode children
668#define xmlRootNode children
676#define XML_GLOBALS_TREE \
677 XML_OP(xmlBufferAllocScheme, xmlBufferAllocationScheme, XML_DEPRECATED) \
678 XML_OP(xmlDefaultBufferSize, int, XML_DEPRECATED) \
679 XML_OP(xmlRegisterNodeDefaultValue, xmlRegisterNodeFunc, XML_DEPRECATED) \
680 XML_OP(xmlDeregisterNodeDefaultValue, xmlDeregisterNodeFunc, \
683#define XML_OP XML_DECLARE_GLOBAL
687#if defined(LIBXML_THREAD_ENABLED) && !defined(XML_GLOBALS_NO_REDEFINITION)
688 #define xmlBufferAllocScheme XML_GLOBAL_MACRO(xmlBufferAllocScheme)
689 #define xmlDefaultBufferSize XML_GLOBAL_MACRO(xmlDefaultBufferSize)
690 #define xmlRegisterNodeDefaultValue \
691 XML_GLOBAL_MACRO(xmlRegisterNodeDefaultValue)
692 #define xmlDeregisterNodeDefaultValue \
693 XML_GLOBAL_MACRO(xmlDeregisterNodeDefaultValue)
704#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
717 xmlBuildQName (
const xmlChar *ncname,
733 xmlSetBufferAllocationScheme(xmlBufferAllocationScheme
scheme);
735 xmlGetBufferAllocationScheme(
void);
738 xmlBufferCreate (
void);
740 xmlBufferCreateSize (
size_t size);
742 xmlBufferCreateStatic (
void *
mem,
745 xmlBufferResize (xmlBufferPtr
buf,
748 xmlBufferFree (xmlBufferPtr
buf);
753 xmlBufferAdd (xmlBufferPtr
buf,
757 xmlBufferAddHead (xmlBufferPtr
buf,
761 xmlBufferCat (xmlBufferPtr
buf,
764 xmlBufferCCat (xmlBufferPtr
buf,
767 xmlBufferShrink (xmlBufferPtr
buf,
770 xmlBufferGrow (xmlBufferPtr
buf,
773 xmlBufferEmpty (xmlBufferPtr
buf);
775 xmlBufferContent (
const xmlBuffer *
buf);
777 xmlBufferDetach (xmlBufferPtr
buf);
779 xmlBufferSetAllocationScheme(xmlBufferPtr
buf,
780 xmlBufferAllocationScheme
scheme);
782 xmlBufferLength (
const xmlBuffer *
buf);
788 xmlCreateIntSubset (xmlDocPtr doc,
793 xmlNewDtd (xmlDocPtr doc,
798 xmlGetIntSubset (
const xmlDoc *doc);
800 xmlFreeDtd (xmlDtdPtr
cur);
801#ifdef LIBXML_LEGACY_ENABLED
804 xmlNewGlobalNs (xmlDocPtr doc,
809 xmlNewNs (xmlNodePtr
node,
813 xmlFreeNs (xmlNsPtr
cur);
815 xmlFreeNsList (xmlNsPtr
cur);
819 xmlFreeDoc (xmlDocPtr
cur);
821 xmlNewDocProp (xmlDocPtr doc,
824#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
825 defined(LIBXML_SCHEMAS_ENABLED)
827 xmlNewProp (xmlNodePtr
node,
832 xmlNewNsProp (xmlNodePtr
node,
837 xmlNewNsPropEatName (xmlNodePtr
node,
842 xmlFreePropList (xmlAttrPtr
cur);
844 xmlFreeProp (xmlAttrPtr
cur);
846 xmlCopyProp (xmlNodePtr
target,
849 xmlCopyPropList (xmlNodePtr
target,
851#ifdef LIBXML_TREE_ENABLED
853 xmlCopyDtd (xmlDtdPtr dtd);
855#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
857 xmlCopyDoc (xmlDocPtr doc,
864 xmlNewDocNode (xmlDocPtr doc,
869 xmlNewDocNodeEatName (xmlDocPtr doc,
874 xmlNewNode (xmlNsPtr
ns,
877 xmlNewNodeEatName (xmlNsPtr
ns,
879#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
881 xmlNewChild (xmlNodePtr
parent,
887 xmlNewDocText (
const xmlDoc *doc,
892 xmlNewDocPI (xmlDocPtr doc,
899 xmlNewDocTextLen (xmlDocPtr doc,
906 xmlNewDocComment (xmlDocPtr doc,
911 xmlNewCDataBlock (xmlDocPtr doc,
915 xmlNewCharRef (xmlDocPtr doc,
918 xmlNewReference (
const xmlDoc *doc,
921 xmlCopyNode (xmlNodePtr
node,
924 xmlDocCopyNode (xmlNodePtr
node,
928 xmlDocCopyNodeList (xmlDocPtr doc,
931 xmlCopyNodeList (xmlNodePtr
node);
932#ifdef LIBXML_TREE_ENABLED
934 xmlNewTextChild (xmlNodePtr
parent,
939 xmlNewDocRawNode (xmlDocPtr doc,
944 xmlNewDocFragment (xmlDocPtr doc);
951 xmlGetLineNo (
const xmlNode *
node);
952#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_DEBUG_ENABLED)
954 xmlGetNodePath (
const xmlNode *
node);
957 xmlDocGetRootElement (
const xmlDoc *doc);
959 xmlGetLastChild (
const xmlNode *
parent);
961 xmlNodeIsText (
const xmlNode *
node);
963 xmlIsBlankNode (
const xmlNode *
node);
968#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
970 xmlDocSetRootElement (xmlDocPtr doc,
973#ifdef LIBXML_TREE_ENABLED
975 xmlNodeSetName (xmlNodePtr
cur,
979 xmlAddChild (xmlNodePtr
parent,
982 xmlAddChildList (xmlNodePtr
parent,
984#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_WRITER_ENABLED)
986 xmlReplaceNode (xmlNodePtr old,
989#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_HTML_ENABLED) || \
990 defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
992 xmlAddPrevSibling (xmlNodePtr
cur,
996 xmlAddSibling (xmlNodePtr
cur,
999 xmlAddNextSibling (xmlNodePtr
cur,
1002 xmlUnlinkNode (xmlNodePtr
cur);
1004 xmlTextMerge (xmlNodePtr
first,
1007 xmlTextConcat (xmlNodePtr
node,
1011 xmlFreeNodeList (xmlNodePtr
cur);
1013 xmlFreeNode (xmlNodePtr
cur);
1015 xmlSetTreeDoc (xmlNodePtr
tree,
1018 xmlSetListDoc (xmlNodePtr
list,
1024 xmlSearchNs (xmlDocPtr doc,
1028 xmlSearchNsByHref (xmlDocPtr doc,
1031#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XPATH_ENABLED) || \
1032 defined(LIBXML_SCHEMAS_ENABLED)
1034 xmlGetNsList (
const xmlDoc *doc,
1035 const xmlNode *
node);
1039 xmlSetNs (xmlNodePtr
node,
1042 xmlCopyNamespace (xmlNsPtr
cur);
1044 xmlCopyNamespaceList (xmlNsPtr
cur);
1049#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED) || \
1050 defined(LIBXML_SCHEMAS_ENABLED) || defined(LIBXML_HTML_ENABLED)
1052 xmlSetProp (xmlNodePtr
node,
1056 xmlSetNsProp (xmlNodePtr
node,
1063 xmlGetNoNsProp (
const xmlNode *
node,
1066 xmlGetProp (
const xmlNode *
node,
1069 xmlHasProp (
const xmlNode *
node,
1072 xmlHasNsProp (
const xmlNode *
node,
1076 xmlGetNsProp (
const xmlNode *
node,
1080 xmlStringGetNodeList (
const xmlDoc *doc,
1083 xmlStringLenGetNodeList (
const xmlDoc *doc,
1087 xmlNodeListGetString (xmlDocPtr doc,
1088 const xmlNode *
list,
1090#ifdef LIBXML_TREE_ENABLED
1092 xmlNodeListGetRawString (
const xmlDoc *doc,
1093 const xmlNode *
list,
1097 xmlNodeSetContent (xmlNodePtr
cur,
1099#ifdef LIBXML_TREE_ENABLED
1101 xmlNodeSetContentLen (xmlNodePtr
cur,
1106 xmlNodeAddContent (xmlNodePtr
cur,
1109 xmlNodeAddContentLen (xmlNodePtr
cur,
1113 xmlNodeGetContent (
const xmlNode *
cur);
1116 xmlNodeBufGetContent (xmlBufferPtr
buffer,
1117 const xmlNode *
cur);
1119 xmlBufGetNodeContent (xmlBufPtr
buf,
1120 const xmlNode *
cur);
1123 xmlNodeGetLang (
const xmlNode *
cur);
1125 xmlNodeGetSpacePreserve (
const xmlNode *
cur);
1126#ifdef LIBXML_TREE_ENABLED
1128 xmlNodeSetLang (xmlNodePtr
cur,
1131 xmlNodeSetSpacePreserve (xmlNodePtr
cur,
1135 xmlNodeGetBase (
const xmlDoc *doc,
1136 const xmlNode *
cur);
1137#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_XINCLUDE_ENABLED)
1139 xmlNodeSetBase (xmlNodePtr
cur,
1147 xmlRemoveProp (xmlAttrPtr
cur);
1148#if defined(LIBXML_TREE_ENABLED) || defined(LIBXML_SCHEMAS_ENABLED)
1150 xmlUnsetNsProp (xmlNodePtr
node,
1154 xmlUnsetProp (xmlNodePtr
node,
1162 xmlBufferWriteCHAR (xmlBufferPtr
buf,
1165 xmlBufferWriteChar (xmlBufferPtr
buf,
1166 const char *
string);
1168 xmlBufferWriteQuotedString(xmlBufferPtr
buf,
1171#ifdef LIBXML_OUTPUT_ENABLED
1172XMLPUBFUN void xmlAttrSerializeTxtContent(xmlBufferPtr
buf,
1178#ifdef LIBXML_TREE_ENABLED
1183 xmlReconciliateNs (xmlDocPtr doc,
1187#ifdef LIBXML_OUTPUT_ENABLED
1192 xmlDocDumpFormatMemory (xmlDocPtr
cur,
1197 xmlDocDumpMemory (xmlDocPtr
cur,
1201 xmlDocDumpMemoryEnc (xmlDocPtr out_doc,
1204 const char *txt_encoding);
1206 xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc,
1209 const char *txt_encoding,
1212 xmlDocFormatDump (
FILE *
f,
1216 xmlDocDump (
FILE *
f,
1219 xmlElemDump (
FILE *
f,
1226 xmlSaveFormatFile (
const char *
filename,
1230 xmlBufNodeDump (xmlBufPtr
buf,
1236 xmlNodeDump (xmlBufferPtr
buf,
1243 xmlSaveFileTo (xmlOutputBufferPtr
buf,
1245 const char *encoding);
1247 xmlSaveFormatFileTo (xmlOutputBufferPtr
buf,
1249 const char *encoding,
1252 xmlNodeDumpOutput (xmlOutputBufferPtr
buf,
1257 const char *encoding);
1260 xmlSaveFormatFileEnc (
const char *
filename,
1262 const char *encoding,
1266 xmlSaveFileEnc (
const char *
filename,
1268 const char *encoding);
1275 xmlIsXHTML (
const xmlChar *systemID,
1282 xmlGetDocCompressMode (
const xmlDoc *doc);
1284 xmlSetDocCompressMode (xmlDocPtr doc,
1287 xmlGetCompressMode (
void);
1289 xmlSetCompressMode (
int mode);
1295 xmlDOMWrapNewCtxt (
void);
1297 xmlDOMWrapFreeCtxt (xmlDOMWrapCtxtPtr ctxt);
1299 xmlDOMWrapReconcileNamespaces(xmlDOMWrapCtxtPtr ctxt,
1303 xmlDOMWrapAdoptNode (xmlDOMWrapCtxtPtr ctxt,
1304 xmlDocPtr sourceDoc,
1307 xmlNodePtr destParent,
1310 xmlDOMWrapRemoveNode (xmlDOMWrapCtxtPtr ctxt,
1315 xmlDOMWrapCloneNode (xmlDOMWrapCtxtPtr ctxt,
1316 xmlDocPtr sourceDoc,
1318 xmlNodePtr *clonedNode,
1320 xmlNodePtr destParent,
1324#ifdef LIBXML_TREE_ENABLED
1330 xmlChildElementCount (xmlNodePtr
parent);
1332 xmlNextElementSibling (xmlNodePtr
node);
1334 xmlFirstElementChild (xmlNodePtr
parent);
1336 xmlLastElementChild (xmlNodePtr
parent);
1338 xmlPreviousElementSibling (xmlNodePtr
node);
1342 xmlRegisterNodeDefault (xmlRegisterNodeFunc
func);
1344 xmlDeregisterNodeDefault (xmlDeregisterNodeFunc
func);
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY _In_ uint8_t compression
xmlChar * xmlBufEnd(xmlBufPtr buf)
xmlChar * xmlBufContent(const xmlBuf *buf)
size_t xmlBufUse(const xmlBufPtr buf)
size_t xmlBufShrink(xmlBufPtr buf, size_t len)
static const WCHAR version[]
GLuint GLuint GLsizei GLenum type
GLenum GLuint GLenum GLsizei const GLchar * buf
static char memory[1024 *256]
static unsigned __int64 next
xmlBufferAllocationScheme xmlThrDefBufferAllocScheme(xmlBufferAllocationScheme v)
xmlRegisterNodeFunc xmlThrDefRegisterNodeDefault(xmlRegisterNodeFunc func)
xmlDeregisterNodeFunc xmlThrDefDeregisterNodeDefault(xmlDeregisterNodeFunc func)
int xmlThrDefDefaultBufferSize(int v)
Character const *const prefix
static const WCHAR lang[]