在XSD中允许除#和$之外的所有字符

时间:2018-12-23 12:17:10

标签: regex xsd special-characters

我们要求允许XSD元素中除#,$和空格之外的所有字符(包括特殊字符)。

我尝试使用[^$#\s]*的正则表达式,但是没有用。因为我不知道,您能帮忙解决一下问题吗?

1 个答案:

答案 0 :(得分:1)

我在XSD中尝试了您的正则表达式,它可以按预期工作。

<?xml version="1.0" encoding="utf-16"?>
<xs:schema xmlns="http://Scratch.SO53903548" targetNamespace="http://Scratch.SO53903548" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="SpecialString2">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <xs:pattern value="[^$#\s]*" />
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

将很高兴地验证以下内容,但在$,#或空格处失败

<ns0:Root xmlns:ns0="http://Scratch.SO53903548">
 <SpecialString2>thequickbrownfoxjumpedoverthelazydog@THEQUICKBROWNFOXJUMPEDOVERTHELAZYDOG!~`@%^&amp;*()-_+=</SpecialString2>
</ns0:Root>