Если вы используете Saxon 9 внутри oXygen, то я думаю, что одним из вариантов использования пакетов является создание и использование файла конфигурации Saxon (oXygen поддерживает создание этого типа файла с помощью нового файла -> конфигурации Saxon, где у вас есть возможность открыть раздел [ xsltPackages], где вы можете связать name
пакета с sourceLocation
или exportLocation
).
Затем в сценарии преобразования в расширенных параметрах Saxon вы можете указать файл конфигурации Saxon для использования, и таким образом Saxon будет знать, как найти любой пакет, который ваш основной модуль использует с xsl:use-package
(https://www.w3.org/TR/xslt-30/#element-use-package), поскольку он может связать указанный там URI/имя с расположением пакета.
Это немного сложная настройка, возможно, добавьте тег для oXygen, чтобы их ребята из службы поддержки увидели ваш вопрос и могли предложить вам дополнительные или более простые варианты.
Пример раздела из файла конфигурации Saxon для использования пакета непосредственно из набора тестов XSLT 3:
<xsltPackages>
<package name="http://example.com/csv-parser" version="1.0"
sourceLocation="https://github.com/w3c/xslt30-test/raw/master/tests/decl/package/package-100.xsl"/>
</xsltPackages>
конечно, вы можете адаптировать исходное местоположение, если у вас есть локальный файл, и вам нужно адаптировать имя, если вы сделали это, как предполагает ваш вопрос.
Код XSLT для использования этого пакета можно просмотреть в Интернете по адресу https://github.com/w3c/xslt30-test/blob/master/tests/decl/package/package-100a.xsl (или исполняемый файл/загружаемый по адресу https://github.com/w3c/xslt30-test/raw/master/tests/decl/package/package-100a.xsl) и
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:csv="http://example.com/csv"
exclude-result-prefixes="xs csv" version="3.0">
<xsl:output indent="yes"/>
<!-- example input "file" -->
<xsl:variable name="input" as="xs:string"
>name,id,postal code
"Abel Braaksma",34291,1210 KA
"Anders Berglund",473892,9843 ZD</xsl:variable>
<!-- entry point -->
<xsl:template name="xsl:initial-template">
<xsl:copy-of select="csv:parse($input)"/>
</xsl:template>
<xsl:use-package name="http://example.com/csv-parser" package-version="*"/>
</xsl:stylesheet>
Таким образом, вы можете запустить сценарий преобразования в oXygen с кодом XSLT, связанным непосредственно с https://github.com/w3c/xslt30-test/raw/master/tests/decl/package/package-100a.xsl. и специальные настройки Saxon 9 с использованием конфигурации файл с вышеуказанным разделом.
person
Martin Honnen
schedule
13.08.2019
-lib
в командной строке или в файле конфигурации. - person Martin Honnen   schedule 13.08.2019