0

XSDファイルminOccursののプロパティのデフォルトは1 (ソース)です。 2つの要素を含む複合型を指定するXSDがあるとします:と。を含むのみを 指定した場合、は検証されません。 代わりに、次のメッセージが表示されます。<element>

<el1><el2>
XDocument<el2>XDocument

名前空間___の要素Messageには、名前空間___の無効な子要素el2があります。
予想される可能な要素のリスト:el1

これは基本的に、<el2>を含まないために複合型でエラーが予想される場所でのエラー<el1>です。

私の質問は次のとおり
<element>です。0より大きい すべてのタグminOccursが存在するかどうかを確認する方法はありますか?
これは、XSDでXMLを検証する際の非常に基本的なチェックだと思います。

4

1 に答える 1

2

スキーマの定義方法によっては、要素の出現順序が重要になります。

この場合、バリデーターは<el1>を予期していますが、要素<el2>を認識しているため、エラーは<el2>が表示されるべきではない場所に表示されていることです。複合型を定義するときに「シーケンス」を使用したことを意味すると思います。したがって、取得時のエラーは正しいです。

これでも問題が発生し、要素の順序が解析に関係ない場合は、順序を強制しない「シーケンス」ではなく「すべて」を使用してください。次に、バリデーターは、必要な要素<el1>が欠落していることを通知する必要があります。次のようになります。

<xsd:complexType name="MyType">
  <xsd:all>
    <xsd:element name="el1" minOccurs="1"/>
    <xsd:element name="el2" minOccurs="1"/>
  </xsd:all>
</xsd:complexType>

これがお役に立てば幸いです。

于 2011-06-29T12:20:17.033 に答える