2016-05-20 1 views
1

私は次のようサクソンCLIを使用してMavenのPOMファイルのバージョンを読み込むしようとしている:Saxon CLIでXML名前空間を定義して、その名前空間にあるものをクエリできるようにする方法はありますか?

java -cp Saxon-HE-9.7.0-4.jar net.sf.saxon.Query -s:./pom.xml -qs:/project/version \!method=text 

ファイルpom.xmlは次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>foo</groupId> 
    <artifactId>bar</artifactId> 
    <packaging>pom</packaging> 
    <name>baz</name> 
    <version>0.0.1-SNAPSHOT</version> 
</project> 

ので、私はエラーを取得しています私はデフォルトの名前空間を指定しています。その名前空間宣言(xmlns="http://maven.apache.org/POM/4.0.0")を省略すると、クエリが機能します。私はSaxonのドキュメントから、ネームスペースハンドラを定義するような何かをする必要があることを知っていますが、私は突然XML名前空間esotericaに潜んでいます。誰でもSaxonのコマンドラインで簡単なオプションを使ってこれを行う方法を知っていますか?

答えて

2

コマンドラインから-qs:/*:project/*:versionを使用する傾向があります。これは、任意の名前空間で動作するためです。

そうしないと、https://www.w3.org/TR/xquery-30/#id-default-namespaceを使用する必要がありますが、おそらく引用符とコマンドラインインタプリタを使用すると苦労します。

+0

Perfecto、@Martin、ちょうど私が必要なもの! – nclark

関連する問題