added more informations in the libxml2-python package including docs.

* configure.in libxml.spec.in python/Makefile.am python/TODO
  python/generator.py python/libxml2class.txt: added more informations
  in the libxml2-python package including docs. Slightly changed
  the class hierarchy
* python/tests/*: added basic regression tests infrastructure too
Daniel
diff --git a/python/generator.py b/python/generator.py
index 13a5ae7..ee477b0 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -210,11 +210,11 @@
     'double':  ('d', None, "double", "double"),
     'unsigned int':  ('i', None, "int", "int"),
     'xmlChar':  ('c', None, "int", "int"),
-    'unsigned char *':  ('s', None, "charPtr", "char *"),
-    'char *':  ('s', None, "charPtr", "char *"),
-    'const char *':  ('s', None, "charPtr", "char *"),
-    'xmlChar *':  ('s', None, "xmlCharPtr", "xmlChar *"),
-    'const xmlChar *':  ('s', None, "xmlCharPtr", "xmlChar *"),
+    'unsigned char *':  ('z', None, "charPtr", "char *"),
+    'char *':  ('z', None, "charPtr", "char *"),
+    'const char *':  ('z', None, "charPtr", "char *"),
+    'xmlChar *':  ('z', None, "xmlCharPtr", "xmlChar *"),
+    'const xmlChar *':  ('z', None, "xmlCharPtr", "xmlChar *"),
     'xmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"),
     'const xmlNodePtr':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"),
     'xmlNode *':  ('O', "xmlNode", "xmlNodePtr", "xmlNodePtr"),
@@ -465,13 +465,13 @@
 
 classes_ancestor = {
     "xmlNode" : "xmlCore",
-    "xmlDoc" : "xmlCore",
-    "xmlAttr" : "xmlCore",
-    "xmlNs" : "xmlCore",
-    "xmlDtd" : "xmlCore",
-    "xmlEntity" : "xmlCore",
-    "xmlElement" : "xmlCore",
-    "xmlAttribute" : "xmlCore",
+    "xmlDtd" : "xmlNode",
+    "xmlDoc" : "xmlNode",
+    "xmlAttr" : "xmlNode",
+    "xmlNs" : "xmlNode",
+    "xmlEntity" : "xmlNode",
+    "xmlElement" : "xmlNode",
+    "xmlAttribute" : "xmlNode",
 }
 classes_destructors = {
     "xpathContext": "xmlXPathFreeContext",
@@ -574,6 +574,8 @@
     function_classes['None'].append(info)
 
 classes = open("libxml2class.py", "w")
+txt = open("libxml2class.txt", "w")
+txt.write("          Generated Classes for libxml2-python\n\n")
 
 def functionCompare(info1, info2):
     (index1, func1, name1, ret1, args1, file1) = info1
@@ -608,6 +610,7 @@
      output.write(val);
      output.write('"""\n')
 
+txt.write("#\n# Global functions of the module\n#\n\n")
 if function_classes.has_key("None"):
     flist = function_classes["None"]
     flist.sort(functionCompare)
@@ -616,8 +619,10 @@
 	(index, func, name, ret, args, file) = info
 	if file != oldfile:
 	    classes.write("#\n# Functions from module %s\n#\n\n" % file)
+	    txt.write("\n# functions from module %s\n" % file)
 	    oldfile = file
 	classes.write("def %s(" % func)
+	txt.write("%s()\n" % func);
 	n = 0
 	for arg in args:
 	    if n != 0:
@@ -650,11 +655,14 @@
 		classes.write("    return ret\n");
 	classes.write("\n");
 
+txt.write("\n\n#\n# Set of classes of the module\n#\n\n")
 for classname in function_classes.keys():
     if classname == "None":
         pass
     else:
         if classes_ancestor.has_key(classname):
+	    txt.write("\n\nClass %s(%s)\n" % (classname,
+	              classes_ancestor[classname]))
 	    classes.write("class %s(%s):\n" % (classname,
 	                  classes_ancestor[classname]))
 	    classes.write("    def __init__(self, _obj=None):\n")
@@ -662,6 +670,7 @@
 	    classes.write("        %s.__init__(self, _obj=_obj)\n\n" % (
 	                  classes_ancestor[classname]))
 	else:
+	    txt.write("Class %s()\n" % (classname))
 	    classes.write("class %s:\n" % (classname))
 	    classes.write("    def __init__(self, _obj=None):\n")
 	    classes.write("        if _obj != None:self._o = _obj;return\n")
@@ -685,9 +694,11 @@
 		classes.write("    #\n")
 		classes.write("    # %s functions from module %s\n" % (
 		              classname, file))
+		txt.write("\n    # functions from module %s\n" % file)
 		classes.write("    #\n\n")
 	    oldfile = file
 	    classes.write("    def %s(self" % func)
+	    txt.write("    %s()\n" % func);
 	    n = 0
 	    for arg in args:
 	        if n != index:
@@ -727,4 +738,5 @@
 		    classes.write("        return ret\n");
 	    classes.write("\n");
 
+txt.close()
 classes.close()