2
可変要素の順序でxsdで継承を使用できますか?可変要素の順序でxsdで継承を使用できますか?
基本的には、このような何かがうまくいかない「拡張子」の内側に許可されていない「すべて」以来、:
<xs:complexType name="root">
<xs:complexContent>
<xs:all>
<xs:element name="A" type="xs:string"/>
<xs:element name="B" type="xs:string"/>
</xs:all>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="extended">
<xs:complexContent>
<xs:extension base="root">
<xs:all>
<xs:element name="C" type="xs:string"/>
<xs:element name="D" type="xs:string"/>
</xs:all>
</xs:extension>
</xs:complexContent>
</xs:complexType>
最も簡単な解決策は、単に「配列」の代わりに「すべて」を使用することですが、要素の順序は保証されませんので、私の場合、これは、オプションではありませんので、このような何か:
<obj>
<B/>
<C/>
<D/>
<A/>
</obj>
があるため、間違った要素の順序で無効になりますが、すべての要素が存在しているので、すべきではありませんさ。
1.1 XMLスキーマをサポートするXercesベータパーサを使ってこれをJavaでテストしたところ、以前と同じエラーが発生しました.XSD 1.1仕様に基づいてスキーマが本当に正当なものであるかどうかをテストできますか? – Shajirr