从DTDs转换到XML Schemas时元素和属性的变化有哪些?

从DTDs转换到XML Schemas时元素和属性的变化有哪些?

从 DTDs 转换到 XML Schemas 时元素和属性的变化

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>