Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一种情况,我的 XML 将包含可能以千字节或兆字节为单位的长度。XML 将如下所示:
<size>100M</size> <size>100K</size>
我需要确保如果输入的数据以 K 结尾,则数字小于 2096129(且大于 0),但如果数据以 M 结尾,则数字需要小于 2048(且大于 0)。是否可以将除最后一个字符之外的所有内容都视为整数(因此我可以使用包含 min/max 的标签),但仍然在最后一个字符上使用模式?
不,您不能在此处使用任何 xs:decimal 或其任何子类型,因此您必须使用 xs:string 并且不能使用 min/max excusive,因为 XML Schema 中没有语言功能可以将简单类型组合为串联其他简单类型。
使用 XSD 1.0 执行此操作的唯一方法是创建一个覆盖整对数值及其单位的模式(正则表达式)。根据您的最小/最大值,这可能看起来有点讨厌,但应该很简单。
(使用 XSD 1.1 你可以使用断言)