Présentation de XPath
XPath est un langage d'expression conçu par le consortium World Wide Web (W3C) pour permettre le traitement des données XML conformes au modèle de données XQuery 1.0 et XPath 2.0 . XQuery est un langage de programmation fonctionnel conçu par le consortium World Wide Web (W3C) pour répondre à des exigences spécifiques en matière d'interrogation et de modification des données XML. DB2® XPath prend en charge un sous-ensemble des constructions de langage dans la recommandation XPath 2.0 .
Le langage XPath fournit plusieurs types d'expressions qui peuvent être construites à partir de mots clés, de symboles et d'opérandes. Dans la plupart des cas, les opérandes des différentes expressions, opérateurs et fonctions doivent être conformes aux types attendus. DB2 ignore les erreurs de type dans certaines situations.
DB2 XPath peut être utilisé comme argument de la fonction de table intégrée XMLTABLE SQL, qui est utilisée pour convertir une valeur XML en un ensemble de résultats relationnel.
expressions XPath
Le bloc de construction de base de XPath est l'expression. DB2 XPath fournit plusieurs types d'expression pour l'utilisation des données XML:
- Les expressions primaires, qui incluent les primitives de base du langage, telles que les littéraux, les références de variable et les appels de fonction
- Expressions de chemin permettant de localiser des noeuds dans une arborescence de documents
- Expressions arithmétiques pour l'addition, la soustraction, la multiplication, la division et le module
- Expressions de comparaison permettant de comparer deux valeurs
- Expressions logiques pour l'utilisation de la logique booléenne
1 = 1 et 2 =
2:1 = 1 and 2 = 2Traitement XPath
Une expression XPath se compose d'un prologue facultatif qui établit l'environnement de traitement et d'une expression qui génère un résultat. Le traitement XPath se déroule en deux phases: la phase d'analyse statique et la phase d'évaluation dynamique.
Au cours de la phase d'analyse statique, l'expression est analysée et augmentée en fonction des informations définies dans le prologue. Le contexte statique est utilisé pour résoudre les noms de type, les noms de fonction et les noms de variable utilisés par l'expression. Le contexte statique inclut toutes les informations disponibles avant l'évaluation d'une expression. La phase statique se produit lorsque l'expression est évaluée pour la première fois. Si un nom requis est introuvable dans le contexte statique, une erreur est générée.
La phase d'évaluation dynamique se produit si aucune erreur n'est détectée lors de la phase d'analyse statique. Lors de la phase d'évaluation dynamique, la valeur de l'expression est calculée. Un type dynamique est associé à chaque valeur lors du calcul de la valeur. Si un opérande d'une expression a un type dynamique qui ne correspond pas au type attendu, une erreur de type est générée. Si l'évaluation ne génère aucune erreur, un résultat est renvoyé. Le contexte dynamique inclut les informations disponibles au moment de l'évaluation de l'expression.
Le résultat d'une expression XPath est, en général, une séquence hétérogène de noeuds XML et de valeurs atomiques. Plus spécifiquement, le résultat d'une expression XPath est une instance du modèle de données XPath.
Modèle de données XPath 2.0 et XQuery 1.0
Le modèle de données XPath 2.0 et XQuery 1.0 représente un document XML sous la forme d'une hiérarchie (arborescence) de noeuds qui représentent des éléments et des attributs XML. Chaque valeur du modèle de données est une séquence pouvant contenir zéro, un ou plusieurs éléments. Les éléments peuvent être des valeurs atomiques ou des noeuds. Chaque expression XPath prend comme entrée une instance du modèle de données XPath 2.0 et XQuery 1.0 et renvoie une instance du modèle de données XPath 2.0 et XQuery 1.0 .
Types de données XPath DB2
- xs: entier
- xs: décimal
- xs: double
- xs: chaîne
- xs: booléen
- xs:untypedAtomic
- xs: date
- xs:dateTime
- xs: heure
- xs: durée
- xs:yearMonthDuration
- xs:dayTimeDuration
DB2 vérifie les types de données pendant la phase d'évaluation dynamique et la phase d'analyse statique. Lorsqu'une expression rencontre un type inapproprié, une erreur de type est générée. Par exemple, une expression XPath qui utilise l'opérateur plus (+) pour additionner deux chaînes de caractères entraîne une erreur de type car l'opérateur plus n'est utilisé que dans les expressions arithmétiques pour additionner des valeurs numériques, yearMonthDuration, et dayTimeDuration. Les conversions de type et les substitutions de type implicites se produisent, lorsque cela est possible, pour fournir le type attendu par une expression.
Bibliothèque de fonctions intégrées
DB2 XPath fournit une bibliothèque de fonctions intégrées permettant d'utiliser des données XML. La bibliothèque inclut les types de fonctions suivants:
- Fonctions de chaîne
- Fonctions numériques
- Fonctions de date et d'heure
- Fonctions qui fonctionnent sur des valeurs booléennes
- Fonctions qui agissent sur les séquences
Ces fonctions intégrées se trouvent dans l'espace de nom avec l'URI http://www.w3.org/2005/xpath-functions, qui par défaut est associé au préfixe fn. L'espace de nom de fonction par défaut est défini sur fn par défaut, ce qui signifie que vous pouvez appeler des fonctions dans cet espace de nom sans spécifier de préfixe.
Les appels de fonction peuvent être utilisés n'importe où dans une expression XPath où une expression est attendue.