Apache FOP: разрешение для локальной установки docbook - PullRequest
1 голос
/ 11 февраля 2011

Мне нужно настроить Apache FOP так, чтобы он использовал мои локальные docbook dtd-файлы и т. Д. Я перепробовал практически все: от записи файла каталога до установки apache xml resolver и т. Д.

Вот файл каталога, который я написал.Я также установил для этого файла свойство xml.catalog.files и создал экземпляр преобразователя каталога Apache, который FopFactory использует в качестве URIResolver.Но дурак все равно получает все из сети.

<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/>
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
<group  prefer="public"  xml:base="file:///Users/raichoo/">
  <public publicId="-//OASIS//DTD DocBook XML V4.5//EN" uri="docbook/docbookx.dtd" />
  <public publicId="-//OASIS//DTD DocBook XML V4.1.2//EN" uri="docbook/docbookx.dtd" />
  <system systemId="http://www.oasis-open.org/docbook/xml/4.5/" uri="docbook/" />
  <rewriteSystem systemIdStartString="http://www.oasis-open.org/docbook/xml/4.5/" rewritePrefix="docbook/"/>
</group>                                                                                                                      

</catalog>

Есть идеи, что не так?

С уважением, raichoo

Ответы [ 3 ]

1 голос
/ 12 февраля 2011

Я думаю, что проблема в объявлении DOCTYPE в вашем каталоге:

  1. Синтаксис неправильный: он заканчивается на /> вместо >, а заключительная кавычка отсутствует.

  2. С фиксированным пунктом 1 распознаватель пытается извлечь DTD из http://www.oasis-open.org/committees/entity. В этом месте нет DTD, и распознаватель сдается.

Я провел несколько тестов, и когда я просто удалил всю строку <!DOCTYPE ..> из файла каталога, все заработало как положено.

0 голосов
/ 26 апреля 2011

Я использую это определение элемента doctype в моем файле catalog.xml:

<?xml version="1.0"?>
<!DOCTYPE catalog PUBLIC "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN" "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
 ...
</catalog>
0 голосов
/ 24 февраля 2011

Я решил проблему, просто удалив DOCTYPE из файла для преобразования. Не совсем симпатичное решение, но я не смог убедить FOP разрешить URI.

С уважением, raichoo

...