我试图选择序列中实现类型的元素名称为xs:simpleType的所有子元素。XPATH选择其元素名称为xs的子元素:simpleType
<xs:complexType name="Truck">
<xs:complexContent>
<xs:extension base="Car">
<xs:sequence>
<xs:element name="DriverName" type="Name">
...
</xs:element>
<xs:element name="Engine" type="TruckEngine">
...
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
当键入 “名称” 的模样:
<xs:simpleType name="Name">
...
</xs:simpleType>
和 “TruckEngine” 的模样:
<xs:complexType name="TruckEngine">
...
</xs:complexType>
我将如何创建XPath选择元素的DriverName?到目前为止,我有类似xs:complexType/xs:complexContent/xs:extension/xs:sequence/xs:element,但我不知道如何进一步提高我的选择。我很难搜索相关信息,因为我不确定用什么术语来选择这样的内容。我已经将我的示例修改为更通用的东西。
我还不能回答我自己的问题,但你把我们推向了正确的方向。我修改它为:xs:element [contains(@type,// xs:simpleType/@ name)] – kurtzbot 2012-07-19 23:04:15
我忘记说了,使用contains的原因是因为// xs:simpleType捕获所有simpleTypes文件的根源,因此无法直接进行比较。包含通过匹配元素列表搜索,然后将它们的名称与我们元素的类型进行比较。 – kurtzbot 2012-07-19 23:15:17
@kurtzbot - 你试过'='而不是'eq'吗? (我编了一个以上的'xs:simpleType')很高兴你的工作虽然。 – 2012-07-19 23:36:14