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 $)