Xml Path

Format Xml Path utilisé par Up ! eXtended Markup Language

Xml Path permet d'extraire une partie d'un flux Xml a partir d'un chemin. L'espace de noms de Xml Schema est xmlns:fn=http://www.w3.org/2005/xpath-functions".

Du point de vue Xml Path, le flux Xml est organisé en arbre de noeuds. Les sortes de noeuds sont :

Les noeuds de l'arbre sont numérotés en infixé. Ainsi, chaque noeud comporte :

Xml Path peut être utilisé pour :

Une expression Xml Path est construite à partir d'opérateurs, de booléens, de nombres, de chaîne de caractères, de nom d'entités et de fonctions pré-définies. Elle du type :

L'expression est évaluée dans un contexte qui peut être :

Le chemin est défini par des sous-chemins séparés par le caractère division. Chaque sous-chemin est défini par une expression comportant :

Voici un exemple d'expression complète :

<-- Selectionne le premier noeud fils de sorte Employe. -->
child::Employe[position()=1]

Dans les faits, Xml Path ne sait gérer que des séquences i.e. listes, un peut comme en Lisp. Ainsi, une valeur atomique tel un booléen, un nombre entier ou une chaîne de caractères est en fait une séquence ne comportant qu'un seul élément appelé singleton. La séquence vide se note ().

Syntaxe de Xml Path

Cette syntaxe ne comporte que les instructions des expressions et non celles de structure tel every, for, if, return, some. Celles-ci sont présentées dans Xml Query étant donné qu'elles sont reformulées par cette extension d'Xml Path.

Chemin :

ListeDExpressions :

Expression :

OperateurBinaire :

OperateurUnaire :

TypeSeul :

SuiteTypeSeulOption :

TypeSequence :

TestSorteNoeud :

TestDocument :

ParametreTestDocument :

TestElement :

ParametresTestElement :

SuiteParametreTestElementOption :

SuiteParametreTestElement2Option :

TestElementGlobal :

TestAttribut :

ParametresTestAttribut :

SuiteParametreTestAttribut :

TestAttributGlobal :

TestInstructionApplication :

ParametreTestInstructionApplicationOption :

NbOccurrencesOption :

ExpressionChemin :

CheminLocalisationOption :

CheminLocalisationRelatif :

Etape :

SpecificationDAxe :

NomDAxe :

TestDuNoeud :

ListeDePredicatsOption :

ListeDePredicats :

Predicat :

ExpressionPrimaire :

ListeDExpressionsOption :

Opérateurs de Xml Path

= != < <= > >= | / // . .. [] () , + - << >> :: * @ ?

Mots-clé de Xml Path

ancestor ancestor-or-self and as attribute
cast castable child comment
descendant descendant-or-self div document-node
element empty-sequence eq except
following following-sibling
ge gt
idiv instance intersect is item
le lt
mod
namespace ne node
of or
parent preceding preceding-sibling processing-instruction
schema-attribute schema-element self
text to treat
union

APIs de Xml Path

abs adjust-date-to-timezone adjust-dateTime-to-timezone adjust-time-to-timezone anyUri avg
base64Binary boolean byte
ceiling codepoint-equal codepoints-to-string collection compare concat concatenate contains count current-date current-dateTime current-time
data date day-from-date day-from-dateTime days-from-duration dayTimeDuration deep-equal default-collation distinct-values doc doc-available double duration
empty encode-for-uri ends-with ENTITY error escape-html-uri exactly-one exists
false float floor
gDay gMonth gMonthDay gYear gYearMonth
hexBinary hours-from-dateTime hours-from-duration hours-from-time
ID IDREF implicit-timezone in-scope-prefixes index-of insert-before int integer iri-to-uri
lang language last local-name local-name-from-QName long lower-case
matches max min minutes-from-dateTime minutes-from-duration minutes-from-time month-from-date month-from-dateTime months-from-duration
Name namespace-uri namespace-uri-for-prefix namespace-uri-from-QName NCName negativeInteger NMTOKEN nonNegativeInteger normalizedString normalize-space normalize-unicode not number
one-or-more
position positiveInteger prefix-from-QName
QName
remove replace resolve-QName resolve-uri reverse root round round-half-to-even
seconds-from-dateTime seconds-from-duration seconds-from-time static-base-uri starts-with string string-join string-length string-to-codepoints subsequence substring substring-after substring-before sum
to token tokenize timezone-from-date timezone-from-dateTime timezone-from-time trace translate true
unordered unsignedByte unsignedInt unsignedLong unsignedShort upper-case
year-from-date year-from-dateTime yearMonthDuration years-from-duration
zero-or-one