What is XML ?

XML is a W3C Recommendation for building tag-based structured documents/data.

Tags like in HTML/SGML : <myTag>

Structured: XML requires proper nesting and closing

Why is XML useful for free software ?

A few examples:

What is libxml

Libxml is an XML toolkit:

Libxml main interfaces

Libxml architecture overview

libxml architecture drawing

A basic example

<?xml version="1.0"?>
<example prop1="gnome is great" prop2="&amp; linux too">
  <head>
   <title>Welcome to Gnome</title>
  </head>
  <chapter>
   <title>The Linux adventure</title>
   <p>bla bla bla ...</p>
   <image href="linus.gif"/>
   <p>...</p>
  </chapter>
</example>

The DOM tree

 structure.gif

Internationalization

XML requires support for the following encodings:

Libxml v1 was very weak in that area. Libxml2 has native support for both encodings and ISO-Latin-x

If iconv library is found at compile time, it is used to add support to a large (and expandable) set of encodings including the most common Japanese encodings.

Libxml can save to a specific encoding, if a character cannot be encoded it is converted to a char ref on the fly like &#x1234;

On the workbench

Started but not completed:

Todo:

Add-ons worked on:

Existing use

Libxml is already in use in a number of environments:

However most users just don't give feedback, but patches are coming (and usually accepted !)

Future

Focuse on implementing future XML specifications

Would like a basic rendering widget (gtkhtml2)

Would like volunteers for an XSLT implementation