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

独立于前导/尾随空格的XSD字符串模式

  •  1
  • AndiDog  · 技术社区  · 14 年前

    我有一个XSD简单类型,应该与UUID匹配:

    <simpleType name="UuidT">
        <restriction base="string">
            <pattern value="[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}" />
        </restriction>
    </simpleType>
    

    它正确匹配以下内容:

    <!-- valid -->
    <Uuid>12345678-1234-5678-9012-123456789012</Uuid>
    

    但它不匹配包含多余空白的内容:

    <!-- not valid -->
    <Uuid>
        2de25a81-b117-4b2a-b910-50f0878884f7
    </Uuid>
    

    当然,我可以补充一下 \s* 对于regex的两边,但在xsd中没有更简单的解决方案吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   John Saunders    14 年前

    尝试 restriction base="xs:token" .

        2
  •  2
  •   Kobi    14 年前

    根据 this ,您应该定义

    <xs:whiteSpace value="collapse"/>
    

    (可能没有命名空间)