Note: the documentation below doesn't reflec the changes by MH; see her announcement of 11 Jan 2001 to xml-dev.
If no file is specified, STDIN will be used.
perl dtd2xsd.pl [-alias] [-prefix p] [-ns n] [file] -alias enables special aliases (default off) -prefix t specify namespace prefix -ns http://www.w3.org/namespace/ specify namespace URI -simpletype pattern base treat parameter entities whose name match this pattern as simple datatypes derived from this base type -attrgroup pattern treat parameter entities whose name match this pattern as attribute groups -modelgroup pattern treat parameter entities whose name match this pattern as model groups
| DTD | XML Schema | 
|---|---|
| <!ELEMENT ROOT (A,B) > | <element name="ROOT"> <complexType content="elementOnly"> <element ref="t:A"> <element ref="t:B"> </complexType> <element> | 
| <!ELEMENT ROOT (A|B) > | <element name="ROOT"> <complexType content="elementOnly"> <choice> <element ref="t:A"> <element ref="t:B"> </choice> </complexType> <element> | 
| <!ELEMENT ROOT (A|(B,C)) > | 
<element name="ROOT">
 <complexType content="elementOnly">
  <choice>
   <element ref="t:A">
   <sequence>
    <element ref="t:B">
    <element ref="t:C">
   </sequence>
  </choice>
 </complexType>
<element>
 | 
| <!ELEMENT ROOT (A?,B+,C*) > | <element name="ROOT"> <complexType content="elementOnly"> <element ref="t:A" minOccurs="0"> <element ref="t:B" maxOccurs="unbounded"> <element ref="t:C" minOccurs="0" maxOccurs="unbounded"> </complexType> <element> | 
| DTD | XML Schema | 
|---|---|
| 
<!ATTLIST ROOT
    a CDATA #REQUIRED>
 | <element name="ROOT"> <complexType content="elementOnly"> <attribute name="a" type="string" use="required"/> </complexType> <element> | 
| 
<!ATTLIST ROOT
    a CDATA #IMPLIED>
 | <element name="ROOT"> <complexType content="elementOnly"> <attribute name="a" type="string" use="optional"/> </complexType> <element> | 
| 
<!ATTLIST ROOT
    a (x|y|z) #REQUIRED;>
 | 
<element name="ROOT">
 <complexType content="elementOnly">
  <attribute name="a">
   <simpleType base="string">
    <enumeration value="x"/>
    <enumeration value="y"/>
    <enumeration value="z"/>
   </simpleType>
  </attribute>
 </complexType>
<element>
 | 
| 
<!ATTLIST ROOT
    a CDATA #FIXED "x">
 | <element name="ROOT"> <complexType content="elementOnly"> <attribute name="a" type="string" use="fixed" value="x"/> </complexType> <element> | 
Use dtd2xsd.pl -simpleType ContentType string to turn
<!ENTITY % ContentType "CDATA">
    <!-- media type, as per [RFC2045] -->
into
<simpleType name='ContentType' base='string'> </simpleType>
@@along with references to %ContentType;
Use dtd2xsd.pl -simpleType Number nonNegativeInteger to turn
<!ENTITY % Number "CDATA">
into
<simpleType name='Number' base='nonNegativeInteger'> </simpleType>
@@more on model groups, attribute groups. Meanwhile, see the makefile for examples.
The program is Copyright © W3C® and provided under the W3C Software License
Yuichi Koike ($Date: 2017/11/22 16:53:40 $)