取得したデータが有効かどうかを検証できるように、システム間で使用する XML ファイルの XSD を生成する必要があります。
XML は次のようになります (ただし、より多くのフィールドがあります)。
<Request>
<Request_ID>1000012295</Request_ID>
<Extra_Info>
<Item>
<Item_Number>0000000001</Item_Number>
<ItemDescription>test- 2</ItemDescription>
</Item>
<Item>
<Item_Number>0000000002</Item_Number>
<ItemDescription>test - 2</ItemDescription>
</Item>
</Extra_Info>
</Request>
私のXSDは次のとおりです。
<?xml version="1.0" encoding="utf-16"?>
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Request">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Request_ID" type="xsd:int" />
<xsd:element name="Extra_Info">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Item">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Item_Number" type="xsd:int" />
<xsd:element name="ItemDescription" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
このスキーマは、ノードが 1 つしかない場合は機能しItem
ますが、ノードが複数あるとすぐに次のエラーが発生します。
要素 'Extra_Info' に無効な子要素 'Item' があります。
シーケンスとして指定されている場合、なぜ機能しないのですか?
ありがとう!
PS:迅速な検証のためにThis Online Validatorを使用しましたが、XMLReader でも同じエラーが発生します。