请看我的模式的片段,请:
<xs:complexType name="P">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="WP">
<xs:complexContent>
<xs:extension base="P">
<xs:sequence>
<xs:element name="l-l-l" type="xs:integer"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="p" type="P"/>
现在,
我希望能够做:
<p>
<name>someName</name>
<lll>213</lll>
</p>
但是,我发现lll
未被阐明。我知道将<xs:element name="p" type="P"/>
更改为<xs:element name="p" type="WP"/>
可以帮助我,但是我想使用它,例如Java中的对象或其他面向对象的编程语言。
如何做?
XSD中扩展的类型不能代替原始类型,除非实例明确包含属性xsi:type="type-name"
。