2014-02-20 5 views
0

Я написал таблицу стилей, которая загружает вторую таблицу стилей и переопределяет несколько вещей. Проблема заключается в том, что для использования элемента xsl:import мне, похоже, нужно знать абсолютный путь к таблице стилей, которую я пытаюсь импортировать. Как я могу обойти это?Xalan-Java: Установить путь поиска

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

Я использую инструмент командной строки Xalan-Java для применения XSLT. A взглянул на руководство, но, похоже, нет никакого вида «здесь для стилей».

Я также думал о прохождении базового пути в качестве параметра XSL - но я не понимаю, как я могу засунуть, что в атрибуте xsl:import элемента href ...

Любые намеки? Конечно, я не могу быть первым человеком, когда-либо хотеть сделать это ...


В основном я пишу документы, используя DocBook. Я загрузил копию официальных таблиц стилей DocBook XSL (которые являются огромными и состоят из тысяч XSL-файлов). Для каждого документа, который я пишу, я хочу создать крошечный XSL-файл, который импортирует официальный DocBook XSL, а затем настраивает несколько настроек (размер бумаги и т. Д.).

Для этого, похоже, для жесткого кодирования пути к официальному файлу DocBook XSL в локальный XSL каждого документа. И , что означает, что если я когда-либо обновляюсь до более новой версии официальных таблиц стилей, мне нужно будет редактировать каждый пользовательский XSL, который я когда-либо писал [потому что номер версии таблицы стилей находится в пути].

Что бы я хотел , как, чтобы сделать это, это путь в скрипт, который запускает Xalan. Поэтому, если таблицы стилей когда-либо перемещаются, я могу просто отредактировать один скрипт, и все сделано. Но я не могу понять, как это сделать. Я не вижу никакого способа сказать Xalan, где искать импортированные таблицы стилей.

Даже если я использую относительные пути, у этих путей все еще есть номер версии, жестко закодированный в них. И Windows не может делать символические ссылки, поэтому ...

ответ

0

Атрибут href может быть относительным путем; пока базовый URI известен.

Если вы работаете из командной строки, базовый URI «мастер-таблицы стилей» обычно известен, поэтому это не должно быть проблемой. Я думаю, вам нужно быть более конкретным о том, что вы делаете и как оно терпит неудачу.

0

Хорошо, хорошо я нашел в решение:

Написать один XSL файл с абсолютным путем к официальной DocBook таблицы стилей жестко закодированной в нее. Имейте все импортированные таблицы стилей из этого. (Очевидно, вы можете это сделать.)

Теперь, если официальные таблицы стилей когда-либо перемещаются, мне нужно только отредактировать один файл.

(Это все еще означает, что мне нужно найти волшебную таблицу стилей. Вводя ее в папку выше, где я храню все мои документы, делает это простой относительный путь.)