Использование XJC с XMLCatalog с использованием относительных путей

Я использую XJC, и теперь я хочу использовать XMLCataloges, который ссылается на другие каталоги. Проблема заключается в том, что он должен иметь возможность использовать относительные пути вместо абсолютных при обращении к другим каталогам.

Этот каталог помещается в project1 и должен ссылаться на файл catalog.xml, расположенный в project2.

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">

<public publicId="http://company.com/test"
    uri="src/main/resources/test.xsd" />

<nextCatalog catalog="../project2/catalog.xml" /></catalog>

Вызов XJC выглядит так:

<java fork="true" jar="${xjc-jar-file}">
    <!-- folder where the generated files should be saved -->
    <arg value="-d" />
    <arg value="${target-folder}"/>
        <arg value="-extension" />
    <!-- catalog file -->
    <arg value="-catalog" />
    <arg value="${catalog-file}" />
    <!-- current xsd file -->
    <arg value="@{xsd-file}" />
</java>

Я сделал ошибку в файле каталога, или есть ли какое-либо решение для использования такого каталога с XJC?

1 ответ

Решение

Мой веб-поиск с использованием относительных путей не был успешным.

В конце концов я написал задачу муравья, которая редактирует файлы каталога.

Подробно задача отредактирует атрибут xml:base файла каталога и вставит абсолютный путь к файлу каталога. Затем я сохраняю каталог как, например, catalog_temp.xml и получаю все узлы nextCatalog с XPath, которые будут редактироваться рекурсивно, как и первый.

После выполнения XJC я снова выполняю задачу ant, которая удаляет все отредактированные каталоги (catalog_temp.xml).

Другие вопросы по тегам