如何将字母数字字段评估为部分数字和部分字母

时间:2018-04-05 15:54:16

标签: xsd xsd-1.0

我的情况是我的XML包含的长度可以是千字节或兆字节。 XML看起来像下列之一:

<size>100M</size>
<size>100K</size>

我需要确保如果输入的数据以K结尾,则数字小于2096129(并且大于0),但如果数据以M结尾,则数字必须小于2048(并且大于0) 0)。是否可以将除最后一个字符之外的所有字符都视为整数(因此我可以使用最小/最大包含标记),但仍然在最后一个字符上使用模式?

1 个答案:

答案 0 :(得分:0)

不,你不能在这里使用任何xs:decimal或它的任何子类型,因此你必须使用xs:string并且不能使用min / max excusive,因为XML Schema中没有语言特性来组成一个简单的类型作为其他简单类型的串联。

使用XSD 1.0执行此操作的唯一方法是创建一个覆盖整个数值对及其单位的模式(正则表达式)。根据你的最小/最大值,这可能看起来有点讨厌,但它应该是直截了当的。

(使用XSD 1.1,你可以使用断言)