Мне трудно заставить XQuery работать. Я скачал Saxon-HE 9.2. Кажется, он хочет работать только с XSLT.
Когда я печатаю:
java -jar saxon9he.jar
Я получаю информацию об использовании XSLT. Когда я использую синтаксис команды для XQuery, он не распознает параметры (например, -q) и предоставляет информацию об использовании XSLT.
Вот некоторые взаимодействия командной строки:
>java -jar saxon9he.jar
No source file name
Saxon-HE 9.2.0.6J from Saxonica
Usage: see http://www.saxonica.com/documentation/using-xsl/commandline.html
Options:
-a Use xml-stylesheet PI, not -xsl argument
-c:filename Use compiled stylesheet from file
-config:filename Use configuration file
-cr:classname Use collection URI resolver class
-dtd:on|off Validate using DTD
-expand:on|off Expand defaults defined in schema/DTD
-explain[:filename] Display compiled expression tree
-ext:on|off Allow|Disallow external Java functions
-im:modename Initial mode
-ief:class;class;... List of integrated extension functions
-it:template Initial template
-l:on|off Line numbering for source document
-m:classname Use message receiver class
-now:dateTime Set currentDateTime
-o:filename Output file or directory
-opt:0..10 Set optimization level (0=none, 10=max)
-or:classname Use OutputURIResolver class
-outval:recover|fatal Handling of validation errors on result document
-p:on|off Recognize URI query parameters
-r:classname Use URIResolver class
-repeat:N Repeat N times for performance measurement
-s:filename Initial source document
-sa Use schema-aware processing
-strip:all|none|ignorable Strip whitespace text nodes
-t Display version and timing information
-T[:classname] Use TraceListener class
-TJ Trace calls to external Java functions
-tree:tiny|linked Select tree model
-traceout:file|#null Destination for fn:trace() output
-u Names are URLs not filenames
-val:strict|lax Validate using schema
-versionmsg:on|off Warn when using XSLT 1.0 stylesheet
-warnings:silent|recover|fatal Handling of recoverable errors
-x:classname Use specified SAX parser for source file
-xi:on|off Expand XInclude on all documents
-xmlversion:1.0|1.1 Version of XML to be handled
-xsd:file;file.. Additional schema documents to be loaded
-xsdversion:1.0|1.1 Version of XML Schema to be used
-xsiloc:on|off Take note of xsi:schemaLocation
-xsl:filename Stylesheet file
-y:classname Use specified SAX parser for stylesheet
--feature:value Set configuration feature (see FeatureKeys)
-? Display this message
param=value Set stylesheet string parameter
+param=filename Set stylesheet document parameter
?param=expression Set stylesheet parameter using XPath
!option=value Set serialization option
>java -jar saxon9he.jar -q:"..\w3xQueryTut.xq"
Unknown option -q:..\w3xQueryTut.xq
Saxon-HE 9.2.0.6J from Saxonica
Usage: see http://www.saxonica.com/documentation/using-xsl/commandline.html
Options:
-a Use xml-stylesheet PI, not -xsl argument
// etc...
>java net.sf.saxon.Query -q:"..\w3xQueryTut.xq"
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/saxon/Query
Caused by: java.lang.ClassNotFoundException: net.sf.saxon.Query
// etc...
Could not find the main class: net.sf.saxon.Query. Program will exit.
Я, вероятно, совершаю глупую ошибку. Вы знаете, что это может быть?
ОБНОВЛЕНИЕ 1 Эта команда не работает:
>java -jar saxon9he.jar net.sf.saxon.Query q:"..\w3xQueryTut.xq"
Source file net.sf.saxon.Query does not exist
ОБНОВЛЕНИЕ 2 Эта команда работает лучше:
>dir
03/28/2010 16:07 <DIR> .
03/28/2010 16:07 <DIR> ..
03/27/2010 13:37 849 books.xml
03/27/2010 13:32 <DIR> doc
03/27/2010 13:32 <DIR> notices
03/27/2010 13:32 5,473,874 saxon9he.jar
03/27/2010 13:38 37 w3xQueryTut.xq
>java -cp saxon9he.jar net.sf.saxon.Query q:"w3xQueryTut.xq"
java.io.FileNotFoundException: q:w3xQueryTut.xq (The system cannot find the path
specified)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at net.sf.saxon.Query.compileQuery(Query.java:885)
at net.sf.saxon.Query.doQuery(Query.java:183)
at net.sf.saxon.Query.main(Query.java:89)
Fatal error during query: java.io.FileNotFoundException: q:w3xQueryTut.xq (The s
ystem cannot find the path specified)
w3xQueryTut.xq:
doc("books.xml")/bookstore/book/title
books.xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
<book category="CHILDREN">
<title lang="en">Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title lang="en">XQuery Kick Start</title>
<author>James McGovern</author>
<author>Per Bothner</author>
<author>Kurt Cagle</author>
<author>James Linn</author>
<author>Vaidyanathan Nagarajan</author>
<year>2003</year>
<price>49.99</price>
</book>
<book category="WEB">
<title lang="en">Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>