Java SAX 解析:此 XML 有什么问题?

发布于 2024-10-20 11:22:37 字数 1233 浏览 3 评论 0原文

我正在尝试验证 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”后面必须跟有属性规范“>”或“/>”。

如何摆脱它?

I'm trying to validate an XML file, but I get the following error:

Can not find declaration of element
'xsl:stylesheet'.

This is the 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>

Where is the mistake?

EDIT: I want to parse this XML in Java with SAX, but I get the following error:

Element type "xsl:template" must be followed by either attribute specifications, ">" or "/>".

How to get rid of it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

水溶 2024-10-27 11:22:37

假设您实际上正在尝试将 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 文档中的任何错误,因此您无需单独验证它。

Assuming you are actually trying to validate your XSL as an XML document, it looks like that website requires you to point to a schema or DTD in order to validate the XML against it. You can get a non-normative schema here: http://www.w3.org/TR/xslt20/#schema-for-xslt. Here's instructions on how to reference a schema from an XML file: http://www.ibm.com/developerworks/xml/library/x-tipsch.html

You could also check "Well-Formedness only," and check the document for well-formedness, if not actually validity.

Generally, any XSL engine will report any errors in your XSL document, so you don't need to validate it separately.

只为一人 2024-10-27 11:22:37

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

Your XSL is OK, don't worry. Just that there is no DTD/XSD for XSLs 1.0. no one bothers checking XSLT stylesheets (1.0) for validity. "Wellformedness" is enough.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文