0

我有 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而不是 like开头getWalletItemBO,并且以同样的方式检查<xsd:element name=以小写字母开头paymentOptionIdnot like PaymentOptionId。*所以我尝试找到所有输入错误的元素,不适合我的条件,即在 xsd:complexType name= 中以小写字母开头,在 xsd:element name= * 中以大写字母开头

4

2 回答 2

0

不要使用name()butlocal-name()来获取没有命名空间标识符的名称。然后,拆分第一个字母,看看它是否不包含在大写字母中:

//*[not(contains('ABCDEFGHIJKLMNOPQRSTUVWXYZ', substring(local-name(.), 1, 1)))]
于 2013-06-12T09:55:03.710 回答
0

我想你想要:

//xs:complexType[matches(@name, '$\P{Lu}')]
于 2013-06-12T11:38:59.573 回答