是否可以检查元素ComplexType?
我有这个(简化):
complexType Record
complexType Customer extension of Record
complexType Person extension of Record
<xsl:template match="/">
<records>
<xsl:apply-templates />
</records>
</xsl:template>
<xsl:template match="!!! TYPECHECK FOR RECORD !!!" name="Record">
<record><xsl:value-of select="." /></record>
</xsl:template>
是否可以检查elementstype incl。传承?
我不知道元素名称只是它们是Record的子类型。
schema 1:
complexType name="Customer"
extension base="Record"
element name="customers"
element name="customer" type="Customer"
schema 2:
complexType name="Person"
extension base="Record"
element name="persons"
element name="person" type="Person"
schema ?:
complexType name="UnknownType"
extension base="Record"
element name="unknowns"
element name="unknown" type="UnknownType"
xml 1:
<customers>
<customer />
<customer />
</customers>
xml 2:
<persons>
<person />
<person />
</persons>
xml ?:
<?s>
<? />
<? />
</?s>
xml输入是自定义的,所以我必须匹配类型(我认为)
答案 0 :(得分:1)
在XPath 2.0中(这意味着XSLT 2.0)可以使用instance-of
运算符:
. instance-of element(*, my:Record)
答案 1 :(得分:0)
我不确定你的意思。
不同的类型具有不同的标记名称,在xslt中,您应该查看那些以确定节点的类型。
确保节点确实具有逻辑规定的结构不是xslt任务。您应该在将模式传递给xslt处理器之前根据模式验证文档以实现此目的。
修改强>
我仍然不确定,但似乎我的this question可能会有所帮助。