如何在xslt中添加xs:type作为属性名称

时间:2017-10-12 11:18:58

标签: xml xslt

我需要在xs:type中插入一个像属性一样的元素,同时使用xslt转换我的xml文件。

所需的输出采用以下格式

  

<Region xs:type="tRegion"/>

但是在xslt文件中它显示编译时错误&#34;命名空间前缀&#39; xs&#39;未定义&#34; 。但我不想在这里定义命名空间。而是添加一个冒号。

请为此问题提出解决方案。

2 个答案:

答案 0 :(得分:2)

XSLT适用于命名空间格式良好的XML(用于输入和输出),并且本身就是格式良好的XML,因此具有带冒号的属性名称,而不能在冒号之前声明前缀的命名空间,因为 https://www.w3.org/TR/xml-names/#ns-qualnames要求:

  

前缀提供限定名称的名称空间前缀部分,   并且必须与命名空间中的命名空间URI引用相关联   声明

答案 1 :(得分:0)

可以通过为'xs'

添加以下定义来获得输出<Region xs:type="tRegion"/>
  

的xmlns:XS = “http://www.w3.org/2001/XMLSchema-instance”

感谢。