非常新的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">
非常感谢任何关于我做错的输入。