【问题标题】:XSD - Is possible to change attribute type in extension typeXSD - 可以更改扩展类型中的属性类型
【发布时间】:2013-02-26 10:28:42
【问题描述】:

我想将Name 属性的类型从xs:string 更改为xs:int,如下面的XSD 所示

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        xmlns="http://www.my.own/2013/XMLSchema">

    <xs:complexType name="AType">
        <xs:attribute name="Name" type="xs:string" use="required" />
    </xs:complexType>

    <xs:complexType name="BType">
        <xs:complexContent>
            <xs:extension base="AType">
                <xs:sequence>
                    <xs:choice>
                        <xs:element name="Content" type="xs:string"/>
                    </xs:choice>
                </xs:sequence>
                <xs:attribute name="Name" type="xs:int" use="required"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
</xs:schema>

这个 XSD 有效吗?如果没有,是否存在其他更改属性类型的解决方案?

【问题讨论】:

  • Nane 的基础AType 错字吗?
  • 你的问题是可以改变还是有效?
  • 1.错字已修复。 2. 其实我对这两个问题的答案都很感兴趣
  • 我认为可以使用&lt;redefine&gt; 元素,显然你不能覆盖元素声明。让我们拭目以待,看看其他人怎么说。

标签: xml xsd xsd-validation


【解决方案1】:

不,类型派生的原则是,如果从基类型派生新类型,则派生类型的实例仍然必须是基类型的有效实例。因此,您不能将属性从字符串更改为 int。

【讨论】:

    猜你喜欢
    • 2011-04-15
    • 2021-12-24
    • 1970-01-01
    • 2021-01-18
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2019-10-22
    • 2016-12-11
    相关资源
    最近更新 更多