使用XSLT在XML文件中显示SchemaLocation

时间:2015-05-01 22:37:25

标签: xslt

非常新的XSLT,我正在尝试将xsi:schemaLocation添加到我的输出中,但是我做错了。

这是xslt代码:

    <?xml version="1.0" encoding="UTF-8"?>

    <xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xsi:schemaLocation="http://www.ems-ag.de/xmlschemas/tst/TEST.XSD http://products.tst.com/tst/TEST.XSD"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.ems-ag.de/xmlschemas/tst/TEST.XSD">

<xsl:template match="*">
    <xsl:element name="{local-name()}">
        <xsl:apply-templates select="@* | node()" />
    </xsl:element>
</xsl:template>

<xsl:template match="@*">
    <xsl:attribute name="{local-name()}">
        <xsl:value-of select="." />
    </xsl:attribute>
</xsl:template>

<xsl:template match="/">
         <xsl:copy-of select="document('')/*/@xsi:schemaLocation"/>
       <xsl:apply-templates select="@* | node()"/> 
 </xsl:template>

<xsl:template match="text() | comment() | processing-instruction()">
    <xsl:copy />
</xsl:template>

输出 - 顶级节点给我这个:

 <?xml version="1.0" encoding="UTF-8"?>
-<TEST xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ems-ag.de/xmlschemas/tst/TEST.XSD"

输出 - 但它应该给我这个:

<?xml version="1.0" encoding="UTF-8"?>
-<TEST xsi:schemaLocation="http://www.ems-ag.de/xmlschemas/tst/TEST.XSD http://products.tst.com/tst/TEST.XSD" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ems-ag.de/xmlschemas/tst/TEST.XSD">

非常感谢任何关于我做错的输入。

0 个答案:

没有答案