如何从XSD中为某些元素名称派生可能的XPath表达式?

时间:2013-06-03 08:42:09

标签: algorithm xslt xpath xsd

我现在正在努力自动生成导致某种类型的XSD架构的XPath。

在这个例子中,我想让XPath导致“firstName”和“lastName”,这意味着:

root / Friend / firstName,root / Friend / lastName,root / TenthGrader / firstName,root / tenthGrader / lastName,root / complexPerson / oldSelf / firstName,root / complexPerson / oldSelf / lastName

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="root">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="Friend" type="Student"/>
            <xs:element name="TenthGrader">
                <xs:complexType>
                    <xs:complexContent>
                        <xs:extension base="Student">
                            <xs:element name="Sexyteacher"/>
                        </xs:extension>
                    </xs:complexContent>
                </xs:complexType>
            </xs:element>
            <xs:element ref="complicatedPerson"/>
            <xs:element name="IdoNothing"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element name="complicatedPerson" type="Person"/>

<xs:complexType name="Person">
    <xs:sequence>
        <xs:element name="oldSelf" type="Student"/>
        <xs:element name="Age" type="xs:int"/>
    </xs:sequence>
</xs:complexType>

<xs:complexType name="Student">
    <xs:sequence>
        <xs:element name="firstName"/>
        <xs:element name="lastName"/>
    </xs:sequence>
</xs:complexType>

</xs:schema>

这已让我头疼。

有没有任何已知方法可以做到这一点?

非常感谢你!

0 个答案:

没有答案