0
我有一个练习,要求我将DTD转换为XML Schema。我知道可以根据DTD验证XML文档(我使用的是由氧气开发的xml开发人员)。验证XML Schema是否可以用于DTD?我问这是因为我想检查我的翻译是否正确。检查XML Schema是否已正确从DTD转换
这是我DTD:
<!DOCTYPE x [
<!ELEMENT x (y1,y2)+>
<!ELEMENT y1 ((z1|z2)*,(z3,z4)+)>
<!ELEMENT y2 (z1?,z2*,z3?)>
<!ELEMENT z1 (#PCDATA)>
<!ELEMENT z2 (#PCDATA)>
<!ELEMENT z3 (#PCDATA)>
<!ELEMENT z4 EMPTY>
<!ATTLIST x attrx CDATA #REQUIRED>
<!ATTLIST y1 attry CDATA #IMPLIED>
]>
这是我的XML模式的尝试:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="x" type="xsd:string"></xsd:element>
<xsd:complexType name="tipox">
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
<xsd:element name="y1" type="tipoy1"/>
<xsd:element name="y2" type="tipoy2"/>
</xsd:sequence>
<xsd:attribute name="attrx" type="xsd:string" use="required"/>
</xsd:complexType>
<xsd:complexType name="tipoy1">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="z1" type="xsd:string"></xsd:element>
<xsd:element name="z2" type="xsd:string"></xsd:element>
</xsd:choice>
<xsd:sequence minOccurs="1" maxOccurs="unbounded">
<xsd:element name="z3" type="xsd:string"></xsd:element>
<xsd:element name="z4"><xsd:complexType/></xsd:element>
</xsd:sequence>
</xsd:sequence>
<xsd:attribute name="attry" type="xsd:string" use="optional"/>
</xsd:complexType>
<xsd:complexType name="tipoy2">
<xsd:sequence>
<xsd:element name="z1" type="xsd:string" minOccurs="0" maxOccurs="1"></xsd:element>
<xsd:element name="z2" type="xsd:string" minOccurs="0" maxOccurs="unbounded"></xsd:element>
<xsd:element name="z3" type="xsd:string" minOccurs="0" maxOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>