xml - 创建 xmlns :xsi namespace and attribute

标签 xml xslt xml-namespaces

我想创建以下元素:

<exercises xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="mySchema.xsd">

如果我使用这样的东西:

<xsl:element name="excercises">
<xsl:attribute name="xmlns:xsi" namespace="http://www.w3.org/2001/XMLSchema-instance"/>

然后它创建这样的东西:

<excercises xp_0:xsi="" xmlns:xp_0="http://www.w3.org/2001/XMLSchema-instance">

这看起来不像我想要的...

最佳答案

请尝试以下操作:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="@* | node()">
        <xsl:apply-templates select="xml"></xsl:apply-templates>
    </xsl:template>

    <xsl:template match="xml">
        <xsl:element name="exercises">
            <xsl:attribute name="xsi:noNamespaceSchemaLocation">mySchema.xsd</xsl:attribute>
            some value
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>

关键问题是在声明中声明 xsi 命名空间。

我刚刚编写了模板匹配只是为了测试。

关于xml - 创建 xmlns :xsi namespace and attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/424148/

相关文章:

android - 找不到与给定名称匹配的资源(在 'colorAccent' 处,值为 '@color/Accent' )

html - 在 HTML5 时代使用客户端 XSLT 转换

xml - xslt fn :replace not working as expected

javascript - 加载 xsl 时出错 "invalid xpath expression"

javascript - 浏览器自定义命名空间元素处理器

xml - 整洁的标签后没有换行符

C# LINQ xml解析使用 "PreviousNode"

c# - 将 XElement 添加到特定位置的另一个 XElement

wpf - 如何在 XAML 中添加 EventToCommand

python - lxml 中 cssselect 的 XHTML 命名空间问题