【问题标题】:Java SAX parsing: What's wrong with this XML?Java SAX 解析:这个 XML 有什么问题?
【发布时间】:2011-03-04 14:38:43
【问题描述】:

我正在尝试validate 一个 XML 文件,但我收到以下错误:

找不到元素的声明 'xsl:样式表'。

这是 XML:

<?xml version='1.0' encoding='utf-8'?>
<xsl:stylesheet version='1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl='urn:schemas-microsoft-com:xslt' exclude-result-prefixes='msxsl' xmlns:ns='http://www.ibm.com/wsla'>
      <xsl:strip-space elements='*'/>
      <xsl:output method='xml' indent='yes'/>
      <xsl:template match='@* | node()'>
            <xsl:copy>
                  <xsl:apply-templates select='@* | node()'/>
            </xsl:copy>
      </xsl:template>
      <xsl:template match="/ns:SLA/ns:ServiceDefinition/ns:WSDLSOAPOperation/ns:SLAParameter/@name[.='TotalMemoryConsumption']">
            <xsl:attribute name='{name()}'>
                  <xsl:text>MemConsumption</xsl:text>
            </xsl:attribute>
      </xsl:template>
</xsl:stylesheet>

错在哪里?

编辑:我想用 SAX 在 Java 中解析这个 XML,但我收到以下错误:

元素类型“xsl:template”必须后跟属性规范,“>”或“/>”。

如何摆脱它?

【问题讨论】:

  • 您的样式表在我这边验证正确。它被读入程序的方式一定有问题。
  • @James 你如何验证?通过 SAX?
  • 我只是将它复制并粘贴到 Oxygen XML 编辑器中,它提供了 XML 验证功能。目测 XML,它看起来也不错。
  • 但是为什么在 SAX 中会出现这个错误? ://
  • 从提供的信息中很难判断。您如何将 XML 提供给 SAX?

标签: java xml sax


【解决方案1】:

假设您实际上是在尝试将您的 XSL 验证为 XML 文档,看起来该网站需要您指向一个模式或 DTD 才能针对它验证 XML。您可以在此处获得非规范模式:http://www.w3.org/TR/xslt20/#schema-for-xslt。以下是有关如何从 XML 文件中引用架构的说明:http://www.ibm.com/developerworks/xml/library/x-tipsch.html

您还可以检查“仅格式良好”,并检查文档的格式是否正确,如果不是真的有效的话。

通常,任何 XSL 引擎都会报告您的 XSL 文档中的任何错误,因此您无需单独验证它。

【讨论】:

  • 是的。我相当确定没有真正的方法可以检查 XSL 1.0 文档的实际有效性。除了通过 XSL 处理器运行它之外,正如@James 所说,它应该可以很好地完成这项工作:) @Ivan 你可能只想检查格式是否正确。
  • v1 与 v2 的优点。我没有注意到它是 v1 样式表。
【解决方案2】:

您的 XSL 没问题,不用担心。只是 XSL 1.0 没有 DTD/XSD。没有人会费心检查 XSLT 样式表 (1.0) 的有效性。 “良心”就足够了。

【讨论】:

  • 但是解析不起作用..查看我的原始帖子,我编辑了它。
  • 它是真的在一个文件中,还是你把它粘在了一个字符串缓冲区中。您可能有一些单引号/双引号混淆或忘记转义一些字符。第二个模板看起来最有可能是罪魁祸首。如果你删除它,解析器会再次对你微笑。将Xpath表达式的引入一点一点地找到pb所在的位置。
猜你喜欢
  • 2015-08-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 2012-12-26
  • 1970-01-01
  • 2012-09-17
  • 2014-05-30
  • 1970-01-01
相关资源
最近更新 更多