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.
Yuichi Koike ($Date: 2000/06/16 23:04:50 $)