スキーマが与えられた場合 (匿名化され、関心のある重要なポイントの名前が変更され、残りは省略されます):
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="inspec"
targetNamespace="the_right_namespace"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:element name="inspec">
<xs:complexType>
<xs:all>
<xs:element name="a_scalar_property" type="xs:int"/>
<xs:element name="a_collection_property">
<xs:complexType>
<snip>
</xs:complexType>
</xs:element>
<xs:element name="another_collection_property">
<xs:complexType>
<snip>
</xs:complexType>
</xs:element>
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
およびインスタンス (VB xml リテラルを使用して宣言):
Dim xDocument =
<x:inspec xmlns:x='the_right_namespace'>
<a_collection_property/>
<another_collection_property/>
</x:inspec>
検証はメッセージで失敗しますThe element 'inspec' in namespace 'the_right_namespace' has incomplete content. List of possible elements expected: 'a_scalar_property'.
なんで?all
W3Schools によると、要素:
「all 要素は、子要素が任意の順序で表示され、各子要素が 0 回または 1 回発生することを指定します。」
省略a_scalar_property
することは、ゼロ回含めることと同じです。この文書が検証に失敗するのはなぜですか?
また、「完全なコードを投稿してください」などとは言わないでください。これは私の IP ではなく、正当な理由で匿名化しています。他にはほとんど何もありません。この最小限の例でテストしましたが、同じ結果が得られました。