给定两种简单的数据类型,例如受限字符串type1
, type2
,是否有可能定义type3
描述通过连接一个字符串形成的所有字符串type1
字符串加一type2
string?
例如,考虑
<xsd:simpleType name="type1">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[A-Z]"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="type2">
<xsd:restriction base="xsd:string">
<xsd:pattern value="[0-9]"></xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
然后我想定义type3
这样
A0 -> valid
B1 -> valid
AA -> invalid
etc...
请注意,此示例仅用于说明,我知道如何组合正则表达式模式,但我的问题是如何通过 XSD 组合类型。
XML 模式仅允许通过以下方式构造新的简单类型:
- 限制(例如,
type1
可以仅限于元音)
- 列表(例如,列表
type1
将有A B D D E
在其词汇空间中)
- union(例如,上述类型的并集将是一个新的简单类型,其值空间包含
A
, 0
, C
, 2
, etc)
给出“不可能”的答案总是有风险的,但我担心构建“串联类型”的唯一方法就是通过限制来构造一个新的简单类型xs:string
与连接的正则表达式。
我认为 XML Schema 没有提供连接简单类型的通用机制的原因是,虽然连接在两个简单数据类型的词法空间上有意义,但在它们的值空间上定义不一定有意义或直接。涉及字符串和模式方面的特定用例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)