【发布时间】:2017-05-29 11:28:28
【问题描述】:
我想将验证架构 (2) 的 XML 实例转换为验证旧架构 (1) 的实例。
这 2 个架构使用不同的命名空间 URI,但这些 URI 共享相同的元素名称前缀。
唯一的解决方法是在转换之前更改输入中使用的命名空间前缀吗?还是可以将其内置到 XSLT 中?
【问题讨论】:
-
模式不定义任何前缀,它们定义目标命名空间。
-
是的,这是真的。我正在假设可以只分配一个工作前缀以在 XSLT 中使用,并期望它能够识别在实例中找到的 URI,无论实例使用什么作为前缀?
-
我需要转换的实例将使用模式中为方便而定义的前缀,并且 (1) 和 (2) 对 2 个不同的 URI 使用相同的前缀。
-
您能否发布您尝试过的 XML 输入、XML 输出和 XSLT 的最小但完整的 sn-ps?正如您所说,您有一种输入格式要转换为第二种输出格式,我不确定您为什么会看到前缀问题,您当然可以编写例如
<xsl:template match="pf:foo" xmlns:pf="http://example.com"><pf:bar xmlns:pf="http://example.org">...</pf:bar></xsl:template>
标签: xml xslt xml-namespaces