XPath 3
XPATH 3 ist die neueste Version der XML Pfadsprache, a Abfragesprache Zur Auswahl der Knoten in Xml Unterlagen. Es ersetzt XPath 1.0 und XPath 2.0.
XPath 3.0 wurde ein W3C -Empfehlung am 8. April 2014 während XPath 3.1 wurde ein W3C -Empfehlung am 21. März 2017.
Neue Funktionen in XPath 3.0
Verglichen mit XPath 2.0, XPath 3.0 fügt die folgenden neuen Funktionen hinzu:
- Inline -Funktionsausdrücke
- Anonyme Funktionen kann in einem erstellt werden Ausdruck Kontext. Zum Beispiel der Ausdruck
function($a as xs:double, $b as xs:double) as xs:double { $a * $b }
Erstellt eine Funktion, die das Produkt seiner beiden Argumente zurückgibt. Der Ausdruckcollection()/(let $a := . return function() { $a })
Erstellt eine Folge von Funktionen, die jeder einen anderen Knoten aus einer Sammlung zurückgibt. - Dynamische Funktionsaufrufe
- Funktionswerte können aufgerufen werden, ohne namentlich zu beziehen. Zum Beispiel,
$f[2]("Hi there")
holt das zweite Element aus der Sequenz$ f
und ruft es als Funktion auf und übergibt die Zeichenfolge"Hi"
als Argument. - Gewerkschaftstypen
- Gewerkschaftstypenwie definiert in XML -Schema, kann in verwendet werden in Geben Sie Conversions ein und Funktion Geben Sie Unterschriften ein.
- Namespace Literale
- XML -Namespaces Kann mit Getregel verwiesen werden Uri Literale. Zum Beispiel der qualifizierte Name
Math: pi
kann erweitert werden aufQ{http://www.w3.org/2005/xpath-functions/math}pi
Einbetten des Namespace URI in das Präfix. - String -Verkettung Operator
- Das neue
||
Operator kann verwendet werden für String-Verkettung:$ a || $ b
ist äquivalent zufn:concat($a, $b)
. - Mapping -Operator
- Das neue
!
Der Bediener führt eine einfache Zuordnung durch:E1! E2
bewertetE2
Für jedes Element in der SequenzE1
und verkettet die resultierenden Gegenstände. Dies ist vergleichbar mit dem Pfadoperator/
, aber die!
Der Bediener führt weder eine doppelte Eliminierung noch eine Dokumentenordnung der Ergebnisse durch.
Neue Funktionen in XPath 3.1
XPath 3.1 fügt hauptsächlich Unterstützung für Array und Karte (Assoziatives Array) Datentypen. Diese Typen und ihre damit verbundenen Funktionalität sollen die Arbeit erleichtern JSON Daten.
Eine weitere Innovation ist der Pfeilbetreiber =>
für Funktionsketten. Zum Beispiel der XPath 2.0 -Ausdruck
enthält(oberer Fall(Substring-vor($in, '' ')), 'X')
kann jetzt geschrieben werden
$in => Substring-vor('' ') => oberer Fall() => enthält('X')
Verweise
- "XML Path Language (XPath) 3.0". World Wide Web Konsortium. 8. April 2014.
- "XML Path Language (XPath) 3.1". World Wide Web Konsortium. 21. März 2017.