【问题标题】:How to add xs:type as an attribute name in xslt如何在 xslt 中添加 xs:type 作为属性名称
【发布时间】:2017-10-12 11:18:57
【问题描述】:

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

需要的输出格式如下

<Region xs:type="tRegion"/>

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

请针对此问题提出解决方案。

【问题讨论】:

    标签: xml xslt


    【解决方案1】:

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

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

    【解决方案2】:

    输出<Region xs:type="tRegion"/>可以通过为'xs'添加如下定义得到

    xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"

    谢谢。

    【讨论】:

    • 这当然是消除错误的正确方法,但是您应该接受 Martin 的回答,因为您说 不想在这里定义命名空间是正确的。而是添加一个冒号。
    猜你喜欢
    • 2023-03-03
    • 2010-10-16
    • 1970-01-01
    • 2012-10-11
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    相关资源
    最近更新 更多