summaryrefslogtreecommitdiff
path: root/bindings/xml/README
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/xml/README')
-rw-r--r--bindings/xml/README35
1 files changed, 35 insertions, 0 deletions
diff --git a/bindings/xml/README b/bindings/xml/README
new file mode 100644
index 0000000..0e427c7
--- /dev/null
+++ b/bindings/xml/README
@@ -0,0 +1,35 @@
+LibXML binding for libdom
+=========================
+
+Overview
+--------
+
+ This is an example binding of libxml2 to libdom. It consists of two,
+ orthogonal, parts:
+
+ 1) libxml push parser wrapper
+ 2) libxml-specific DOMImplementationSource for libdom
+
+Push parser wrapper
+-------------------
+
+ This is a wrapper around libxml's push parser API, to facilitate
+ construction of a libdom DOM tree. The basic premise is that the wrapper
+ intercepts the SAX events emitted by libxml's tokeniser then invokes
+ libxml's own SAX handlers, wrapping the results up in libdom-specific
+ data structures.
+
+ The tree created is thus a tree of libdom nodes, each of which is linked
+ to the libxml node that backs it. This allows the binding to process the
+ DOM tree using libxml api, should it need to (e.g. for normalization
+ purposes).
+
+DOMImplementationSource
+-----------------------
+
+ The DOMImplementationSource exposes the APIs needed to create a new
+ document based upon the libxml binding. It also provides the utility
+ functions that libdom uses when performing some operations (such as
+ document normalization). This is needed as libdom is document language
+ agnostic; therefore, it requires support from the binding to perform
+ some operations.