# The XML C parser and toolkit of Gnome

## XML

Main Menu

- Home
- Reference Manual
- Introduction
- FAQ
- Developer Menu
- Reporting bugs and getting help
- How to help
- Downloads
- Releases
- XML
- XSLT
- Validation & DTDs
- Encodings support
- Catalog support
- Namespaces
- Contributions
- Code Examples
- API Menu
- XML Guidelines
- Recent Changes

Related links

- Mail archive
- XSLT libxslt
- DOM gdome2
- XML-DSig xmlsec
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- lxml Python bindings
- Perl bindings
- C++ bindings
- PHP bindings
- Pascal bindings
- Ruby bindings
- Tcl bindings
- Bug Tracker

XML is a standard for markup-based structured documents. Here is an example XML document:

    <?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 first line specifies that it is an XML document and gives useful information about its encoding. Then the rest of the document is a text format whose structure is specified by tags between brackets. Each tag opened has to be closed. XML is pedantic about this. However, if a tag is empty (no content), a single tag can serve as both the opening and closing tag if it ends with `/>` rather than with `>`. Note that, for example, the image tag has no content (just an attribute) and is closed by ending the tag with `/>`.

XML can be applied successfully to a wide range of tasks, ranging from long term structured document maintenance (where it follows the steps of SGML) to simple data encoding mechanisms like configuration file formatting (glade), spreadsheets (gnumeric), or even shorter lived documents such as WebDAV where it is used to encode remote calls between a client and a server.

Daniel Veillard