带有附加属性

时间:2017-01-06 00:25:47

标签: xml xsd

我正在使用类型的扩展,我正在尝试添加另一个需要属于特定类型的属性。可悲的是,我只能让他们中的一个一次工作。

代码示例(这只是我尝试的许多事情的当前状态):

<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:attributexs:complexType更高级别(xs:complexType之前或之后)移动,则文档会通过验证,即使elementCommonInfo中存在必须存在的属性那些不存在。

TL; DR:如何从扩展中获取所有属性以及我在&#34;扩展&#34;中定义的新属性。类型?

1 个答案:

答案 0 :(得分:1)

也许你可以这样试试:

<xs:complexType name="buttonBaseType">
    <xs:simpleContent>
        <xs:extension base="elementCommonInfo">
            <xs:attribute name="text" type="nonEmptyString"/>
        </xs:extension>
    </xs:simpleContent>
</xs:complexType>