次のようなxmlファイルがあります。
<customer>
<field1 />
<field2 />
<field3>
<item1 />
</field3>
<field3>
<item1 />
</field3>
</customer>
field* は任意の順序で表示でき、field3 のみ複数回表示できます。
これを検証するために XSD ファイルを作成するにはどうすればよいですか?
ありがとうございました!
次のようなxmlファイルがあります。
<customer>
<field1 />
<field2 />
<field3>
<item1 />
</field3>
<field3>
<item1 />
</field3>
</customer>
field* は任意の順序で表示でき、field3 のみ複数回表示できます。
これを検証するために XSD ファイルを作成するにはどうすればよいですか?
ありがとうございました!
私は教祖ではありませんが、これはうまくいくようです。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="customer" type="customerType"/>
<xs:complexType name="customerType">
<xs:sequence>
<xs:element name="field1" minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="field2" minOccurs="1" maxOccurs="1">
</xs:element>
<xs:element name="field3" type="field3Type"
minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="field3Type">
<xs:sequence>
<xs:element name="item1">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:schema>
XMLコピーエディターを使用しましたが、XMLを検証するエディターがたくさんあります。
XMLファイルからXSDを生成する方法について のこの記事にも興味があるかもしれません。
うーん、これは xsd が本当に便利ではない種類の作業です。とにかく、私が間違いを犯していなければ、これでうまくいくはずです:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/NewXMLSchema"
xmlns:tns="http://www.example.org/NewXMLSchema" elementFormDefault="qualified">
<element name="customer" type="tns:customerType"/>
<complexType name="customerType">
<sequence>
<element>
<complexType>
<all>
<element>
<complexType>
<sequence>
<element ref="tns:field3" maxOccurs="unbounded"/>
<element ref="tns:field1" maxOccurs="1"/>
</sequence>
</complexType>
</element>
<element>
<complexType>
<sequence>
<element ref="tns:field3" maxOccurs="unbounded"/>
<element ref="tns:field2" maxOccurs="1"/>
</sequence>
</complexType>
</element>
<element>
<complexType>
<sequence>
<element ref="tns:field3" maxOccurs="unbounded"/>
<element ref="tns:field4" maxOccurs="1"/>
</sequence>
</complexType>
</element>
</all>
</complexType>
</element>
<element ref="tns:field3" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="field1Container"/>
<complexType name="field2Container"/>
<complexType name="field3Type">
<sequence>
<element name="item1"/>
</sequence>
</complexType>
<complexType name="field4Container"/>
<element name="field3" type="tns:field3Type"/>
<element name="field1"/>
<element name="field2"/>
<element name="field4"/>
</schema>