我们有一个奇怪的问题,我们正在使用多个 XSLT 文件转换一个相当复杂的 XML 文件,这不是问题所在。
问题是,如果 XML 文件附加到模式,则转换不起作用,如果我们删除模式声明,它就会开始正常工作。
有什么问题的线索吗?
这是模式声明
<xs:schema id="play"
targetNamespace="highway"
elementFormDefault="qualified"
xmlns="highway"
xmlns:mstns="highway"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
我们只是使用以下代码链接它(然后 Visual Studio Intellisense 启动)
<helloElement name="hello" xmlns="highway">
我很感激这没什么好继续的,不确定在症状方面提供什么,如果您需要任何信息,请告诉我。
非常感谢!
最佳答案
问题不在于模式,问题在于命名空间声明 xmlns="highway"
您的样式表需要考虑到例如
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:hw="highway"
version="1.0">
<xsl:template match="hw:helloElement">
...
</xsl:template>
</xsl:stylesheet>
以此类推,在任何匹配或选择元素的地方都需要使用前缀。
关于如果 XML 文件附加了模式,c# XSLT 转换不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4615242/