SaxonParserTest отсутствует SaxonXQDataSource? - PullRequest
0 голосов
/ 04 января 2019

Хотите запустить простейший возможный пример, используя saxon, и, в частности, Saxon-HE:

thufir@dur:~/NetBeansProjects/helloWorldSaxon$ 
thufir@dur:~/NetBeansProjects/helloWorldSaxon$ gradle clean run

> Task :compileJava FAILED
/home/thufir/NetBeansProjects/helloWorldSaxon/src/main/java/helloWorldSaxon/App.java:6: error: package com.saxonica.xqj does not exist
import com.saxonica.xqj.SaxonXQDataSource;
                       ^
1 error

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 0s
2 actionable tasks: 2 executed
thufir@dur:~/NetBeansProjects/helloWorldSaxon$ 

Я не думаю, что это правильное утверждение импорта, но я тожеЯ уверен, что было бы правильно.Более внимательный взгляд на образец показывает, что он использует saxonica и фактически закомментировал импорт:

//import net.sf.saxon.xqj.SaxonXQDataSource;

Чтобы повторить, хотелось бы остаться в пределах Saxon-HE.Но как?

Из файла build :

compile (group = "net.sf.saxon"            , name = "Saxon-HE"    , version = "9.9.0-2")

Придерживаясь Saxon-HE, это правильный импорт?

С каким источником данных поставляется этот сервер?

thufir@dur:~/saxon$ 
thufir@dur:~/saxon$ jar tf Saxon-HE.jar | grep data
net/sf/saxon/data/
net/sf/saxon/data/analyze-string.xsd
net/sf/saxon/data/casevariants.xml
net/sf/saxon/data/categories.xml
net/sf/saxon/data/chameleon.xsl
net/sf/saxon/data/json.xsd
net/sf/saxon/data/normalizationData.xml
net/sf/saxon/data/override.xsl
net/sf/saxon/data/unicodeBlocks.xml
net/sf/saxon/data/xml-to-json-indent.xsl
net/sf/saxon/data/xml-to-json-pkg.xsl
net/sf/saxon/data/xml-to-json.xsl
net/sf/saxon/data/xpath-functions.scm
net/sf/saxon/data/xpath-functions.xsd
net/sf/saxon/resource/MetadataResource$1.class
net/sf/saxon/resource/MetadataResource.class
thufir@dur:~/saxon$ 

Нужно ли больше компилируемых зависимостей?Если да, то какие?

1 Ответ

0 голосов
/ 06 января 2019

Класс SaxonXQDataSource находится в упаковке com.saxonica.xqj.Если вы используете Saxon-HE, то вам потребуется файл JAR saxon9-xqj.jar на пути к классам.

Причина, по которой библиотека XQJ в Saxon трактуется иначе, чем в остальной части Saxon-HE, заключается в том, чторазные.Интерфейс XQJ публикуется Oracle, и Oracle заявляет, что на реализацию распространяются условия лицензирования Oracle (некоторые люди оспаривают, что для реализации опубликованного API требуется лицензия, но это вопрос юристов).Условия лицензирования Oracle не соответствуют принятым стандартам лицензирования с открытым исходным кодом (по двум причинам: (а) они запрещают модификации, и (б) они требуют, чтобы реализации прошли все эталонные тесты).По этой причине некоторые компании-разработчики программного обеспечения, которые распространяют Saxon-HE, предпочитают исключать XQJ из дистрибутива, и для упрощения этого мы помещаем классы XQJ в отдельный файл JAR.

...