Added prev and doc pointers to Node, confomity with DOM, Daniel
diff --git a/include/libxml/tree.h b/include/libxml/tree.h
index 714d4a6..a4a808d 100644
--- a/include/libxml/tree.h
+++ b/include/libxml/tree.h
@@ -88,15 +88,28 @@
/*
* A node in an XML tree.
+ * NOTE: This is synchronized with DOM Level1 values
+ * See http://www.w3.org/TR/REC-DOM-Level-1/
*/
-#define XML_TYPE_TEXT 1
-#define XML_TYPE_COMMENT 2
-#define XML_TYPE_ENTITY 3
+#define XML_ELEMENT_NODE 1
+#define XML_ATTRIBUTE_NODE 2
+#define XML_TEXT_NODE 3
+#define XML_CDATA_SECTION_NODE 4
+#define XML_ENTITY_REF_NODE 5
+#define XML_ENTITY_NODE 6
+#define XML_PI_NODE 7
+#define XML_COMMENT_NODE 8
+#define XML_DOCUMENT_NODE 9
+#define XML_DOCUMENT_TYPE_NODE 10
+#define XML_DOCUMENT_FRAG_NODE 11
+#define XML_NOTATION_NODE 12
typedef struct xmlNode {
int type; /* type number in the DTD */
+ struct xmlDoc *doc; /* the containing document */
struct xmlNode *parent; /* child->parent link */
struct xmlNode *next; /* next sibling link */
+ struct xmlNode *prev; /* previous sibling link */
struct xmlNode *childs; /* parent->childs link */
struct xmlAttr *properties; /* properties list */
const CHAR *name; /* the name of the node, or the entity */
@@ -147,9 +160,14 @@
extern const CHAR *xmlGetProp(xmlNodePtr node, const CHAR *name);
extern void xmlFreePropList(xmlAttrPtr cur);
extern void xmlFreeProp(xmlAttrPtr cur);
+extern xmlNodePtr xmlNewDocNode(xmlDocPtr doc, xmlNsPtr ns,
+ const CHAR *name, CHAR *content);
extern xmlNodePtr xmlNewNode(xmlNsPtr ns, const CHAR *name, CHAR *content);
+extern xmlNodePtr xmlNewDocText(xmlDocPtr doc, const CHAR *content);
extern xmlNodePtr xmlNewText(const CHAR *content);
+extern xmlNodePtr xmlNewDocTextLen(xmlDocPtr doc, const CHAR *content, int len);
extern xmlNodePtr xmlNewTextLen(const CHAR *content, int len);
+extern xmlNodePtr xmlNewDocComment(xmlDocPtr doc, CHAR *content);
extern xmlNodePtr xmlNewComment(CHAR *content);
extern xmlNodePtr xmlAddChild(xmlNodePtr parent, xmlNodePtr cur);
extern xmlNodePtr xmlGetLastChild(xmlNodePtr node);
@@ -168,6 +186,8 @@
extern void xmlSetNs(xmlNodePtr node, xmlNsPtr ns);
extern xmlNodePtr xmlNewChild(xmlNodePtr parent, xmlNsPtr ns,
const CHAR *name, CHAR *content);
+extern xmlNodePtr xmlNewChild(xmlNodePtr parent, xmlNsPtr ns,
+ const CHAR *name, CHAR *content);
extern void xmlBufferWriteCHAR(const CHAR *string);
extern void xmlBufferWriteChar(const char *string);