Libxml2 is made of multiple components; some of them are optional, and
most of the block interfaces are public. The main components are: 
  - an Input/Output layer
 
  - FTP and HTTP client layers (optional)
 
  - an Internationalization layer managing the encodings support
 
  - a URI module
 
  - the XML parser and its basic SAX interface
 
  - an HTML parser using the same SAX interface (optional)
 
  - a SAX tree module to build an in-memory DOM representation
 
  - a tree module to manipulate the DOM representation
 
  - a validation module using the DOM representation (optional)
 
  - an XPath module for global lookup in a DOM representation
  (optional)
 
  - a debug module (optional)
 
 Graphically this gives the following:  
 Daniel Veillard  |