2016-05-20 6 views
1

Ich versuche, die Version eines Maven POM-Datei wie folgt mit der Sächsischen CLI zu lesen:Wie definiere ich den XML-Namespace in der CLI von Saxon so, dass ich Dinge in diesem Namespace abfragen kann?

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

Die Datei pom.xml sieht wie folgt aus:

<?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> 

Ich erhalte einen Fehler, da Ich gebe einen Standardnamespace an. Wenn ich diese Namespacedeklaration (xmlns="http://maven.apache.org/POM/4.0.0") weglasse, funktioniert die Abfrage. Ich entnehme der sächsischen Dokumentation, dass ich etwas wie einen Namespace-Handler definieren muss, aber ich merke, dass ich plötzlich in den XML-Namensraum esoterica eintauche. Wer weiß das mit einer einfachen Option an der sächsischen Kommandozeile?

Antwort

2

Ich würde geneigt sein, -qs:/*:project/*:version von der Befehlszeile zu verwenden, wie das mit jedem Namespace funktioniert.

Andernfalls müssten Sie https://www.w3.org/TR/xquery-30/#id-default-namespace verwenden, aber es ist wahrscheinlich ein Schmerz, mit Anführungszeichen und dem Befehlszeileninterpreter.

+0

Perfecto, @Martin, genau das, was ich brauchte! – nclark

Verwandte Themen