0

xsltproc←DocBook 5 エンティティ リストのいずれにも見られない単純な左矢印 ( 、つまり ←) を使用しようとすると、「エンティティ 'larr' が定義されていません'」というエラーが表示されます。動作させるには何を含める必要がありますか?

私の現在のXSLは次のとおりです。

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

<xsl:import href="/usr/share/sgml/docbook/xsl-stylesheets/html/docbook.xsl"/>

<xsl:output method="html"
            encoding="UTF-8"
            indent="no"/>
<xsl:param name="html.stylesheet" select="'main.css'"/>
<xsl:param name="generate.toc">
  book      toc,title
</xsl:param>
<xsl:param name="glossterm.auto.link" select="1"/>

</xsl:stylesheet>

...そして、docbook ファイルは単に以下で始まります:

<book xmlns:xl="http://www.w3.org/1999/xlink">

...その後、titleandchapterタグに直行します。

"larr" エンティティを取得するには、何か他のものにリンクする必要がありますか? それとも単に DocBook 5 から切り出されたものですか?

4

1 に答える 1

1

問題の原因となっているのは XSLT スタイルシートではありません ( &larr;XSLT コードで使用しているが表示されていない場合を除く)。&larr;入力 XML ドキュメントでエンティティを使用していると仮定します。

XML ファイルの先頭にエンティティ宣言を追加できますか?

<?xml version="1.0" standalone="yes" ?>    
<!DOCTYPE book [
  <!ENTITY larr "&#x2190;">
]>
<book/>

私は Docbook に詳しくありませんが、このページはそれが可能であることを示唆しているようです。

この矢印にはいくつかのバージョンがあり、異なる Unicode 文字で表されます。

于 2015-03-04T19:33:16.660 に答える