送信されたスキーマを使用してクライアント XML を検証しようとしています。概略的には、次のようになります。
<?xml version="1.0" encoding="UTF-8">
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.client.com"
targetNamespace="http://www.client.com"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
version="0.1">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="Parent" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Parent">
<xs:complexType>
<xs:sequence>
<xs:element name="Child1" type="xs:string"/>
<xs:element name="Child2" type="xs:string" nillable="true"/>
<xs:element name="Child3" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
検証したい XML の例は次のようになります。
<Parent>
<Child1>Entry</Child1>
<Child2 xsi:nil="true"/>
<Child3>Entry</Child3>
</Parent>
私の質問はこれです: 上記の XML は実際に整形式ですか? 私の XML の (不十分な) 理解は、名前空間が「xsi」タグに必要であると考えさせます。実際、これを検証すると、エラーが発生します (タグ「xsi」は名前空間にバインドされていません)。XML を次のように変更します。
<Parent xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Child1>Entry</Child1>
<Child2 xsi:nil="true"/>
<Child3>Entry</Child3>
</Parent>
私たち側の問題を修正し、私にとってより理にかなっています。しかし、クライアントは、元の XML は XMLSpy と VisualStudio で検証されると言っていたので、何か不足しているのではないでしょうか?
どんな助けでも大歓迎です。どうもありがとう!