2015-08-24 138 views
-1

我们为我们的应用程序定义了一个SOAP接口。几乎任何字符串值都可以是任何Unicode字符,除了一些传统字段值,其中只有Latin-1字符集的子集被接受。XSD字符串限制到字符集

是否可以在XSD模式中定义字符串值的限制以仅包含Latin-1字符集中的字符?

回答

2

不确定

<xs:restriction base="xs:string"> 
    <xs:pattern value="(\p{IsBasicLatin}|\p{isLatin-1Supplement})*"/> 
</xs:restriction> 

可选地(为允许XML 1.0字符)

<xs:restriction base="xs:string"> 
    <xs:pattern value="[\t\r\n&#x20;-&#xff;]*"/> 
</xs:restriction> 
+0

我正在读[http://www.w3.org/TR/xsd-unicode-blocknames/] (http://www.w3.org/TR/xsd-unicode-blocknames/),我看到你已经为写作做出了贡献,所以我希望能在发布答案之前测试并发布答案;)无论如何, _BasicLatin_和_Latin1Supplement_总共256个字符(前256个Unicode字符),所以我认为' '应该是'�' – sergioFC

+1

但'�'不是合法的XML字符引用:您只能引用XML中合法的字符(并且这在XML 1.0和XML 1.1之间有所不同)。 –

+0

好吧,现在我明白了。 – sergioFC