Author: Lars Marius Garshol
Description: This is the home page of a validating XML parser written in pure Python.
Keywords: XML, Python, parser

# xmlproc: An XML parser in Python

Version: | 0.70
Author: | Lars Marius Garshol - larsga@garshol.priv.no.
Last release: | 2000-05-11

## What is xmlproc?

xmlproc is an XML parser written in Python. It is a nearly complete validating parser, with only minor deviations from the specification (listed below). It supports both SGML Open Catalogs and XCatalog 0.1, as well as error messages in different languages. xmlproc also supports namespaces. Access to DTD information is provided, as is a separate DTD parser. SAX drivers are provided with the parser.

Additional utilities are command-line tools for validating and non-validating parsing as well as DTD parsing and also a GUI tool for parsing documents. A DTD to XML Schema converter is also included.

## Licence?

xmlproc is free and you can do as you like with it. If you change it, please let me know. A formal BSD-ish license is available.

## Documentation

At the moment the following topics are documented:

- High-level xmlproc documentation.
- Using the command-line parsers.
- Using xmlproc from Python code.
- The DTD API.
- The catalog file support.
- The DTD parser.
- The namespace support.

Note that it is recommended to use xmlproc through the SAX API rather than directly, since this provides much greater freedom in the choice of parsers. (For example, you can switch to using Pyexpat which is written in C without changing your code.)

## Getting xmlproc

You can download xmlproc here.

## Feedback

Any and all feedback is welcome, from suggestions for improvements or new features to bug reports. And I really mean it! If you have some opinions on this program, please let me hear them.

## Deviations from the XML specification

xmlproc does not follow the XML specification in these respects:

- External parameter entities are not allowed inside markup declarations.
- No attempt is made to deal with different character sets or encodings.
- The parser does not check for the illegal characters.
- The parser allows some syntactic constructs to cross entity boundaries in ways that are not allowed.

All other deviations from the specification are unintentional bugs and should be reported to me via email. Hopefully, xmlproc will be 100% compliant in version 1.00.

## xmlproc users

This is a list of other software projects that use xmlproc in some manner. If you know of one that isn't listed, please let me know.

- TTX.
- My.Netscape.Com.
- Robofog.

## Release notification

If you want to be notified when a new version appears you can fill in your name and email address in this form and submit it. I guarantee that I won't ever give away the email addresses on this list and that if this service dies you'll receive notification.

Your full name: |
Your email address: |

As an alternative, an XSA document is provided here.