# Trang

## Multi-format schema converter based on RELAX NG

Copyright © 2002, 2003, 2008 Thai Open Source Software Center Ltd

See the file copying.txt for copying permission.

### Version @VERSION@

Trang converts between different schema languages for XML. It supports the following languages:

- RELAX NG (XML syntax)
- RELAX NG compact syntax
- XML 1.0 DTDs
- W3C XML Schema

A schema written in any of the supported schema languages can be converted into any of the other supported schema languages, except that W3C XML Schema is supported for output only, not for input.

Trang can also infer a schema from one or more example XML documents.

Trang is constructed around an RELAX NG object model designed to support schema conversion. For each schema language supported for input, there is an input module that can convert from the schema language into this internal object model. Similarly, for each schema language supported for output, there is an output module that can convert from the internal object model in the schema language.

Trang aims to produce human-understandable schemas; it tries for a translation that preserves all aspects of the input schema that may be significant to a human reader, including the definitions, the way the schema is divided into files, annotations and comments.

Trang has a command-line user interface. It has no graphical user interface.

## Download

The file trang-@VERSION@.zip contains Trang version @VERSION@ including binaries, source code and documentation. It requires a Java runtime compatible with the Java 2 Platform, Standard Edition (J2SE) version 5 (or any later version), such as the Java Runtime Environment (JRE), which can be downloaded here.

The latest version of Trang will aalways be available in the Downloads section of the project site.

## Further information

Detailed information about using Trang is in the manual.

Some background information on the conversion to W3C XML Schema is available in the slides for a talk given a XML 2002.

## Participate

Development of Trang, together with Jing, takes place in the jing-trang project, which is hosted on Google Code.

If you find a bug or would like to request an enhancement, please create a new issue in the Issues section of the project site. You can talk with other users of Trang on the rng-users mailing list.

If you want to make changes to Trang, you should check out the source code from the project's Subversion repository. (The source code included in the Trang download is for reference purposes, and doesn't contain the supporting files, such as build scripts and test cases, that are needed for working conveniently with the source code.)

## Related software

Trang's DTD input module uses DTDinst. The Trang distribution already includes the necessary parts of DTDinst, so there is no need to download DTDinst just in order to use Trang. DTDinst is also available as an independent program that outputs an XML representation of an XML DTD.

The Sun Multi-Schema Validator includes the rngconv tool, which converts from a variety of different schema languages into RELAX NG. However, it is based on an object model which is designed to support validation, and so does not preserve aspects of the input schemas that are irrelevant for validation (such as the definitional structure).

The schematools package does schema conversion based around a restricted subset of RELAX NG. It supports conversion from W3C XML Schema to RELAX NG.