我有一个附加架构的XML,有没有办法识别元素是否是附加架构中定义的复杂类型?
例如:
模式
<element name="Cosmin" type="CosminType" />
<element name="Cosmin2" type="CosminType" />
XML
<parent>
<cosmin>bla</cosmin>
</parent>
我想制作一个XPath
来识别CosminType
类型的所有元素,无论是Cosmin
还是Cosmin2
。
我想知道是否有类似的东西:
//parent/*[@type="CosminType"]
我尝试了@xsi:type
但它不起作用。如果没有任何效果,我会尝试在CosminType
内找到一些独特的内容并获取parent
,在我的情况下会Cosmin
和Cosmin2
。但这不是一个很好的解决方案。
答案 0 :(得分:0)
首先你需要元素名称,因为需要搜索这个元素名称:
/parent/cosmin/name()
这个应该用于搜索附加的XSD,如:
document('attached xsd')//element[@name=/parent/cosmin/name()]/@type
希望这有帮助