typedefstruct _xmlNodexmlNode; typedef xmlNode *xmlNodePtr; struct _xmlNode { void *_private; /* application data */ xmlElementType type; /* type number, must be second ! */ const xmlChar *name; /* the name of the node, or the entity */ struct _xmlNode *children;/* parent->childs link */ struct _xmlNode *last;/* last child link */ struct _xmlNode *parent;/* child->parent link */ struct _xmlNode *next;/* next sibling link */ struct _xmlNode *prev;/* previous sibling link */ struct _xmlDoc *doc;/* the containing document */
/* End of common part */ xmlNs *ns; /* pointer to the associated namespace */ xmlChar *content; /* the content */ struct _xmlAttr *properties;/* properties list */ xmlNs *nsDef; /* namespace definitions on this node */ void *psvi; /* for type/PSVI informations */ unsignedshort line; /* line number */ unsignedshort extra; /* extra data for XPath/XSLT */ };
/** * xmlDoc: * * An XML document. */ typedefstruct _xmlDocxmlDoc; typedef xmlDoc *xmlDocPtr; struct _xmlDoc { void *_private; /* application data */ xmlElementType type; /* XML_DOCUMENT_NODE, must be second ! */ char *name; /* name/filename/URI of the document */ struct _xmlNode *children;/* the document tree */ struct _xmlNode *last;/* last child link */ struct _xmlNode *parent;/* child->parent link */ struct _xmlNode *next;/* next sibling link */ struct _xmlNode *prev;/* previous sibling link */ struct _xmlDoc *doc;/* autoreference to itself */
/* End of common part */ int compression; /* level of zlib compression */ int standalone; /* standalone document (no external refs) ¦ 1 if standalone="yes" ¦ 0 if standalone="no" ¦ -1 if there is no XML declaration ¦ -2 if there is an XML declaration, but no standalone attribute was specified */ struct _xmlDtd *intSubset;/* the document internal subset */ struct _xmlDtd *extSubset;/* the document external subset */ struct _xmlNs *oldNs;/* Global namespace, the old way */ const xmlChar *version; /* the XML version string */ const xmlChar *encoding; /* external initial encoding, if any */ void *ids; /* Hash table for ID attributes if any */ void *refs; /* Hash table for IDREFs attributes if any */ const xmlChar *URL; /* The URI for that document */ int charset; /* encoding of the in-memory contentactually an ¦ xmlCharEncoding */ struct _xmlDict *dict;/* dict used to allocate names or NULL */ void *psvi; /* for type/PSVI informations */ int parseFlags; /* set of xmlParserOption used to parse the ¦ document */ int properties; /* set of xmlDocProperties for this document set ¦ at the end of parsing */ };
/** * xmlAttribute: * * An Attribute declaration in a DTD. */
typedefstruct _xmlAttributexmlAttribute; typedef xmlAttribute *xmlAttributePtr; struct _xmlAttribute { void *_private; /* application data */ xmlElementType type; /* XML_ATTRIBUTE_DECL, must be second ! */ const xmlChar *name; /* Attribute name */ struct _xmlNode *children;/* NULL */ struct _xmlNode *last;/* NULL */ struct _xmlDtd *parent;/* -> DTD */ struct _xmlNode *next;/* next sibling link */ struct _xmlNode *prev;/* previous sibling link */ struct _xmlDoc *doc;/* the containing document */
struct _xmlAttribute *nexth;/* next in hash table */ xmlAttributeType atype; /* The attribute type */ xmlAttributeDefault def; /* the default */ const xmlChar *defaultValue; /* or the default value */ xmlEnumerationPtr tree; /* or the enumeration tree if any */ const xmlChar *prefix; /* the namespace prefix if any */ const xmlChar *elem; /* Element holding the attribute */ };