More work toward DTD parsing, informations on the mailing-list and Web, Daniel.
diff --git a/valid.h b/valid.h
index d6765ff..bef45dc 100644
--- a/valid.h
+++ b/valid.h
@@ -11,8 +11,25 @@
 #define __XML_VALID_H__
 #include "tree.h"
 
+/*
+ * ALl element declarations are stored in a table
+ * there is one table per DTD
+ */
+
+#define XML_MIN_ELEMENT_TABLE	32
+
+typedef struct xmlElementTable {
+    int nb_elements;		/* number of elements stored */
+    int max_elements;		/* maximum number of elements */
+    xmlElementPtr table;	/* the table of entities */
+} xmlElementTable, *xmlElementTablePtr;
+
 extern xmlElementPtr xmlAddElementDecl(xmlDtdPtr dtd, char *name, int type, 
                                        xmlElementContentPtr content);
 extern xmlElementContentPtr xmlNewElementContent(CHAR *name, int type);
+extern xmlElementContentPtr xmlCopyElementContent(xmlElementContentPtr content);
 extern void xmlFreeElementContent(xmlElementContentPtr cur);
+
+extern xmlElementTablePtr xmlCopyElementTable(xmlElementTablePtr table);
+extern void xmlFreeElementTable(xmlElementTablePtr table);
 #endif /* __XML_VALID_H__ */