2015-03-04 8 views
0

xsltproc жалуется, что «Entity 'larr' not defined '", когда я пытаюсь использовать обычную левую стрелку (←, то есть ←), которую я не вижу ни в одном из Списки объектов DocBook 5. Что мне нужно включить, чтобы заставить его работать?«Объект« larr »не определен» в DocBook 5

Мой текущий 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"> 

... после чего я иду прямо в title и chapter тегов.

Нужно ли мне связываться с чем-то другим, чтобы получить объект «larr» или просто вырезать из DocBook 5?

ответ

1

Это не та таблица стилей XSLT, которая вызывает вашу проблему (за исключением случаев, когда вы использовали &larr; в коде XSLT, но не отображали ее). Я предполагаю, что вы используете объект &larr; во входном XML-документе.

Можете ли вы добавить декларацию объекта в верхней части вашего XML-файла?

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

Я не знаком с Docbook, но this page, кажется, предполагает, что это возможно.

Существует несколько версий этой стрелки, представленных different Unicode characters.

+0

ОК, поэтому он не является частью какой-либо стандартной библиотеки сущностей, как будто это было в предыдущих версиях DocBook? Между тем, по крайней мере, +1, потому что это делает ошибку синтаксического анализа. – Kev