O'Reilly logo

XML Hacks by Michael Fitzgerald

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Convert a RELAX NG Schema to XML Schema

If you like working with RELAX NG but you need XML Schema too, Trang is the answer. Trang converts RELAX NG schemas (in both XML and compact syntax) to XML Schema.

If you are like me, you prefer to work with RELAX NG when developing schemas for XML, but out of necessity you may need to provide schemas in XML Schema format. Trang can help you out because it allows you to translate RELAX NG schemas in XML or compact syntax into XML Schema. This hack shows you how.

Here is the command to convert the RELAX NG schema time.rng (in XML syntax) to newtime.xsd:

java -jar trang.jar time.rng newtime.xsd

Example 5-14 shows the XML Schema that is the result of the translation (newtime.xsd ):

Example 5-14. newtime.xsd

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified">
  <xs:element name="time">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="hour"/>
        <xs:element ref="minute"/>
        <xs:element ref="second"/>
        <xs:element ref="meridiem"/>
        <xs:element ref="atomic"/>
      </xs:sequence>
      <xs:attribute name="timezone" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="hour" type="xs:string"/>
  <xs:element name="minute" type="xs:string"/>
  <xs:element name="second" type="xs:string"/>
  <xs:element name="meridiem" type="xs:string"/>
  <xs:element name="atomic">
    <xs:complexType>
      <xs:attribute name="signal" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>

The schema element is the document ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required