存在 xsd link 覆盖 xslt

Presence of xsd link overriding xslt

我真的是 XML、XSD 或 XSLT 的新手。

我想做的是:

我完成了 XSLT 文件(除了调整颜色模式等)。 我现在遇到的问题是,在 xml 文件中有一个 link 到外部 xsd 文件 (xmlns =..)。只要此代码存在,呈现的 XML 就会缺少提取的输入 (xsl:value-of select=...)。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
<Table1 xmlns="http://www.test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

我的 xslt 代码如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <html>
  <body>
    <table border="1">  
  <tr>
    <td>
    Id of
    </td>
    <td>
    <xsl:value-of select="//idOf"/>
    </td>       
  </tr>
    </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>

我做错了什么?

谢谢!

试试(根据michael.hor257k的评论编辑)

<xsl:stylesheet version="2.0" 
xmlns:test="http://www.test.xsd"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
exclude-result-prefixes="test">

然后将 test: 添加到您访问 xml 结构的所有内容,例如<xsl:value-of select="//test:idOf"/>

xmlns="http://www.test.xsd" 不是 只是 XML 中的 "Link" 但它声明了默认命名空间- 在此处使用 xsd 作为文件扩展名可能是一种品味,但如果不使用它就无法访问 XML 中的数据。