2015-08-28 24 views
1

有人知道爲什麼以下方法無效嗎?該XSD是使用Xerces驗證包含單引號的XSD 1.1聲明測試

<xs:element name="myElement"> 
    <xs:complexType> 
    <xs:complexContent> 
     <xs:extension base="myElementType"> 
     <xs:assert test="firstname = 'George' and lastName = 'Mc&apos;Falrland'" /> 
     </xs:extension> 
    </xs:complexContent> 
    </xs:complexType> 
</xs:element> 

當我使用單引號&apos;實體錯誤命中...

感謝

回答

2

你的問題與XPath字符串文字,如XSD 1.1使用XPath 2.0你可以通過編寫定界符兩次逃脫一個字符串內的撇號或引號,所以你可以使用:

<xs:assert test="firstname = 'George' and lastName = 'Mc''Falrland'" /> 

欲瞭解更多信息喲u可以使用XPath 2.0 specs, section Literals

如果文字是由撇號界定,內字面兩個相鄰的撇號 被解釋爲單個撇號。同樣, 如果文字是用引號分隔的,則文字內的兩個相鄰引號 標記會被解釋爲一個引號。

+0

謝謝。這比我所做的要好很多 「firstname = " George " and lastName ='Mc ' Falrland'」 – unicorn

+0

不客氣,如果這很有用並且解決了你的問題,你必須接受答案(勾選勾號,已經完成)並提出答案點擊上面的灰色三角,提前感謝。 – sergioFC