我正在使用类型的扩展,我正在尝试添加另一个需要属于特定类型的属性。可悲的是,我只能让他们中的一个一次工作。
代码示例(这只是我尝试的许多事情的当前状态):
<xs:complexType name="buttonBaseType">
<xs:complexContent>
<xs:attribute name="text" type="nonEmptyString"/>
<xs:extension base="elementCommonInfo"/>
</xs:complexContent>
</xs:complexType>
elementCommonInfo
定义了一些属性,比方说2,一个具有默认值,一个没有这样的东西。
因此,在此版本中,以下代码<button text="e"/>
会创建错误base-frame.xml:7:27: attribute 'text' is not declared for element 'button'
。如果我将xs:attribute
从xs:complexType
更高级别(xs:complexType
之前或之后)移动,则文档会通过验证,即使elementCommonInfo
中存在必须存在的属性那些不存在。
TL; DR:如何从扩展中获取所有属性以及我在&#34;扩展&#34;中定义的新属性。类型?
答案 0 :(得分:1)
也许你可以这样试试:
<xs:complexType name="buttonBaseType">
<xs:simpleContent>
<xs:extension base="elementCommonInfo">
<xs:attribute name="text" type="nonEmptyString"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>