我有一個XSD嵌入到一個XML這樣的:
不區分大小寫鍵
<Replacements>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Replacements">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" ref="Replace" />
</xs:sequence>
</xs:complexType>
<xs:key name="ReplaceKey">
<xs:selector xpath="./Replace"/>
<xs:field xpath="@old"/>
</xs:key>
</xs:element>
<xs:element name="Replace">
<xs:complexType>
<xs:attribute name="old" type="AnythingButLowerCase" use="required" />
<xs:attribute name="new" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:simpleType name="AnythingButLowerCase">
<xs:restriction base="xs:string">
<xs:pattern value="[^a-z]+"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
<Replace old="A1020____9" new="A1020"/>
<Replace old="a1020____9" new="A1020"/>
</Replacements>
我使用的xs:關鍵定義的「老」替換元素屬性的唯一鍵。
我的問題是我想這個密鑰是不區分大小寫的。
我看了這麼多文件,說明我可以使用XSD功能,如大寫或轉化爲解決這個問題,但如果我喜歡寫東西
<xs:field xpath="upper-case(@old)"/>
VS2010給了我這樣一個警告:
'upper-case(@old)' is an invalid XPath for selector or field.
我做錯了什麼?
謝謝:)
我使用大寫,它只是在這裏打錯輸入。但沒有運氣...... – Achilles