Die Sequenz-Erweiterungsfunktionen von Altova können in XPath- und XQuery-Ausdrücken verwendet werden und stellen zusätzliche Funktionen für die Verarbeitung von Daten zur Verfügung.
Anmerkung zur Benennung von Funktionen und zur Anwendbarkeit der Sprache
Altova-Erweiterungsfunktionen können in XPath/XQuery-Ausdrücken verwendet werden. Dadurch stehen neben den Funktionen in der Standardbibliothek der XPath-, XQuery- und XSLT-Funktionen zusätzliche Funktionen zur Verfügung. •Um Altova-Erweiterungsfunktionen von Funktionen in der Standardbibliothek zu unterscheiden, wurde Altova-Erweiterungsfunktionen in dieser Dokumentation das Suffix [altova:] angehängt, z.B. add-years-to-date [altova:]. •Wenn Sie Altova-Erweiterungsfunktionen jedoch in Ihren XPath/XQuery-Ausdrücken verwenden, müssen Sie die Funktion genau wie jede andere XPath/XQuery-Standardfunktion ohne Präfix oder Suffix verwenden. Verwenden Sie eine Altova-Erweiterungsfunktion folgendermaßen: add-years-to-date(xs:date("2014-01-15"), 10). XPath-Funktionen (in XPath-Ausdrücken in XSLT verwendet): | XP1 XP2 XP3.1 | XSLT-Funktionen (in XPath-Ausdrücken in XSLT verwendet): | XSLT1 XSLT2 XSLT3 | XQuery-Funktionen (in XQuery-Ausdrücken in XQuery verwendet): | XQ1 XQ3.1 |
|
attributes(AttributeName als xs:string) als attribute()* XP3.1 XQ3.1 Gibt alle Attribute zurück, die einen lokalen Namen haben, der mit dem im Input-Argument AttributeName angegebenen Namen identisch ist. Die Groß- und Kleinschreibung wird bei der Suche, die entlang der attribute:: Achse durchgeführt wird, beachtet. Das bedeutet, dass der Kontext-Node der Parent-Element-Node sein muss. •attributes("MyAttribute") gibt MyAttribute()* zurück |
attributes(AttributeName als xs:string, SearchOptions als xs:string) als attribute()* XP3.1 XQ3.1 Gibt alle Attribute zurück, die einen lokalen Namen haben, der mit dem im Input-Argument AttributeName angegebenen Namen identisch ist. Die Groß- und Kleinschreibung wird bei der Suche, die entlang der attribute:: Achse durchgeführt wird, beachtet. Der Kontext-Node muss der Parent-Element-Node sein. Das zweite Argument ist ein String, der Options-Flags enthält. Zur Verfügung stehen die folgenden Flags: r = wechselt zu einer Suche mittels Regular Expression; bei AttributeName muss es sich in diesem Fall um einen Regular Expression-Suchstring handeln; f = Wenn diese Option definiert ist, liefert AttributeName eine vollständige Übereinstimmung; andernfalls muss AttributeName nur teilweise mit einem Attributnamen übereinstimmen, damit dieses Attribut zurückgegeben wird. Wenn f z.B. nicht definiert ist, gibt MyAtt MyAttribute zurück; i = wechselt zu einer Suche ohne Berücksichtigung der Groß- und Kleinschreibung; p = inkludiert das Namespace-Präfix in die Suche; AttributeName sollte in diesem Fall das Namespace-Präfix enthalten, z.B.: altova:MyAttribute. Die Flags können in jeder Reihenfolge angegeben werden. Ungültige Flags erzeugen eine Fehlermeldung. Sie können ein oder mehrere Flags weglassen. Es ist auch der leere String zulässig. Das Resultat ist dasselbe wie bei Verwendung der Funktion mit nur einem Argument (siehe vorherige Signatur). Unzulässig ist jedoch die Verwendung einer leeren Sequenz als zweites Argument. •attributes("MyAttribute", "rfip") gibt MyAttribute()* zurück •attributes("MyAttribute", "pri") gibt MyAttribute()* zurück •attributes("MyAtt", "rip") gibt MyAttribute()* zurück •attributes("MyAttributes", "rfip") gibt keine Übereinstimmung zurück •attributes("MyAttribute", "") gibt MyAttribute()* zurück •attributes("MyAttribute", "Rip") gibt einen Fehler zurück, dass das Flag unbekannt ist. •attributes("MyAttribute", ) gibt den Fehler zurück, dass das zweite Argument fehlt. |
|
elements(ElementName als xs:string) als element()* XP3.1 XQ3.1 Gibt alle Elemente zurück, die einen lokalen Namen haben, der mit dem im Input-Argument ElementName angegebenen Namen identisch ist. Die Groß- und Kleinschreibung wird bei der Suche, die entlang der child:: Achse durchgeführt wird, beachtet. Der Kontext-Node muss der Parent-Node des gesuchten Elements sein. •elements("MyElement") gibt MyElement()* zurück |
elements(ElementName als xs:string, SearchOptions als xs:string) als element()* XP3.1 XQ3.1 Gibt alle Elemente zurück, die einen lokalen Namen haben, der mit dem im Input-Argument ElementName angegebenen Namen identisch ist. Die Groß- und Kleinschreibung wird bei der Suche, die entlang der child:: Achse durchgeführt wird, beachtet. Der Kontext-Node muss der Parent-Node des gesuchten Elements sein. Das zweite Argument ist ein String, der Options-Flags enthält. Zur Verfügung stehen die folgenden Flags: r = wechselt zu einer Suche mittels Regular Expression; bei ElementName muss es sich in diesem Fall um einen Regular Expression-Suchstring handeln; f = Wenn diese Option definiert ist, liefert ElementName eine vollständige Übereinstimmung; andernfalls muss ElementName nur teilweise mit einem Elementnamen übereinstimmen, damit dieses Element zurückgegeben wird. Wenn f z.B. nicht definiert ist, gibt MyElem MyElement zurück; i = wechselt zu einer Suche ohne Berücksichtigung der Groß- und Kleinschreibung; p = inkludiert das Namespace-Präfix in die Suche; ElementName sollte in diesem Fall das Namespace-Präfix enthalten, z.B.: altova:MyElement. Die Flags können in jeder Reihenfolge angegeben werden. Ungültige Flags erzeugen eine Fehlermeldung. Sie können ein oder mehrere Flags weglassen. Es ist auch der leere String zulässig. Das Resultat ist dasselbe wie bei Verwendung der Funktion mit nur einem Argument (siehe vorherige Signatur). Unzulässig ist jedoch die Verwendung einer leeren Sequenz. •elements("MyElement", "rip") gibt MyElement()* zurück •elements("MyElement", "pri") gibt MyElement()* zurück •elements("MyElement", "") gibt MyElement()* zurück •elements("MyElem", "rip") gibt MyElement()* zurück •elements("MyElements", "rfip") gibt keine Übereinstimmung zurück •elements("MyElement", "Rip") gibt einen Fehler zurück, dass das Flag unbekannt ist. •elements("MyElement", ) gibt den Fehler zurück, dass das zweite Argument fehlt. |
|
find-first( (item()*), (CheckFunction( item() als xs:boolean) ) als item()? XP3.1 XQ3.1 Diese Funktion verwendet zwei Argumente. Das erste Argument ist eine Sequenz von einem oder mehreren Elementen eines beliebigen Datentyps. Das zweite Argument, Condition, ist eine Referenz zu einer XPath-Funktion, die ein Argument erhält. (hat einen Stellenwert 1) und einen Booleschen Wert zurückgibt. Jedes Element von Sequence wird der Reihe nach der in Condition referenzierten Funktion bereitgestellt. (Beachten Sie: Die Funktion hat ein einziges Argument.) Das erste Sequence Element, bei dem das Resultat von Condition true() ist, wird als das Ergebnis von find-first zurückgegeben. Anschließend wird die Iteration gestoppt. •find-first(5 to 10, function($a) {$a mod 2 = 0}) gibt xs:integer 6 zurück Das Argument Condition referenziert die XPath 3.0 Inline-Funktion, function(), welche eine Inline-Funktion $a deklariert und diese anschließend definiert. Die einelnen Elemente im Argument Sequence von find-first werden der Reihe nach an $a als sein Input-Wert übergeben. Der Input-Wert wird an der Bedingung in der Funktionsdefinition ($a mod 2 = 0) überprüft. Der erste Input-Wert, der diese Bedingung erfüllt, wird als das Ergebnis von find-first (in diese Fall 6) zurückgegeben. •find-first((1 to 10), (function($a) {$a+3=7})) gibt xs:integer 4 zurück Weitere BeispieleWenn die Datei C:\Temp\Customers.xml vorhanden ist: •find-first( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt C:\Temp\Customers.xml zurück Wenn die Datei C:\Temp\Customers.xml nicht vorhanden ist und https://www.altova.com/index.html vorhanden ist: •find-first( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt https://www.altova.com/index.html zurück Wenn weder die Datei C:\Temp\Customers.xml noch https://www.altova.com/index.html vorhanden ist: •find-first( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt kein Ergebnis zurück Anmerkungen zu den obigen Beispielen •Die XPath 3.0-Funktion, doc-available, erhält ein einziges Argument, das als URI verwendet wird. Sie gibt nur dann true zurück, wenn unter der angegebenen URI ein Dokument-Node gefunden wird. Das Dokument unter der angegebenen URI muss daher ein XML-Dokument sein. •Die Funktion doc-available kann für Condition, das zweite Argument von find-first verwendet werden, da sie nur ein Argument erhält (Stelligkeit=1), da sie ein Element item() als Input erhält (ein String, der als URI verwendet wird) und einen Booleschen Wert zurückgibt. •Beachten Sie, dass doc-available nur referenziert und nicht direkt aufgerufen wird. Das angehängte Suffix #1 gibt eine Funktion mit einer Stelligkeit 1 an. Als Ganzes bedeutet doc-available#1: Verwende die Funktion doc-availabe(), welche die Stelligkeit=1 hat und übergib die einzelnen Elemente in der ersten Sequenz der Reihe nach als einziges Argument an die Funktion. Als Ergebnis wird jeder der beiden Strings an doc-available() übergeben. Die Funktion verwendet den String als URI und überprüft, ob unter der URI ein Dokument-Node vorhanden ist. Wenn dies der Fall ist, wird doc-available() zu true() ausgewertet und der String wird als Ergebnis der Funktion find-first zurückgegeben. Beachten Sie zur Funktion doc-available(), dass relative Pfade relativ zu aktuellen Basis-URI aufgelöst werden. Die Basis-URI ist standardmäßig die URI des XML-Dokuments, von dem aus die Funktion geladen wird. |
|
|
find-first-combination((Seq-01 as item()*), (Seq-02 as item()*), (Condition( Seq-01-Item, Seq-02-Item as xs:boolean)) as item()* XP3.1 XQ3.1 Diese Funktion verwendet drei Argumente: •Die ersten beiden Argumente, Seq-01 und Seq-02, sind Sequenzen von einem oder mehreren Elementen eines beliebigen Datentyps. •Das dritte Argument, Condition, ist eine Referenz auf eine XPath-Funktion, die zwei Argumente erhält (d.h. eine Stelligkeit 2 hat) und einen Booleschen Wert zurückgibt. Die Elemente von Seq-01 und Seq-02 werden als die Argumente der Funktion Condition in geordneten Paaren übergeben (je ein Element aus jeder Sequenz bildet ein Paar). Die Paare sind folgendermaßen geordnet. If Seq-01 = X1, X2, X3 ... Xn And Seq-02 = Y1, Y2, Y3 ... Yn Then (X1 Y1), (X1 Y2), (X1 Y3) ... (X1 Yn), (X2 Y1), (X2 Y2) ... (Xn Yn) Das erste geordnete Paar, bei dem die Funktion Condition zu true() ausgewertet wird, wird als Ergebnis von find-first-combination zurückgegeben. Beachten Sie: (i) Wenn die Funktion Condition durch die bereitgestellten Argumentpaare iteriert und nicht ein einziges Mal zu true() ausgewertet wird, so gibt find-first-combination Keine Ergebnisse zurück; (ii) Das Ergebnis von find-first-combination ist immer ein Elementpaar (eines beliebigen Datentyps) oder gar kein Element. •find-first-combination(11 to 20, 21 to 30, function($a, $b) {$a+$b = 32}) gibt die Sequenz xs:integers (11, 21) zurück •find-first-combination(11 to 20, 21 to 30, function($a, $b) {$a+$b = 33}) gibt die Sequenz xs:integers (11, 22) zurück •find-first-combination(11 to 20, 21 to 30, function($a, $b) {$a+$b = 34}) gibt die Sequenz xs:integers (11, 23) zurück |
|
find-first-pair((Seq-01 als item()*), (Seq-02 als item()*), (Condition( Seq-01-Item, Seq-02-Item als xs:boolean)) als item()* XP3.1 XQ3.1 Diese Funktion erhält drei Argumente: •Die ersten beiden Argumente, Seq-01 und Seq-02, sind Sequenzen von einem oder mehreren Elementen eines beliebigen Datentyps. •Das dritte Argument, Condition, ist eine Referenz auf eine XPath-Funktion, die zwei Argumente erhält (d.h. eine Stelligkeit 2 hat) und einen Booleschen Wert zurückgibt. Die Elemente von Seq-01 und Seq-02 werden als die Argumente der Funktion Condition in geordneten Paaren übergeben. Die Paare sind folgendermaßen geordnet. If Seq-01 = X1, X2, X3 ... Xn And Seq-02 = Y1, Y2, Y3 ... Yn Then (X1 Y1), (X2 Y2), (X3 Y3) ... (Xn Yn) Das erste geordnete Paar, bei dem die Funktion Condition zu true() ausgewertet wird, wird als Ergebnis von find-first-pair zurückgegeben. Beachten Sie: (i) Wenn die Funktion Condition durch die bereitgestellten Argumentpaare iteriert und nicht ein einziges Mal zu true() ausgewertet wird, so gibt find-first-pair Keine Ergebnisse zurück; (ii) Das Ergebnis von find-first-pair ist immer ein Elementpaar (eines beliebigen Datentyps) oder gar kein Element. •find-first-pair(11 to 20, 21 to 30, function($a, $b) {$a+$b = 32}) gibt die Sequenz xs:integers (11, 21) zurück •find-first-pair(11 to 20, 21 to 30, function($a, $b) {$a+$b = 33}) gibt Keine Ergebnisse zurück Beachten Sie anhand der zwei Beispiel oben, dass die Paare folgendermaßen geordnet sind: (11, 21) (12, 22) (13, 23)...(20, 30). Aus diesem Grund gibt das zweite Beispiel Keine Ergebnisse zurück (da keine geordnetes Paar die Summe 33 ergibt). |
|
find-first-pair-pos((Seq-01 as item()*), (Seq-02 as item()*), (Condition( Seq-01-Item, Seq-02-Item as xs:boolean)) as xs:integer XP3.1 XQ3.1 Diese Funktion erhält drei Argumente: •Die ersten beiden Argumente, Seq-01 und Seq-02, sind Sequenzen von einem oder mehreren Elementen eines beliebigen Datentyps. •Das dritte Argument, Condition, ist eine Referenz auf eine XPath-Funktion, die zwei Argumente erhält (d.h. eine Stelligkeit 2 hat) und einen Booleschen Wert zurückgibt. Die Elemente von Seq-01 und Seq-02 werden als die Argumente der Funktion Condition in geordneten Paaren übergeben. Die Paare sind folgendermaßen geordnet. If Seq-01 = X1, X2, X3 ... Xn And Seq-02 = Y1, Y2, Y3 ... Yn Then (X1 Y1), (X2 Y2), (X3 Y3) ... (Xn Yn) Als Ergebnis von find-first-pair-pos wird die Indexposition des ersten geordneten Paars, bei dem die Funktion Condition zu true() ausgewertet wird, zurückgegeben. Beachten Sie: Wenn die Funktion Condition durch die bereitgestellten Argumentpaare iteriert und kein einziges Mal zu true() ausgewertet wird, so gibt find-first-pair-pos Keine Ergebnisse zurück. •find-first-pair-pos(11 to 20, 21 to 30, function($a, $b) {$a+$b = 32}) gibt 1 zurück •find-first-pair-pos(11 to 20, 21 to 30, function($a, $b) {$a+$b = 33}) gibt Keine Ergebnisse zurück Beachten Sie anhand der zwei Beispiel oben, dass die Paare folgendermaßen geordnet sind: (11, 21) (12, 22) (13, 23)...(20, 30). Im ersten Beispiel gibt die Funktion Condition bei Auswertung des ersten Paars true() zurück, daher wird dessen Indexposition in der Sequenz, 1, zurückgegeben. Das zweite Beispiel gibt Keine Ergebnisse zurück (da keine geordnetes Paar die Summe 33 ergibt). |
|
find-first-pos( (item()*), (CheckFunction( item() als xs:boolean) ) als xs:integer? XP3.1 XQ3.1 Diese Funktion verwendet zwei Argumente. Das erste Argument ist eine Sequenz von einem oder mehreren Elementen eines beliebigen Datentyps. Das zweite Argument, Condition, ist eine Referenz zu einer XPath-Funktion, die ein Argument erhält. (hat einen Stellenwert 1) und einen Booleschen Wert zurückgibt. Jedes Element von Sequence wird der Reihe nach der in Condition referenzierten Funktion bereitgestellt. (Beachten Sie: Die Funktion hat ein einziges Argument.) Das erste Sequence Element, bei dem das Resultat von Condition true() ist, wird als das Ergebnis von find-first-pos zurückgegeben. Anschließend wird die Iteration gestoppt. •find-first-pos(5 to 10, function($a) {$a mod 2 = 0}) gibt xs:integer 2 zurück Das Argument Condition referenziert die XPath 3.0 Inline-Funktion, function(), welche eine Inline-Funktion $a deklariert und diese anschließend definiert. Die einelnen Elemente im Argument Sequence von find-first-pos werden der Reihe nach an $a als sein Input-Wert übergeben. Der Input-Wert wird an der Bedingung in der Funktionsdefinition ($a mod 2 = 0) überprüft. Die Indexposition in der Sequenz des ersten Input-Werts, die diese Bedingung erfüllt, wird als das Ergebnis von find-first-pos zurückgegeben (in diesem Fall 2, da 6, der erste Wert in der Sequenz, der die Bedingung erfüllt, sich in der Sequenz an der Indexposition 2 befindet). Weitere BeispieleWenn die Datei C:\Temp\Customers.xml vorhanden ist: •find-first-pos( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt 1 zurück Wenn die Datei C:\Temp\Customers.xml nicht vorhanden ist und https://www.altova.com/index.html vorhanden ist: •find-first-pos( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt 2 zurück Wenn weder die Datei C:\Temp\Customers.xml noch https://www.altova.com/index.html vorhanden ist: •find-first-pos( ("C:\Temp\Customers.xml", "https://www.altova.com/index.html"), (doc-available#1) ) gibt kein Ergebnis zurück Anmerkungen zu den obigen Beispielen •Die XPath 3.0-Funktion, doc-available, erhält ein einziges Argument, das als URI verwendet wird. Sie gibt nur dann true zurück, wenn unter der angegebenen URI ein Dokument-Node gefunden wird. (Das Dokument unter der angegebenen URI muss daher ein XML-Dokument sein.) •Die Funktion doc-available kann für Condition, das zweite Argument von find-first-pos verwendet werden, da sie nur ein Argument erhält (Stelligkeit=1), da sie ein Element item() als Input erhält (ein String, der als URI verwendet wird) und einen Booleschen Wert zurückgibt. •Beachten Sie, dass doc-available nur referenziert und nicht direkt aufgerufen wird. Das angehängte Suffix #1 gibt eine Funktion mit einer Stelligkeit 1 an. Als Ganzes bedeutet doc-available#1: Verwende die Funktion doc-availabe(), welche die Stelligkeit=1 hat und übergib die einzelnen Elemente in der ersten Sequenz der Reihe nach als einziges Argument an die Funktion. Als Ergebnis wird jeder der beiden Strings an doc-available() übergeben. Die Funktion verwendet den String als URI und überprüft, ob unter der URI ein Dokument-Node vorhanden ist. Wenn dies der Fall ist, wird doc-available() zu true() ausgewertet und der String wird als Ergebnis der Funktion find-first zurückgegeben. Beachten Sie zur Funktion doc-available(), dass relative Pfade relativ zu aktuellen Basis-URI aufgelöst werden. Die Basis-URI ist standardmäßig die URI des XML-Dokuments, von dem aus die Funktion geladen wird. |
|
|
for-each-attribute-pair(Seq1 als element()?, Seq2 als element()?, Function als function()) als item()* XP3.1 XQ3.1 Die beiden ersten Argumente identifizieren zwei Elemente, anhand deren Attribute Attributpaare gebildet werden, wobei das eine Attribut eines Paars aus dem ersten Element und das andere aus dem zweiten Element stammt. Die Attributpaare werden auf Basis ihres übereinstimmenden Namens ausgewählt und alphabetisch (nach ihren Namen) zu einer Gruppe geordnet. Falls es zu einem Attribut im anderen Element keine Entsprechung gibt, ist das Paar "nicht verbunden", d.h. es besteht nur aus einem Mitglied. Das Funktionselement (das dritte Argument Function) wird auf die einzelnen Paare (verbundene und nicht verbundene) in der Sequenz der Paare separat angewendet, wodurch als Ausgabe eine Sequenz von Einträgen erzeugt wird. •for-each-attribute-pair(/Example/Test-A, /Example/Test-B, function($a, $b){$a+b}) gibt zurück ... (2, 4, 6) wenn <Test-A att1="1" att2="2" att3="3" /> <Test-B att1="1" att2="2" att3="3" /> (2, 4, 6) wenn <Test-A att2="2" att1="1" att3="3" /> <Test-B att3="3" att2="2" att1="1" /> (2, 6) wenn <Test-A att4="4" att1="1" att3="3" /> <Test-B att3="3" att2="2" att1="1" /> Anmerkung: Das Ergebnis (2, 6) wird mit Hilfe der folgenden Aktion ermittelt: (1+1, ()+2, 3+3, 4+()). Wenn einer der Operanden eine leere Sequenz ist, wie dies bei Eintrag 2 und 4 der Fall ist, so ist das Ergebnis der Addition eine leere Sequenz. •for-each-attribute-pair(/Example/Test-A, /Example/Test-B, concat#2) gibt zurück ... (11, 22, 33) wenn <Test-A att1="1" att2="2" att3="3" /> <Test-B att1="1" att2="2" att3="3" /> (11, 2, 33, 4) wenn <Test-A att4="4" att1="1" att3="3" /> <Test-B att3="3" att2="2" att1="1" /> |
|
for-each-combination(FirstSequence als item()*, SecondSequence als item()*, Function($i,$j){$i || $j} ) als item()* XP3.1 XQ3.1 Die Elemente der zwei Sequenzen in den ersten beiden Argumenten werden miteinander kombiniert, so dass jedes Element in der ersten Sequenz der Reihe nach einmal mit jedem Element in der zweiten Sequenz kombiniert wird. Die als drittes Argument angegebene Funktion wird auf die einzelnen Kombinationen in der erzeugten Sequenz angewendet, wodurch als Ausgabe eine Sequenz von Elementen erzeugt wird (siehe Beispiel). •for-each-combination( ('a', 'b', 'c'), ('1', '2', '3'), function($i, $j){$i || $j} ) gibt ('a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3') zurück |
|
u |
for-each-matching-attribute-pair(Seq1 als element()?, Seq2 als element()?, Function als function()) als item()* XP3.1 XQ3.1 Die beiden ersten Argumente identifizieren zwei Elemente, anhand deren Attribute Attributpaare gebildet werden, wobei das eine Attribut eines Paars aus dem ersten Element und das andere aus dem zweiten Element stammt. Die Attributpaare werden auf Basis ihres übereinstimmenden Namens ausgewählt und alphabetisch (nach ihren Namen) zu einer Gruppe geordnet. Falls es zu einem Attribut im anderen Element keine Entsprechung gibt, wird kein Paar gebildet. Das Funktionselement (das dritte Argument Function) wird auf die einzelnen Paare in der Sequenz der Paare separat angewendet, wodurch als Ausgabe eine Sequenz von Einträgen erzeugt wird. •for-each-matching-attribute-pair(/Example/Test-A, /Example/Test-B, function($a, $b){$a+b}) gibt zurück ... (2, 4, 6) wenn <Test-A att1="1" att2="2" att3="3" /> <Test-B att1="1" att2="2" att3="3" /> (2, 4, 6) wenn <Test-A att2="2" att1="1" att3="3" /> <Test-B att3="3" att2="2" att1="1" /> (2, 6) wenn <Test-A att4="4" att1="1" att3="3" /> <Test-B att3="3" att2="2" att3="1" /> •for-each-matching-attribute-pair(/Example/Test-A, /Example/Test-B, concat#2) gibt zurück .... (11, 22, 33) wenn <Test-A att1="1" att2="2" att3="3" /> <Test-B att1="1" att2="2" att3="3" /> (11, 33) wenn <Test-A att4="4" att1="1" att3="3" /> <Test-B att3="3" att2="2" att1="1" /> |
|
substitute-empty(FirstSequence als item()*, SecondSequence als item()) als item()* XP3.1 XQ3.1 Wenn FirstSequence leer ist, wird SecondSequence zurückgegeben. Wenn FirstSequence nicht leer ist, wird FirstSequence zurückgegeben. •substitute-empty( (1,2,3), (4,5,6) ) gibt (1,2,3) zurück •substitute-empty( (), (4,5,6) ) gibt (4,5,6)zurück |
|