如果 XML 文件附加了模式,c# XSLT 转换不起作用?

标签 c# xslt xsd

我们有一个奇怪的问题,我们正在使用多个 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/

相关文章:

c# - 完成后再次调用简单方法

c# - 如何使用 DNN 和 C# 创建站点地图

c# - Windows 计划任务未使用 EC2 发布到 S3 存储桶

xslt - 如何在 xslt 中设置事件按钮?

java - 在 JAXB 生成中创建对象

java - 使用 maven-jaxb2-plugin 获取 boolean 变量的 Getter

c# - 如何知道 asp.net 站点是从移动设备还是从系统/笔记本电脑/机器(windows、mac 等)访问的

java - XSLT:我们可以使用 abs 值吗?

php - 使用 xslt 获取属性节点并打印不同的值

xml - 定义允许来自混合 namespace 的属性的模式