2016-12-26 2 views
1

Laut Saxons documentation,Saxon-HE 9.7: „keine Basis-URI ist verfügbar“ Fehler, wenn sie versucht, Abfrage-String von bash

java net.sf.saxon.Query -qs:doc('a.xml')//p 1 selects elements within the file a.xml in the current directory.

Ich versuche zu tun, nur, dass von einer Bash-Skript auszuführen:

java net.sf.saxon.Query -qs:doc"('myFile.xml')"/rootElt/@myAtt 

Allerdings bekomme ich folgende Fehlermeldung: XTDE1162: Relative URI passed to document() function (myFile.xml); but no base URI is available

nach dem docs, sollte dies nicht passieren:

The static base URI (used when calling the doc() function) is the current directory.

Ich habe versucht, eine absolute URI verwenden, aber überraschenderweise bekomme ich immer noch genau die gleiche Fehlermeldung.

Darf ich Hilfe verwenden?

Antwort

2

Gelöst. Wenn eine Abfrage String übergeben, gibt es keine Basis-URI (keine Ressource in der Systemdatei die Abfrage enthält), so passieren man mit resolve-uri() als zweites Argument:

-qs:"doc(resolve-uri('myFile.xml', 'file:$PWD/'))/rootElt/@myAtt/xs:string(.)" 

Es scheint mir, dass Saxonica Aktualisierung der Dokumentation sollte für die Befehlszeilenoption -qs mit diesem Detail (es kann eine Weile dauern, um dies herauszufinden, auf eigene Faust).

Verwandte Themen