XSD:如何重新定义一个简单类型如的数据类型。从XS:字符串的xs:整数

StackOverflow https://stackoverflow.com/questions/2090855

我试图扩展和定制外部XSD架构(在FIXML标准的)。我需要改变的一些元素的数据类型,而不触及原有的模式,但通过重新定义它;但已经发现它非常繁琐。

什么存在:

字段-base.xsd

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="UTCTimestamp">
<xs:simpleType>

我希望它变成:

<xs:simpleType name="LastUpdateTime_t">
           <xs:restriction base="xs:string">
<xs:simpleType>

我曾尝试(但失败了):

<xs:redefine schemaLocation="fields-base.xsd">
            <xs:simpleType name="LastUpdateTime_t">
              <xs:restriction base="xs:string" />
            </xs:simpleType>
 </xs:redefine>

书籍和净好像还没有帮助太多要么,所以我开始怀疑,如果这在理论上是可能的。

有帮助吗?

解决方案

据我所知,这是不可能的。

我能验证在XMLSpy的唯一的重新定义是:

<xs:redefine schemaLocation="fields-base.xsd"> 
        <xs:simpleType name="LastUpdateTime_t"> 
          <xs:restriction base="LastUpdateTime_t" /> 
        </xs:simpleType> 
</xs:redefine> 

也就是说,新的限制必须基于基本限制。

可能是XMLSpy的是对这种错误。

W3C XML这个晦涩报价模式定义

  

在[孩子],各   简单类型必须有一个   在它的[孩子]和各   复杂类型必须有一个限制   或中扩展其   grand- [儿童]的·实际值·的   其基极[属性]必须是   同样作为自己的·实际值·   NAME属性加上目标命名空间;

可能是说这个(它是该规范的XMLSpy的链接到这个错误的那部分)。

重新定义简单类型我能找到的的唯一真正的好榜样这里。在这个例子中,重新定义仅用于枚举。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top