Я написал таблицу стилей, которая загружает вторую таблицу стилей и переопределяет несколько вещей. Проблема в том, что для использования элемента xsl:import
мне нужно знать абсолютный путь к таблице стилей, которую я пытаюсь импортировать. Как я могу обойти это?
В идеале я не хочу указывать абсолютный путь в таблице стилей. Я хочу передать его в командной строке. Таким образом, если базовая таблица стилей перемещается, мне не нужно редактировать все мои таблицы стилей.
Я использую инструмент командной строки Xalan-Java для применения XSLT. A просмотрел руководство, но, похоже, там нет какой-либо опции типа «посмотрите здесь для таблиц стилей».
Я также думал о передаче базового пути в качестве параметра XSL, но я не понимаю, как я могу засунуть это в атрибут href
элемента xsl:import
...
Любые подсказки? Конечно, я не могу быть первым, кто захочет это сделать...
В основном я пишу документы с помощью DocBook. Я скачал копию официальных таблиц стилей DocBook XSL (которые огромны и состоят из тысяч XSL-файлов). Для каждого документа, который я пишу, я хочу создать крошечный файл XSL, который импортирует официальный XSL DocBook, а затем настраивает несколько параметров (размер бумаги и т. д.).
Похоже, для этого мне придется жестко закодировать путь к официальному XSL-файлу DocBook в локальный XSL каждого документа. И это означает, что если я когда-нибудь обновлю официальные таблицы стилей до более новой версии, мне придется редактировать каждый пользовательский XSL, который я когда-либо писал [потому что номер версии таблицы стилей находится в пути] .
Что бы я хотел сделать, так это жестко закодировать этот путь в сценарии, запускающем Xalan. Так что, если таблицы стилей когда-нибудь переместятся, я могу просто отредактировать один скрипт, и все готово. Но я не могу понять, как это сделать. Я не вижу способа сообщить Ксалану, где искать импортированные таблицы стилей.
Даже если я использую относительные пути, в этих путях все равно жестко запрограммирован номер версии. И Windows не может делать символические ссылки, так что...