Использование определенной версии Saxon в Orbeon

Можно ли использовать определенную версию Saxon в Orbeon, то есть обойти встроенную версию и использовать Saxon-HE или Saxon-EE? Как мне это сделать?

Есть несколько старых сообщений на форуме от 2010 года, предполагающих, что это возможно, но ссылки внутри них теперь мертвы.


person mshall    schedule 03.04.2020    source источник
comment
Для XSLT-преобразований или процессора XPath, используемого XForms?   -  person ebruchez    schedule 03.04.2020
comment
Для XSLT-преобразований. Приношу свои извинения, более широкий сценарий таков: на самом деле я пытаюсь выяснить, возможно ли обновить старую версию Orbeon и внедрить конкретную версию Saxon — приложение использует конвейеры XML (xpl), которые больше не разрабатываются с что я понимаю.   -  person mshall    schedule 04.04.2020


Ответы (1)


Это возможно только для преобразований XSLT, хотя на данный момент это не документировано и не поощряется.

В WEB-INF/resources/config/processors-local.xml установите:

<processors xmlns:oxf="http://www.orbeon.com/oxf/processors">

    <processor name="oxf:my-saxon">
        <instantiation name="oxf:generic-xslt-2.0">
            <input name="transformer">
                <config>
                    <class>net.sf.saxon.TransformerFactoryImpl</class>
                </config>
            </input>
            <input name="attributes">
                <attributes xmlns:xs="http://www.w3.org/2001/XMLSchema">
                    <!-- By default, prevent usage of external functions for security purposes -->
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/allow-external-functions" value="false"/>
                    <!--
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/trace-external-functions" value="false"/>
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/timing" value="false"/>
                    <attribute as="xs:integer" name="http://saxon.sf.net/feature/treeModel" value="STANDARD_TREE = 0 / TINY_TREE = 1"/>
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/linenumbering" value="false"/>
                    <attribute as="xs:integer" name="http://saxon.sf.net/feature/recoveryPolicy" value="RECOVER_SILENTLY = 0 / RECOVER_WITH_WARNINGS = 1 / DO_NOT_RECOVER = 2"/>
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/validation" value="false"/>
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/schema-validation" value="false"/>
                    <attribute as="xs:boolean" name="http://saxon.sf.net/feature/validation-warnings" value="false"/>
                    -->
                </attributes>
            </input>
        </instantiation>
    </processor>

</processors>

Также поместите банку Saxon JAR в WEB-INF/lib, конечно.

Затем при использовании процессора вы должны использовать oxf:my-saxon (но выбрать лучшее имя).

person ebruchez    schedule 06.04.2020