XSD:如何重新定义一个简单类型如的数据类型。从XS:字符串的xs:整数
-
21-09-2019 - |
题
我试图扩展和定制外部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的是对这种错误。
在[孩子],各 简单类型必须有一个 在它的[孩子]和各 复杂类型必须有一个限制 或中扩展其 grand- [儿童]的·实际值·的 其基极[属性]必须是 同样作为自己的·实际值· NAME属性加上目标命名空间;
可能是说这个(它是该规范的XMLSpy的链接到这个错误的那部分)。
重新定义简单类型我能找到的的唯一真正的好榜样这里。在这个例子中,重新定义仅用于枚举。
不隶属于 StackOverflow