2015-08-24 136 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