【发布时间】:2017-10-12 11:18:57
【问题描述】:
我需要像属性一样在其中插入一个带有 xs:type 的元素,同时使用 xslt 转换我的 xml 文件。
需要的输出格式如下
<Region xs:type="tRegion"/>
但在 xslt 文件中显示编译时错误“未定义命名空间前缀 'xs'”。但我不想在这里定义命名空间。而是添加一个冒号。
请针对此问题提出解决方案。
【问题讨论】:
我需要像属性一样在其中插入一个带有 xs:type 的元素,同时使用 xslt 转换我的 xml 文件。
需要的输出格式如下
<Region xs:type="tRegion"/>
但在 xslt 文件中显示编译时错误“未定义命名空间前缀 'xs'”。但我不想在这里定义命名空间。而是添加一个冒号。
请针对此问题提出解决方案。
【问题讨论】:
XSLT 适用于名称空间格式良好的 XML(用于输入和输出),并且本身就是名称空间格式正确的 XML,因此在冒号前不为前缀声明名称空间的冒号属性名称是不可能的,因为 https://www.w3.org/TR/xml-names/#ns-qualnames 授权:
前缀提供限定名称的命名空间前缀部分, 并且必须与命名空间中的命名空间 URI 引用相关联 声明
输出<Region xs:type="tRegion"/>可以通过为'xs'添加如下定义得到
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
谢谢。
【讨论】: