我有Schema Name.xsd,它是它的一部分,需要帮助在XPath中构建查询
<xsd:complexType name="GetWalletItemBO">
<xsd:sequence>
<xsd:element minOccurs="1" name="paymentOptionId">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:maxLength value="50" />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
我的基本查询就像//*[starts-with(name(),'**here I need to put my condition**')]
我必须检查xsd:complexType name
是否以大写字母GetWalletItemBO
开头而不是getWalletItemBO
,并且检查<xsd:element name=
以小写字母paymentOptionId
开头的方式相同不像PaymentOptionId
。 * 所以我尝试找到所有有不良输入的元素,不适合我的条件,这是以xsd中的小写字母开头:complexType name =,以及xsd中的大写字母:元素名称= * 。
答案 0 :(得分:0)
不要使用name()
而是local-name()
来获取没有名称空间标识符的名称。然后,拆掉第一个字母,看看它是否包含在大写字母中:
//*[not(contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', substring(local-name(.), 1, 1)))]
答案 1 :(得分:0)
我想你想要:
//xs:complexType[matches(@name, '$\P{Lu}')]