Unsere Situation ist, dass wir XPath 1.0 und Funktion current()
(und ein paar andere Funktionen) in unseren Modellen unterstützen müssen, aber wir haben keine Daten als XML-Dokumente. Wir haben eine NodeInfo-Implementierung geschrieben, um das Nicht-XML-Datenquellenproblem zu behandeln.Die Funktion current() in einem Nicht-XSLT-Kontext kann nicht verwendet werden
aber, wenn ich einen Ausdruck von der folgenden Art lief
/a/b/c[name = current()/../x]/yy/uu/name
durch ein Objekt Einstellen die Wurzel wie das Dokumentobjekt darstellen, und ein anderes Objekt mit Geschwisterelement x als Kontextknoten, habe ich den Fehler
nicht den Strom() Funktion in einem nicht-XSLT Kontext
Als ich gedebuggt ich sah, dass der Kontext th in Gebrauch verwenden kann, ist e Standalone-Kontext. Wie bekomme ich die Unterstützung für die current()
Funktion? Ich habe versucht, durch den Ausdruck
/a/b/c[name = ./../x]/yy/uu/name
aber die .
als c
interpretiert.
Welche Version von Saxon verwenden Sie genau mit? Warum muss es XPath 1.0 sein, wenn Sie Saxon 9 benutzen, dann haben Sie XPath 2.0 oder in 9.7 sogar XPath 3.0 (wo Sie zB 'let $ context: =. Return/a/b/c [name = $ context /../ x]/yy/uu/name'). –
gibt es eine Spezifikation, die ich unterstützen muss. Die Spezifikation beschränkt sich auf xpath 1.0 und einige geliehene Funktionen wie current(). – user19937
Es gibt eine Spezifikation für mich, die ich unterstützen muss. Die Spezifikation beschränkt sich auf xpath 1.0 und einige geliehene Funktionen wie current(). Meine Implementierung kann irgendeine Sache benutzen, also ist saxon 9.7 sicherlich eine Option, vorausgesetzt, es ist möglich, eine benutzerdefinierte NodeInfo-Implementierung durchzuführen. – user19937