假设我有一些模式:
<xsd:schema ...>
<xsd:element name="foo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fooElement" type="xs:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
它定义了一些foo
元素,其中包含一些类型为string的元素fooElement
。现在,我想扩展元素foo
,使其也有一个元素barElement
,并将此扩展称为bar
。
让事情更复杂的是,我们还假设其他人定义了foo
,并且模式不能更改。虽然这里的示例很简单,但我们也假设foo
的内容可能更复杂,并且定义新模式并不像复制元素fooElement
那么简单。
实际上,我想定义一个新的模式:
<xsd:schema xmlns:fns="otherschema" ...>
<xsd:import namespace="otherschema" />
<xsd:element name="bar">
<xsd:complexContent>
<xsd:extension base="fns:foo">
<xsd:sequence>
<xsd:element name="barElement" type="xs:string" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:element>
</xsd:schema>
不幸的是,<xsd:extension>
的base
属性只接受XSD类型的参数,而不接受元素。如何扩展元素?(我能扩展元素吗?)
https://stackoverflow.com/questions/1499836
复制相似问题