Changed the internals a lot for DOM, entity support, slight changes of API,
more (if not all) formating of function comments, started documentation, Daniel.
diff --git a/doc/structure.fig b/doc/structure.fig
new file mode 100644
index 0000000..34f6237
--- /dev/null
+++ b/doc/structure.fig
@@ -0,0 +1,303 @@
+#FIG 3.2
+Landscape
+Center
+Inches
+Letter  
+100.00
+Single
+-2
+1200 2
+6 1275 4425 5475 5100
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2250 5100 2250 4425 1275 4425 1275 5100 2250 5100
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 3975 5100 3975 4425 3000 4425 3000 5100 3975 5100
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 5475 5100 5475 4425 4500 4425 4500 5100 5475 5100
+4 0 0 0 0 14 16 0.0000 4 135 600 4650 4725 TEXT\001
+4 0 0 0 0 14 16 0.0000 4 135 600 1425 4725 TEXT\001
+4 0 0 0 0 14 16 0.0000 4 135 900 3075 4725 ENTITY\001
+4 0 0 0 0 14 16 0.0000 4 135 450 3075 4950 REF\001
+-6
+6 825 4575 900 5100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4575 900 5100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 5025 825 5100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4950 825 5025
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4800 825 4875
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4875 825 4950
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4650 825 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4725 825 4800
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 900 4575 825 4650
+-6
+6 1125 2325 1200 2850
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2325 1200 2850
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2775 1125 2850
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2700 1125 2775
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2550 1125 2625
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2625 1125 2700
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2400 1125 2475
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2475 1125 2550
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 1200 2325 1125 2400
+-6
+6 2550 4650 2625 5175
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4650 2625 5175
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 5100 2550 5175
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 5025 2550 5100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4875 2550 4950
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4950 2550 5025
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4725 2550 4800
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4800 2550 4875
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2625 4650 2550 4725
+-6
+6 6000 4200 6075 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4200 6075 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4650 6000 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4575 6000 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4425 6000 4500
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4500 6000 4575
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4275 6000 4350
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4350 6000 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 6075 4200 6000 4275
+-6
+6 2475 4425 2550 4950
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4950 2475 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4500 2550 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4575 2550 4500
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4725 2550 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4650 2550 4575
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4875 2550 4800
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4800 2550 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 2475 4950 2550 4875
+-6
+6 5775 4425 5850 4950
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4950 5775 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4500 5850 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4575 5850 4500
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4725 5850 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4650 5850 4575
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4875 5850 4800
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4800 5850 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 5775 4950 5850 4875
+-6
+6 9000 2100 9075 2625
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2625 9000 2100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2175 9075 2100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2250 9075 2175
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2400 9075 2325
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2325 9075 2250
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2550 9075 2475
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2475 9075 2400
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 9000 2625 9075 2550
+-6
+6 11850 4050 11925 4575
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4575 11850 4050
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4125 11925 4050
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4200 11925 4125
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4350 11925 4275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4275 11925 4200
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4500 11925 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4425 11925 4350
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 2
+	 11850 4575 11925 4500
+-6
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 3150 375 4425 375 4425 1275 3150 1275 3150 375
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 2850 2775 2850 2100 1875 2100 1875 2775 2850 2775
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 5550 2775 5550 2100 4575 2100 4575 2775 5550 2775
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 8175 2775 8175 2100 7200 2100 7200 2775 8175 2775
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 7650 4725 7650 4050 6675 4050 6675 4725 7650 4725
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 9675 4725 9675 4050 8700 4050 8700 4725 9675 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3750 1275 2400 2100
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2850 2325 4575 2325
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 5550 2325 7200 2325
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 8175 2325 9000 2325
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7200 2550 5550 2550
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4575 2550 2850 2550
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 1875 2550 1200 2550
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2250 2100 3525 1275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 5100 2100 4050 1275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7725 2100 4125 1275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7725 2775 7125 4050
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7650 4275 8700 4275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 8700 4425 7650 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 9675 4275 10275 4275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 6675 4500 6075 4500
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 1275 3375 2250 3375 2250 3825 1275 3825 1275 3375
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 3000 3375 3975 3375 3975 3825 3000 3825 3000 3375
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2325 2775 1725 3375
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2250 3600 3000 3600
+2 4 0 1 0 7 0 0 -1 0.000 0 0 7 0 0 5
+	 11250 4725 11250 4050 10275 4050 10275 4725 11250 4725
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 11250 4275 11850 4275
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 10275 4425 9675 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 1725 3825 1725 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3450 3825 3450 4425
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3975 4650 4500 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 5475 4650 5775 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4500 4875 3975 4875
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 2250 4650 2550 4650
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 1275 4875 900 4875
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 975 5625 2550 5625 2550 5850 975 5850 975 5625
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 4200 5625 5775 5625 5775 5850 4200 5850 4200 5625
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 6450 5250 8025 5250 8025 5475 6450 5475 6450 5250
+2 2 0 1 0 7 0 0 -1 0.000 0 0 -1 0 0 5
+	 10125 5250 11700 5250 11700 5475 10125 5475 10125 5250
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 1725 5100 1725 5625
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 4875 5100 4875 5625
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 7050 4725 7050 5250
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 10650 4725 10650 5250
+2 1 0 1 0 7 0 0 -1 0.000 0 0 -1 1 0 2
+	1 1 1.00 60.00 120.00
+	 3000 4875 2625 4875
+4 0 0 0 0 0 16 0.0000 4 150 420 3000 2250 next\001
+4 0 0 0 0 0 16 0.0000 4 180 450 3975 2775 prev\001
+4 0 0 0 0 0 16 0.0000 4 210 630 5100 2025 parent\001
+4 0 0 0 0 14 15 0.0000 4 135 945 7200 2475 ELEMENT\001
+4 0 0 0 0 14 15 0.0000 4 135 945 4575 2475 ELEMENT\001
+4 0 0 0 0 14 15 0.0000 4 135 945 1875 2475 ELEMENT\001
+4 0 0 0 0 14 16 0.0000 4 135 450 8775 4590 REF\001
+4 0 0 0 0 14 16 0.0000 4 135 900 8775 4350 ENTITY\001
+4 0 0 0 0 14 16 0.0000 4 135 600 10350 4425 TEXT\001
+4 0 0 0 0 14 16 0.0000 4 135 600 6750 4425 TEXT\001
+4 0 0 0 0 14 16 0.0000 4 150 1050 1275 2025 xmlNode\001
+4 0 0 0 0 14 16 0.0000 4 150 900 2175 675 xmlDoc\001
+4 0 0 0 0 14 16 0.0000 4 150 1050 675 3300 xmlAttr\001
+4 0 0 0 0 14 16 0.0000 4 135 1200 3225 825 DOCUMENT\001
+4 0 0 0 0 0 16 0.0000 4 150 390 3375 1650 root\001
+4 0 0 0 0 -1 20 0.0000 4 285 4770 5175 825 A DOM tree as built by the XML parser\001
+4 0 0 0 0 -1 20 0.0000 4 180 465 1050 6150 text\001
+4 0 0 0 0 -1 16 0.0000 4 225 990 2250 3000 properties\001
+4 0 0 0 0 -1 16 0.0000 4 150 720 1800 5475 content\001