次のxsdタイプを定義しました。
<xs:complexType name="parentType">
<xs:sequence>
<xs:element name="att" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="childType">
<xs:complexContent>
<xs:extension base="parentType">
<xs:sequence>
<xs:element name="att" type="xs:string" default="foo" minOccurs="0" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ご想像のとおり、デフォルト値'foo'を指定し、その出現範囲を変更することで、型の要素をオーバーライドしたいと思います(Javaで行うように)。
残念ながら、を書くとき<childType />
、私は。を持つ要素を持っていると期待されていatt="foo"
ますが、私のXMLバリデーターは次The content of element 'childType' is not complete. One of '{att}' is expected.
のように言っています:要素定義のオーバーライドが機能しなかったようです。
私は何か見落としてますか?XSDで要素定義をオーバーライドする方法を知っていますか?