使用XSLT将命名空间和schemaLocation添加到特定节点

时间:2017-03-30 17:19:20

标签: xml xslt transformation

我有这个输入xml:

<root>
<someElement>
    <otherNode>blabla</otherNode>
</someElement>
</root>

我想要输出xml:

<root xmlns="http://www.blabla.com/foo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<someElement xmlns="http://www.blabla.com/foo"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.blabla.com/foo/some.xsd">
    <otherNode>blabla</otherNode>
</someElement>
</root>

我可以在一个XSLT中执行此操作,还是需要两个步骤才能执行此操作?我已经在根节点上获取了命名空间但是我不能放置辅助节点的属性。

提前致谢。

塞尔吉奥

1 个答案:

答案 0 :(得分:1)

所需输出中someElement元素上的两个名称空间声明是多余的,因为它们已存在于root元素上。无法强制XSLT处理器输出冗余的名称空间声明。