代码之家  ›  专栏  ›  技术社区  ›  SaggingRufus

如何将字母数字字段计算为部分数字和部分字母

  •  1
  • SaggingRufus  · 技术社区  · 7 年前

    我的XML包含的长度可能是千字节或兆字节。XML将如下所示:

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Fabian    7 年前

    不可以,这里不能使用任何xs:decimal或其任何子类型,因此必须使用xs:string,不能使用min/max excusive,因为XML模式中没有语言特性来将简单类型组合为其他简单类型的串联。

    使用XSD 1.0实现这一点的唯一方法是创建一个覆盖整对数值及其单位的模式(regex)。根据您的最小/最大值,这可能看起来有点糟糕,但应该很简单。

    (对于XSD 1.1,您可以使用断言)