0

test.xml(とりわけ) いくつかの MATHML を含むXML ファイルがあるとします。

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="template.xsl"?>
<equation>
    <math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
        <row>    
            <!-- Using a MATHML entity name here! -->  
            <mi>&Sum;</mi>
        </row>
    </math>
</equation>

ブラウザの XSLT エンジンを使用しtest.xmlて XHTML+MATHML に変換して表示したいと考えています。私の XSLT ファイルtemplate.xslは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/equation">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <body>
            Here is an equation:
            <xsl:copy-of select="."/>
        </body>
    </html>
</xsl:template>
</xsl:stylesheet>

ブラウザで開くtest.xmlと、エンティティ&Sum;が宣言されていないというエラーが表示されます。明らかに、∑記号を表示したいと思います。数値エンティティを使用すると&#8721;、期待どおりに機能しますが、各数学記号の数値エンティティを検索するのは面倒です。

<xsl:output>など、さまざまなドキュメントタイプを試してタグを再生しようとしましたdoctype-system="http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"が、これまでのところ運がありません。

4

1 に答える 1

1

XSLTは入力として整形式のXMLを必要とし、宣言されていないエンティティを参照するファイルは整形式ではありません。XMLドキュメントでMathMLエンティティ参照を使用する場合は、それらの定義を含むDTDを参照する必要があります。

于 2012-05-31T15:49:53.597 に答える