0

Mac OSX で Cocoon を Apache Tomcat 7.0.42 で実行しています。Saxon から非常に奇妙なエラーが頻繁に発生します。XML に最上位のテキスト ノードがあると表示されます。まず、出力 xml を意味するのか、xsl xml を意味するのかわかりません。第二に、どちらもトップレベルのテキスト ノードを持っていないと思います。

スタック トレースからのエラー メッセージは次のとおりです。

net.sf.saxon.trans.XPathException: 「standalone」または「doctype-system」が指定されている場合、ドキュメントは整形式でなければなりません。ただし、このドキュメントには最上位のテキスト ノード net.sf.saxon.serialize.XMLEmitter.characters(XMLEmitter.java:574) net.sf.saxon.event.RecomingContentHandler.flush(RecomingContentHandler.java:543) が含まれています。

<...長いスタック トレース...>

org.apache.cocoon.servletservice.DispatcherServlet.service(DispatcherServlet.java:106) javax.servlet.http.HttpServlet.service(HttpServlet.java:728) org.apache.cocoon.servlet.multipart.MultipartFilter.doFilter(MultipartFilter.ジャワ:131)

これは、common.xsl をインポートする私の departments_list.xsl です。

<?xml version="1.0"?>
<xsl:stylesheet version="2.0"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:import href="common.xsl" />


    <xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" indent="yes" />

    <xsl:template match="/">
        <html lang="en">
            <body>
                <xsl:call-template name="header" />
                <xsl:call-template name="footer" />
            </body>
        </html>
    </xsl:template>

</xsl:stylesheet>

これが私のcommon.xslです:

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns="http://www.w3.org/1999/xhtml">

<xsl:template name="header">
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <head>
        <title> 
        <!-- static for now. Can use parameters though. -->
    Harvard University FAS Course Catalog
        </title>
        <xsl:call-template name="css" />
        <xsl:call-template name="js" />
    </head>
</xsl:template>

<xsl:template name="footer">
    <div id="footer">
        <hr />
        <ul>
            <li>Web Development with XML</li>
            <li>Bret Fontecchio</li>
            <li>Fall 2013</li>
        </ul>
    </div>
</xsl:template>

<xsl:template name="css">
    <style type="text/css">
        <!-- CSS Rules -->
    </style>
</xsl:template>

<xsl:template name="js">
    <!-- use this template to add js
    <script type="text/javascript" src="foobar.js"></script>
-->
</xsl:template>

</xsl:stylesheet>
4

1 に答える 1