我已经定义了以下 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 />
,我应该有一个带有 a 的元素att="foo"
,但是我的 XML 验证器说:The content of element 'childType' is not complete. One of '{att}' is expected.
似乎元素定义的覆盖不起作用。
我错过了什么?你知道如何覆盖 XSD 中的元素定义吗?