Extension XML Administration et programmation
Vous devez créer un fichier DAD lorsque vous utilisez des collections
XML. Un fichier DAD définit la relation existant entre les données XML
et plusieurs tables relationnelles. L'Extension XML exploite le
fichier DAD pour :
- composer un document XML à partir de données relationnelles,
- décomposer un document XML en données relationnelles.
Il existe deux méthodes possibles pour mapper les données entre les tables
XML et la table DB2 : le mappage SQL et le mappage du noeud RDB.
- Mappage SQL
- Fait appel à un élément d'instruction SQL en vue d'indiquer la
requête SQL pour les tables et les colonnes contenant les données XML.
Ne peut être utilisé que pour la composition de documents XML.
- Mappage de noeud RDB
- A recours à un élément spécifique à l'Extension XML, le noeud de base
de données relationnelle (RDB_node), qui indique des tables, des colonnes, des
conditions et l'ordre des données XML. Le mappage du noeud RDB
supporte des mappages plus complexes que ceux fournis par une instruction
SQL. Peut être utilisé pour la composition et la décomposition de
documents XML.
Les deux méthodes de mappage utilisent le modèle de données
XPath, décrit à la section Fichier DAD.
- Mappez la relation existant entre les tables DB2 et le document
XML. Au cours de cette étape, vous devez également mapper la hiérarchie
du document XML et préciser le mode de mappage des données de ce document vers
une table DB2.
- Si vous prévoyez de valider les documents XML, insérez dans la table de
référence des DTD (db2xml.DTD_REF) la DTD du document XML en cours de
composition ou de décomposition.
Choisissez le mappage SQL lorsque vous composez des documents XML et
que vous voulez utiliser SQL.
Pour créer une DAD de composition en mode mappage SQL, procédez comme
suit :
Choisissez le mappage SQL lorsque vous composez un document XML et que vous
voulez utiliser une instruction SQL pour définir la table et les colonnes à
partir desquelles vous dérivez les données du document XML.
- Configurez et démarrez l'assistant d'administration. Pour
plus d'informations, reportez-vous à la section Démarrage de l'assistant d'administration.
- A partir du tableau de bord, cliquez sur Utilisation des fichiers
DAD. La fenêtre Spécification d'une DAD
s'affiche.
- Vous pouvez éditer un fichier DAD existant ou en créer un nouveau.
Pour créer un fichier DAD :
- Laissez la zone Nom de fichier à blanc.
- Dans le menu Type, sélectionnez Mappage SQL de collection
XML.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
Pour éditer un fichier DAD existant :
- Tapez le nom du fichier DAD dans la zone Nom de fichier, ou
cliquez sur ... pour parcourir la liste des
DAD disponibles.
- Vérifiez que l'assistant reconnaît le fichier DAD indiqué.
- Dans l'affirmative, le bouton Suivant devient disponible
et Mappage SQL d'une collection XML s'affiche dans la zone
Type.
- Dans la négative, vous ne pouvez pas cliquer sur
Suivant. Tapez un autre nom de fichier existant, ou cliquez
sur ... pour parcourir à nouveau la liste des
DAD disponibles. Corrigez les valeurs dans la zone d'entrée
jusqu'à ce que Suivant devienne disponible.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
- Dans la fenêtre Sélection de la validation, vous pouvez choisir de valider
vos documents XML avec une DTD.
- Cliquez sur Suivant pour ouvrir la fenêtre Spécification de
texte.
- Dans la zone Prologue, tapez le nom de prologue du document XML
à composer.
<?xml version="1.0"?>
Si vous éditez une DAD existante, le prologue s'affiche
automatiquement dans la zone Prologue.
- Dans la zone Doctype de la fenêtre Spécification de texte,
tapez le type du document XML en désignant la DTD associée. Par exemple
:
!DOCTYPE DAD SYSTEM "c:\dxx\samples\dtd\getstart.dtd"
Si vous éditez une DAD existante, le type de document s'affiche
automatiquement dans la zone Doctype.
- Cliquez sur Suivant pour ouvrir la fenêtre Spécification
d'une instruction SQL.
- Tapez une instruction SQL SELECT valide dans la zone Instruction
SQL. Par exemple :
SELECT o.order_key, customer_name, customer_email, p.part_key, color, quantity,
price, tax, ship_id, date, mode from order_tab o, part_tab p,
table (select substr(char(timestamp(generate_unique())),16)
as ship_id, date, mode, part_key from ship_tab) s
WHERE o.order_key = 1 and
p.price > 20000 and
p.order_key = o.order_key and
s.part_key = p.part_key
ORDER BY order_key, part_key, ship_id
Si vous éditez une DAD existante, l'instruction SQL s'affiche
automatiquement dans la zone Instruction SQL.
- Cliquez sur Test SQL pour vérifier la validité de
l'instruction SQL.
- Dans l'affirmative, l'exemple de résultats s'affiche dans
la zone Exemple de résultats.
- Dans la négative, cette zone contient un message d'erreur qui vous
demande de corriger l'instruction SQL SELECT et de réessayer.
- Cliquez sur Suivant pour ouvrir la fenêtre Mappage SQL.
- Pour sélectionner un noeud d'élément ou d'attribut de départ
pour le mappage, cliquez sur celui-ci dans la zone située à gauche de la
fenêtre Mappage SQL.
Mappez les éléments et les attributs du document XML vers les noeuds
d'éléments et d'attributs correspondant aux données DB2. Ces
noeuds indiquent le chemin des données XML aux données DB2.
- Pour ajouter le noeud racine (root) :
- Sélectionnez l'icône Root.
- Cliquez sur Nouvel élément pour définir un nouveau
noeud.
- Dans la boîte d'options Détails, indiquez
Elément pour Type du noeud.
- Entrez le nom du noeud de niveau supérieur dans la zone Nom du
noeud.
- Cliquez sur Ajout pour créer le noeud.
Vous avez créé le noeud ou l'élément racine, parent de tous les autres
noeuds d'éléments et d'attributs de la mappe. Vous pouvez à
présent lui ajouter des éléments enfants et des attributs.
- Pour ajouter un élément enfant ou un noeud d'attribut
:
- Pour ajouter un élément ou un attribut enfant, cliquez sur un noeud parent
dans la zone située à gauche.
Si vous n'avez sélectionné aucun noeud parent, l'option
Nouvel Elément n'est pas disponible.
- Cliquez sur Nouvel élément.
- Sélectionnez un type de noeud dans la liste Type du noeud de la
boîte d'options Détails.
Le menu Type du noeud n'affiche que les types de noeuds
valides pour ce point de la mappe :
- Elément (element)
- Représente un élément XML défini dans la DTD du document XML.
Permet d'associer l'élément XML à une colonne dans une table
DB2. Un noeud d'élément peut être doté de noeuds d'attributs,
de noeuds d'éléments enfants ou de noeuds de texte. Un noeud de
niveau inférieur est associé à un noeud de texte et à un nom de colonne dans
l'arborescence.
- Attribut (attribute)
- Représente un attribut XML défini dans la DTD du document XML.
Permet d'associer l'attribut XML à une colonne dans une table
DB2. Un noeud d'attribut peut être doté d'un noeud de
texte. Il est associé à un nom de colonne dans
l'arborescence.
- Texte (text)
- Indique le contenu textuel d'un noeud d'élément ou
d'attribut à mapper vers une table relationnelle. Un noeud de
texte est associé à un nom de colonne dans l'arborescence.
- Table
- Indique le nom de table d'une valeur d'élément ou
d'attribut à mapper vers une table relationnelle.
- Colonne (column)
- Indique le nom de colonne d'une valeur d'élément ou
d'attribut à mapper vers une table relationnelle.
- Condition
- Indique une condition pour la colonne.
- Renseignez la zone Nom du noeud dans la boîte d'options
Détails. Par exemple :
Order
- Si vous avez indiqué le type de noeud Attribut,
Elément ou Texte pour un élément de niveau inférieur,
sélectionnez une colonne dans la zone Colonne de la boîte
d'options Détails. Par exemple :
Customer_Name
Restriction : Vous ne pouvez pas créer de colonne à
l'aide de l'assistant d'administration. Si vous indiquez
le type de noeud Colonne, vous ne pouvez sélectionner qu'une
colonne existant déjà dans votre base de données DB2.
- Cliquez sur Ajout pour ajouter le noeud.
Vous pouvez modifier un noeud ultérieurement. Pour ce faire, cliquez sur celui-ci dans la
zone située à gauche et apportez toutes les modifications souhaitées dans la
boîte d'options Détails. Cliquez sur
Modification pour mettre à jour l'élément.
Vous pouvez également ajouter des éléments enfants ou des attributs au
noeud. Pour ce faire, mettez-le en évidence et répétez la procédure
d'ajout.
- Poursuivez l'édition de la mappe SQL, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
- Pour retirer un noeud :
- Cliquez sur un noeud figurant dans la zone située à gauche.
- Cliquez sur Retrait.
- Poursuivez l'édition de la mappe SQL, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
Si vous avez retiré un noeud de niveau inférieur, un autre élément, pouvant
nécessiter la définition d'un nom de colonne, le remplace dans
l'arborescence.
- Dans la zone Nom de fichier de la fenêtre Spécification
d'une DAD, tapez un nom de fichier de sortie pour la DAD modifiée.
- Cliquez sur Fin pour revenir au tableau de bord.
Choisissez le mappage SQL lorsque vous composez des documents XML et que
vous voulez utiliser SQL.
Le fichier DAD est un fichier XML qui peut être créé avec n'importe
quel éditeur de texte. Les étapes suivantes utilisent des exemples
extraits de l'annexe Fichiers DAD. Pour obtenir de plus amples informations et prendre
connaissance du contexte, reportez-vous à ces exemples.
- Ouvrez un éditeur de texte.
- Créez l'en-tête de la DAD.
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> Chemin et nom de fichier de la DTD
pour la DAD
- Insérez les balises <DAD></DAD>.
- Après la balise <DAD>, indiquez l'ID DTD qui associe le fichier
DAD à la DTD du document XML.
<dtdid>path\dtd_name.dtd> --> Chemin et nom de fichier de la DTD
pour l'application
- Indiquez si vous voulez une validation (avec la DTD pour vérifier que le
document XML est valide). Par exemple :
<validation>NO</validation> --> Indiquez YES ou NO
- A l'aide de l'élément <Xcollection>, définissez la méthode
d'accès et de stockage collection XML. Les méthodes d'accès
et de stockage indiquent que le contenu du document XML provient de données
XML stockées dans des tables DB2.
<Xcollection>
</Xcollection>
- Indiquez une ou plusieurs instructions SQL pour effectuer des opérations
d'interrogation ou d'insertion de données sur les tables DB2.
Pour consulter les instructions correspondantes, reportez-vous à la section
Exigences liées aux schémas de mappage . Par exemple, lancez une seule
requête SQL comme suit :
<SQL_stmt>
SELECT o.order_key, customer_name, customer_email, p.part_key, color, quantity,
price, tax, ship_id, date, mode from order_tab o, part_tab p,
table (select substr(char(timestamp(generate_unique())),16)
as ship_id, date, mode, part_key from ship_tab) s
WHERE o.order_key = 1 and
p.price > 20000 and
p.order_key = o.order_key and
s.part_key = p.part_key
ORDER BY order_key, part_key, ship_id
</SQL_stmt>
- Ajoutez les informations de prologue suivantes :
<prolog>?xml version="1.0"?</prolog>
Ce texte est obligatoire.
- Ajoutez les balises <doctype></doctype>. Par exemple :
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Définissez le noeud racine à l'aide des balises
<root_node></root_node>. Dans root_node, indiquez les éléments et
les attributs qui composent le document XML.
- Mappez les éléments et les attributs du document XML vers les noeuds
d'éléments et d'attributs correspondant aux données DB2. Ces
noeuds indiquent le chemin des données XML aux données DB2.
- Définissez une valeur <element_node> pour chaque élément du document
XML mappant vers une colonne de table DB2.
<element_node name="name"></element_node>
Un noeud d'élément peut être doté des noeuds suivants :
- noeud d'attribut (attribute_node),
- noeud d'élément enfant (child element_node),
- noeud de texte (text_node).
- Définissez une valeur <attribute_node> pour chaque attribut du document
XML mappant vers une colonne de table DB2. Pour obtenir des exemples de
DTD applicables au mappage SQL, reportez-vous au début de cette
section. Pour consulter la DTD du fichier DAD et la syntaxe complète de
ce dernier, reportez-vous à l'Annexe A, DTD de fichier DAD.
Par exemple, vous avez besoin d'un attribut key pour l'élément
<Order>. La valeur de key est stockée dans la colonne
PART_KEY.
Fichier DAD : Dans le fichier DAD, créez un noeud
d'attribut pour key et indiquez la table dans laquelle la valeur 1 doit
être stockée.
<attribute_node name="key">
<column name="part_key"/>
</attribute_node>
Document XML composé : La valeur de key est extraite de la
colonne PART_KEY.
<Order key="1">
- Créez un noeud de texte (<text_node>) pour chaque élément ou attribut
dont le contenu sera dérivé d'une table DB2. Le noeud de texte
comporte un élément <column> qui identifie la colonne source du
contenu.
Par exemple, l'élément XML <Tax> peut être associé à une valeur qui
doit être extraite de la colonne TAX :
Elément DAD :
<element_node name="Tax">
<text_node>
<column name="tax"/>
</text_node>
</element_node>
Dans l'instruction SQL, le nom de colonne doit figurer au début du
fichier DAD.
Document XML composé :
<Tax>0.02</Tax>
La valeur 0,02 sera dérivée de la colonne TAX.
- Vérifiez que vous avez placé une balise de fin </root_node> après la
dernière balise </element_node>.
- Vérifiez que vous avez placé une balise de fin </Xcollection> après la
dernière balise </root_node>.
- Vérifiez que vous avez placé une balise de fin </DAD> après la balise
</Xcollection>.
Choisissez le mappage de noeud RDB pour composer des documents XML à
l'aide d'une structure compatible XML.
Cette méthode fait appel à <RDB_node> pour indiquer les tables DB2, la
colonne et les conditions relatives à un noeud d'élément ou
d'attribut. <RDB_node> utilise les éléments suivants :
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant.
- <condition> : facultatif, indique une condition sur la
colonne.
Les éléments enfants utilisés dans <RDB_node> varient en fonction du
contexte du noeud et suivent les règles ci-après :
Type de noeud
| Elément enfant RDB
|
| Table
| Colonne
| Condition1
|
---|
Elément racine
| O
| N
| O
|
Attribut
| O
| O
| Facultatif
|
Texte
| O
| O
| Facultatif
|
(1) Obligatoire avec plusieurs tables
|
Pour créer une DAD de composition en mode mappage du noeud RDB
:
- Configurez et démarrez l'assistant d'administration. Pour
plus d'informations, reportez-vous à la section Démarrage de l'assistant d'administration.
- A partir du tableau de bord, cliquez sur Utilisation des fichiers
DAD. La fenêtre Spécification d'une DAD
s'affiche.
- Vous pouvez éditer un fichier DAD existant ou en créer un nouveau.
Pour éditer une DAD existante :
- Tapez le nom du fichier DAD dans la zone Nom de fichier, ou
cliquez sur ... pour parcourir la liste des
DAD disponibles.
- Vérifiez que l'assistant reconnaît le fichier DAD indiqué.
- Dans l'affirmative, le bouton Suivant devient disponible
et Mappage du noeud RDB d'une collection XML s'affiche dans la zone
Type.
- Dans la négative, vous ne pouvez pas cliquer sur
Suivant. Tapez un autre nom de fichier DAD existant dans la
zone Nom de fichier, ou cliquez sur
... pour parcourir à nouveau la liste des DAD
disponibles. Réessayez jusqu'à ce que le bouton Suivant
devienne disponible.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
Pour créer un fichier DAD :
- Laissez la zone Nom de fichier à blanc.
- Sélectionnez Mappage du noeud RDB d'une collection XM dans le menu
Type.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
- Dans la fenêtre Sélection de la validation, vous pouvez choisir de valider
vos documents XML avec une DTD.
- Cliquez sur Suivant pour ouvrir la fenêtre Spécification de
texte.
- Tapez le nom de prologue dans la zone Prologue de la fenêtre
Spécification de texte.
<?xml version="1.0"?>
Si vous éditez une DAD existante, le prologue s'affiche
automatiquement dans la zone Prologue.
- Dans la zone Doctype de la fenêtre Spécification de texte,
entrez le type du document XML.
Si vous éditez une DAD existante, le type de document s'affiche
automatiquement dans la zone Doctype.
- Cliquez sur Suivant pour ouvrir la fenêtre Mappage RDB.
- Pour sélectionner un noeud d'élément ou d'attribut de départ
pour le mappage, cliquez sur celui-ci dans la zone située à gauche de la
fenêtre Mappage RDB.
Mappez les éléments et les attributs du document XML vers les noeuds
d'éléments et d'attributs correspondant aux données DB2. Ces
noeuds indiquent le chemin des données XML aux données DB2.
- Pour ajouter le noeud racine (root) :
- Sélectionnez l'icône Root.
- Cliquez sur Nouvel élément pour définir un nouveau
noeud.
- Dans la boîte d'options Détails, indiquez
Elément pour Type du noeud.
- Entrez le nom du noeud de niveau supérieur dans la zone Nom du
noeud.
- Cliquez sur Ajout pour créer le noeud.
Vous avez créé le noeud ou l'élément racine, parent de tous les autres
noeuds d'éléments et d'attributs de la mappe. Le noeud racine
comporte des éléments enfants de table et une condition de jointure.
- Ajoutez des noeuds de tables pour chaque table faisant partie de la
collection.
- Mettez le nom de noeud racine en évidence et sélectionnez Nouvel
élément.
- Dans la boîte d'options Détails, indiquez Table
pour Type du noeud.
- Sélectionnez le nom de la table dans la liste Nom de la
table. La table doit déjà exister.
- Cliquez sur Ajout pour ajouter le noeud de table.
- Répétez ces étapes pour chaque table.
- Ajoutez une condition de jointure pour les noeuds de tables.
- Mettez le nom de noeud racine en évidence et sélectionnez Nouvel
élément.
- Dans la boîte d'options Détails, indiquez
Condition pour Type du noeud.
- Dans la zone Condition, entrez la condition de jointure en
respectant la syntaxe suivante :
table_name.table_column = table_name.table_column AND
table_name.table_column = table_name.table_column ...
- Cliquez sur Ajout pour ajouter la condition.
- Pour ajouter un noeud d'élément ou d'attribut :
- Pour ajouter un élément ou un attribut enfant, cliquez sur un noeud parent
dans la zone située à gauche.
- Cliquez sur Nouvel élément. Si vous n'avez
sélectionné aucun noeud parent, l'option Nouvel Elément
n'est pas disponible.
- Sélectionnez un type de noeud dans le menu Type du noeud de la
boîte d'options Détails.
Le menu Type du noeud n'affiche que les types de noeuds
valides pour ce point de la mappe. Elément ou
attribut.
- Renseignez la zone Nom du noeud.
- Cliquez sur Ajout pour ajouter le noeud.
- Pour mapper le contenu d'un noeud d'élément ou
d'attribut vers une table relationnelle :
- Indiquez un noeud de texte.
- Cliquez sur le noeud parent.
- Cliquez sur Nouvel élément.
- Dans la zone Type du noeud, sélectionnez
Texte.
- Sélectionnez Ajout pour ajouter le noeud.
- Ajoutez un noeud de table.
- Sélectionnez le noeud de texte que vous venez de créer et cliquez sur
Nouvel élément.
- Dans la zone Type du noeud, sélectionnez Table et
indiquez un nom de table pour l'élément.
- Cliquez sur Ajout pour ajouter le noeud.
- Ajoutez un noeud de colonne.
- Resélectionnez le noeud de texte et cliquez sur Nouvel
élément.
- Dans la zone Type du noeud, sélectionnez Colonne et
indiquez un nom de colonne pour l'élément.
- Cliquez sur Ajout pour ajouter le noeud.
Restriction : Vous ne pouvez pas créer de colonne à
l'aide de l'assistant d'administration. Si vous indiquez
le type de noeud Colonne, vous ne pouvez sélectionner qu'une colonne
existant déjà dans votre base de données DB2.
- Vous pouvez ajouter une condition pour la colonne.
- Resélectionnez le noeud de texte et cliquez sur Nouvel
élément.
- Dans la zone Type du noeud, sélectionnez Condition
et indiquez une condition en respectant la syntaxe :
operator LIKE|<|>|= value
- Cliquez sur Ajout pour ajouter le noeud.
- Poursuivez l'édition de la mappe RDB, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
- Pour retirer un noeud :
- Cliquez sur un noeud figurant dans la zone située à gauche.
- Cliquez sur Retrait.
- Poursuivez l'édition de la mappe du noeud RDB, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
- Dans la zone Nom de fichier de la fenêtre Spécification
d'une DAD, tapez un nom de fichier de sortie pour la DAD modifiée.
- Cliquez sur Fin pour retirer le noeud et revenir au tableau de
bord.
Le fichier DAD est un fichier XML qui peut être créé avec n'importe
quel éditeur de texte. Les étapes suivantes utilisent des exemples
extraits de l'annexe Fichiers DAD. Pour obtenir de plus amples informations et prendre
connaissance du contexte, reportez-vous à ces exemples.
- Ouvrez un éditeur de texte.
- Créez l'en-tête de la DAD :
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> Chemin et nom de fichier de la DTD
pour la DAD
- Insérez les balises <DAD></DAD>.
- Après la balise <DAD>, indiquez l'ID DTD qui associe le fichier
DAD à la DTD du document XML.
<dtdid>path\dtd_name.dtd> --> Chemin et nom de fichier de la DTD
pour l'application
- Indiquez si vous voulez une validation (avec la DTD pour vérifier que le
document XML est valide). Par exemple :
<validation>NO</validation> --> Indiquez YES ou NO
- A l'aide de l'élément <Xcollection>, définissez la méthode
d'accès et de stockage collection XML. Les méthodes d'accès
et de stockage indiquent que les données XML sont stockées dans une collection
de tables DB2.
<Xcollection>
</Xcollection>
- Ajoutez les informations de prologue suivantes :
<prolog>?xml version="1.0"?</prolog>
Ce texte est obligatoire.
- Ajoutez les balises <doctype></doctype>. Par exemple :
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Définissez le noeud racine à l'aide des balises
<root_node>. Dans root_node, indiquez les éléments et les attributs
qui composent le document XML.
- Mappez les éléments et les attributs du document XML vers les noeuds
d'éléments et d'attributs correspondant aux données DB2. Ces
noeuds indiquent le chemin des données XML aux données DB2.
- Définissez un noeud d'élément racine (root element_node). Ce
noeud d'élément contient :
- un noeud RDB désignant des noeuds de tables associés à une condition de
jointure pour indiquer la collection,
- des éléments enfants,
- des attributs.
Pour indiquer les noeuds de tables et les conditions :
- Créez un élément de noeud RDB. Par exemple :
<RDB_node>
</RDB_node>
- Définissez un noeud de table <table_node> pour chaque table contenant
des données à inclure dans le document XML. Par exemple, soient trois
tables, ORDER_TAB, PART_TAB et SHIP_TAB contenant des données de colonne à
inclure dans le document. Créez un noeud de table pour chacune
d'elles. Par exemple :
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Vous pouvez également indiquer une colonne de clé pour chaque table
lorsque vous préparez l'activation de la collection.
L'attribut key n'est normalement pas obligatoire pour la
composition. Cependant, lorsque vous activez une collection, le fichier
DAD utilisé doit supporter les opérations de composition et de
décomposition. Par exemple :
<RDB_node>
<table name="ORDER_TAB" key="order_key">
<table name="PART_TAB" key="part_key">
<table name="SHIP_TAB" key="date mode">
</RDB_node>
- Définissez une condition de jointure pour les tables de la
collection. La syntaxe est la suivante :
expression = expression AND
expression = expression
Par exemple :
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB">
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
</RDB_node>
- Définissez une balise <element_node> pour chaque élément du document
XML mappant vers une colonne de table DB2. Par exemple :
<element_node name="name">
</element_node>
Un noeud d'élément peut être associé à l'un des types
d'éléments suivants :
- <text_node> : pour indiquer que le contenu de l'élément
mappe vers une table dB2. Cet élément ne comporte aucun élément
enfant.
- <attribute_node> : pour indiquer un attribut. Les noeuds
d'attributs sont définis à l'étape suivante.
Le noeud de texte (text_node) comporte un noeud RDB (<RDB_node>) pour
mapper le contenu de l'élément vers une table et une colonne DB2.
Les noeuds RDB sont utilisés pour des éléments de niveau inférieur dont le
contenu doit être mappé vers une table DB2. Un noeud RDB comporte les
éléments enfants suivants :
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant et indique le type de colonne à l'aide de l'attribut
type.
- <condition> : facultatif, indique une condition sur la
colonne.
Par exemple, un élément XML <Tax> peut mapper vers une colonne TAX
:
Document XML :
<Tax>0.02</Tax>
Dans ce cas, vous voulez stocker la valeur 0,02 dans la
colonne TAX.
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
Dans cet exemple, <RDB_node> indique que la valeur de l'élément
<Tax> est une valeur texte et que les données sont stockées dans la colonne
TAX de la table PART_TAB. Pour consulter des exemples de fichiers DAD
avec mappage du noeud RDB, reportez-vous à la section Fichiers DAD. Pour consulter la DTD du fichier DAD et la syntaxe
complète de ce dernier, reportez-vous à l'Annexe A, DTD de fichier DAD.
- Vous pouvez également ajouter un attribut type à chaque élément
<column> lorsque vous préparez l'activation de la collection.
L'attribut type n'est normalement pas obligatoire pour la
composition. Cependant, lorsque vous activez une collection, le fichier
DAD utilisé doit supporter les opérations de composition et de
décomposition. Par exemple :
<column name="tax" type="real"/>
- Définissez une valeur <attribute_node> pour chaque attribut du document
XML mappant vers une colonne de table DB2. Par exemple :
<attribute_node name="key">
</attribute_node>
Le noeud d'attribut (attribute_node) comporte un noeud RDB
(<RDB_node>) pour mapper la valeur d'attribut vers une table et une
colonne DB2. Un noeud RDB comporte les éléments enfants suivants
:
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant.
- <condition> : facultatif, indique une condition sur la
colonne.
Par exemple, l'élément <Order> peut être associé à un attribut
key. La valeur de key doit être stockée dans la colonne
PART_KEY. Dans le fichier DAD, créez un noeud d'attribut
(<attribute_node>) pour key et indiquez la table dans laquelle la valeur 1
doit être stockée.
Fichier DAD
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
Document XML composé :
<Order key="1">
- Vérifiez que vous avez placé une balise de fin </root_node> après la
dernière balise </element_node>.
- Vérifiez que vous avez placé une balise de fin </Xcollection> après la
dernière balise </root_node>.
- Vérifiez que vous avez placé une balise de fin </DAD> après la balise
</Xcollection>.
Choisissez le mappage du noeud RDB pour décomposer des documents
XML. Cette méthode fait appel à <RDB_node> pour indiquer les tables
DB2, la colonne et les conditions relatives à un noeud d'élément ou
d'attribut. <RDB_node> utilise les éléments suivants :
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant.
- <condition> : facultatif, indique une condition sur la
colonne.
Les éléments enfants utilisés dans <RDB_node> varient en fonction du
contexte du noeud et suivent les règles ci-après :
Type de noeud
| Elément enfant RDB
|
| Table
| Colonne
| Condition1
|
---|
Elément racine
| O
| N
| O
|
Attribut
| O
| O
| Facultatif
|
Texte
| O
| O
| Facultatif
|
(1) Obligatoire avec plusieurs tables
|
Pour créer une DAD de décomposition en mode mappage du noeud RDB,
procédez comme suit :
- Configurez et démarrez l'assistant d'administration. Pour
plus d'informations, reportez-vous à la section Démarrage de l'assistant d'administration.
- A partir du tableau de bord, cliquez sur Utilisation des fichiers
DAD. La fenêtre Spécification d'une DAD
s'affiche.
- Vous pouvez éditer un fichier DAD existant ou en créer un nouveau.
Pour éditer une DAD existante :
- Tapez le nom du fichier DAD dans la zone Nom de fichier, ou
cliquez sur ... pour parcourir la liste des
DAD disponibles.
- Vérifiez que l'assistant reconnaît le fichier DAD indiqué.
- Dans l'affirmative, le bouton Suivant devient disponible
et Mappage du noeud RDB d'une collection XML s'affiche dans la zone
Type.
- Dans la négative, vous ne pouvez pas cliquer sur
Suivant. Tapez un autre nom de fichier DAD existant dans la
zone Nom de fichier, ou cliquez sur
... pour parcourir à nouveau la liste des DAD
disponibles. Réessayez jusqu'à ce que le bouton Suivant
devienne disponible.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
Pour créer un fichier DAD :
- Laissez la zone Nom de fichier à blanc.
- Sélectionnez Mappage du noeud RDB d'une collection XM dans le menu
Type.
- Cliquez sur Suivant pour ouvrir la fenêtre Sélection de la
validation.
- Dans la fenêtre Sélection de la validation, vous pouvez choisir de valider
vos documents XML avec une DTD.
- Cliquez sur Suivant pour ouvrir la fenêtre Spécification de
texte.
- Si vous décomposez uniquement un document XML, ignorez la zone
Prologue. Si vous utilisez le fichier DAD pour des
opérations de composition et de décomposition, tapez le nom de prologue dans
la zone Prologue de la fenêtre Spécification de texte. Le
prologue est facultatif lorsque vous décomposez des documents XML en données
DB2.
<?xml version="1.0"?>
Si vous éditez une DAD existante, le prologue s'affiche
automatiquement dans la zone Prologue.
- Si vous décomposez uniquement un document XML, ignorez la zone
Doctype. Si vous utilisez le fichier DAD pour des opérations
de composition et de décomposition, entrez le type de document XML dans la
zone Doctype.
Si vous éditez une DAD existante, le type de document s'affiche
automatiquement dans la zone Doctype.
- Cliquez sur Suivant pour ouvrir la fenêtre Mappage RDB.
- Pour sélectionner un noeud d'élément ou d'attribut de départ
pour le mappage, cliquez sur celui-ci dans la zone située à gauche de la
fenêtre Mappage RDB.
Mappez les éléments et les attributs du document XML vers les noeuds
d'éléments et d'attributs correspondant aux données DB2. Ces
noeuds indiquent le chemin des données XML aux données DB2.
- Pour ajouter le noeud racine (root) :
- Sélectionnez l'icône Root.
- Cliquez sur Nouvel élément pour définir un nouveau
noeud.
- Dans la boîte d'options Détails, indiquez
Elément pour Type du noeud.
- Entrez le nom du noeud de niveau supérieur dans la zone Nom du
noeud.
- Cliquez sur Ajout pour créer le noeud.
Vous avez créé le noeud ou l'élément racine, parent de tous les autres
noeuds d'éléments et d'attributs de la mappe. Le noeud racine
comporte des éléments enfants de table et une condition de jointure.
- Ajoutez des noeuds de tables pour chaque table faisant partie de la
collection.
- Mettez le nom de noeud racine en évidence et sélectionnez Nouvel
élément.
- Dans la boîte d'options Détails, indiquez Table
pour Type du noeud.
- Sélectionnez le nom de la table dans la liste Nom de la
table. La table doit déjà exister.
- Dans la zone Clé de la table, indiquez une colonne de clé pour
la table.
- Cliquez sur Ajout pour ajouter le noeud de table.
- Répétez ces étapes pour chaque table.
- Ajoutez une condition de jointure pour les noeuds de tables.
- Mettez le nom de noeud racine en évidence et sélectionnez Nouvel
élément.
- Dans la boîte d'options Détails, indiquez
Condition pour Type du noeud.
- Dans la zone Condition, entrez la condition de jointure en
respectant la syntaxe suivante :
table_name.table_column = table_name.table_column AND
table_name.table_column = table_name.table_column ...
- Cliquez sur Ajout pour ajouter la condition.
Vous pouvez à présent lui ajouter des éléments enfants et des
attributs.
- Pour ajouter un noeud d'élément ou d'attribut :
- Pour ajouter un élément ou un attribut enfant, cliquez sur un noeud parent
dans la zone située à gauche.
Si vous n'avez sélectionné aucun noeud parent, l'option
Nouveau n'est pas disponible.
- Cliquez sur Nouvel élément.
- Sélectionnez un type de noeud dans le menu Type du noeud de la
boîte d'options Détails.
Le menu Type du noeud n'affiche que les types de noeuds
valides pour ce point de la mappe. Elément ou
attribut.
- Renseignez la zone Nom du noeud.
- Cliquez sur Ajout pour ajouter le noeud.
- Pour mapper le contenu d'un noeud d'élément ou
d'attribut vers une table relationnelle :
- Indiquez un noeud de texte.
- Cliquez sur le noeud parent.
- Cliquez sur Nouvel élément.
- Dans la zone Type du noeud, sélectionnez
Texte.
- Sélectionnez Ajout pour ajouter le noeud.
- Ajoutez un noeud de table.
- Sélectionnez le noeud de texte que vous venez de créer et cliquez sur
Nouvel élément.
- Dans la zone Type du noeud, sélectionnez Table et
indiquez un nom de table pour l'élément.
- Cliquez sur Ajout pour ajouter le noeud.
- Ajoutez un noeud de colonne.
- Resélectionnez le noeud de texte et cliquez sur Nouvel
élément.
- Dans la zone Type du noeud, sélectionnez Colonne et
indiquez un nom de colonne pour l'élément.
- Dans la zone Type, indiquez le type de base à affecter à la
colonne pour que celle-ci puisse stocker les données non balisées.
- Cliquez sur Ajout pour ajouter le noeud.
Restriction : Vous ne pouvez pas créer de colonne à
l'aide de l'assistant d'administration. Si vous indiquez
le type de noeud Colonne, vous ne pouvez sélectionner qu'une colonne
existant déjà dans votre base de données DB2.
- Vous pouvez ajouter une condition pour la colonne.
- Resélectionnez le noeud de texte et cliquez sur Nouvel
élément.
- Dans la zone Type du noeud, sélectionnez Condition
et indiquez une condition en respectant la syntaxe :
operator LIKE|<|>|= value
- Cliquez sur Ajout pour ajouter le noeud.
Pour modifier un noeud, sélectionnez-le, éditez les zones dans le groupe
d'options Détails, puis cliquez sur
Modification.
- Poursuivez l'édition de la mappe RDB, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
- Pour retirer un noeud :
- Cliquez sur un noeud figurant dans la zone située à gauche.
- Cliquez sur Retrait.
- Poursuivez l'édition de la mappe du noeud RDB, ou cliquez sur
Suivant pour ouvrir la fenêtre Spécification d'une DAD.
- Dans la zone Nom de fichier de la fenêtre Spécification
d'une DAD, tapez un nom de fichier de sortie pour la DAD modifiée.
- Cliquez sur Fin pour retirer le noeud et revenir au tableau de
bord.
Le fichier DAD est un fichier XML qui peut être créé avec n'importe
quel éditeur de texte. Les étapes suivantes utilisent des exemples
extraits de l'annexe Fichiers DAD. Pour obtenir de plus amples informations et prendre
connaissance du contexte, reportez-vous à ces exemples.
- Ouvrez un éditeur de texte.
- Créez l'en-tête de la DAD :
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> Chemin et nom de fichier de la DTD
pour la DAD
- Insérez les balises <DAD></DAD>.
- Après la balise <DAD>, indiquez l'ID DTD qui associe le fichier
DAD à la DTD du document XML.
<dtdid>path\dtd_name.dtd> --> Chemin et nom de fichier de la DTD
pour l'application
- Indiquez si vous voulez une validation (avec la DTD pour vérifier que le
document XML est valide). Par exemple :
<validation>NO</validation> --> Indiquez YES ou NO
- A l'aide de l'élément <Xcollection>, définissez la méthode
d'accès et de stockage collection XML. Les méthodes d'accès
et de stockage indiquent que les données XML sont stockées dans une collection
de tables DB2.
<Xcollection>
</Xcollection>
- Ajoutez les informations de prologue suivantes :
<prolog>?xml version="1.0"?</prolog>
Ce texte est obligatoire.
- Ajoutez les balises <doctype></doctype>. Par exemple :
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Définissez le noeud racine à l'aide des balises
<root_node></root_node>. Dans root_node, indiquez les éléments et
les attributs qui composent le document XML.
- Après la balise <root_node>, mappez les éléments et les attributs du
document XML vers les noeuds d'éléments et d'attributs correspondant
aux données DB2. Ces noeuds indiquent le chemin des données XML aux
données DB2.
- Définissez un noeud d'élément racine de niveau supérieur. Ce
noeud d'élément contient :
- des noeuds de tables associés à une condition de jointure pour indiquer la
collection,
- des éléments enfants,
- des attributs.
Pour indiquer les noeuds de tables et les conditions :
- Créez un élément de noeud RDB. Par exemple :
<RDB_node>
</RDB_node>
- Définissez un noeud de table <table_node> pour chaque table contenant
des données à inclure dans le document XML. Par exemple, soient trois
tables, ORDER_TAB, PART_TAB et SHIP_TAB contenant des données de colonne à
inclure dans le document. Créez un noeud de table pour chacune
d'elles. Par exemple :
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Définissez une condition de jointure pour les tables de la
collection. La syntaxe est la suivante :
expression = expression AND
expression = expression ...
Par exemple :
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB">
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
</RDB_node>
- Indiquez une clé primaire pour chaque table. La clé primaire
correspond à une ou plusieurs colonnes, constituant la clé composée.
Pour indiquer la clé primaire, ajoutez une clé d'attribut à
l'élément table du noeud RDB. L'exemple suivant définit une
clé primaire pour chaque table du noeud RDB, dans l'ordre du noeud
d'élément racine :
<element_node name="Order">
<RDB_node>
<table name="order_tab" key="order_key"/>
<table name="part_tab" key="part_key price"/>
<table name="ship_tab" key="date mode"/>
<condition>
order_tab.order_key = part_tab.order_key AND
part_tab.part_key = ship_tab.part_key
</condition>
<RDB_node>
Les informations de décomposition sont ignorées lors de la composition
d'un document XML.
L'attribut key n'est normalement pas obligatoire pour la
décomposition. Cependant, lorsque vous activez une collection, le
fichier DAD utilisé doit supporter les opérations de composition et de
décomposition.
- Définissez une balise <element_node> pour chaque élément du document
XML mappant vers une colonne de table DB2. Par exemple :
<element_node name="name">
</element_node>
Un noeud d'élément peut être associé à l'un des types
d'éléments suivants :
- <text_node> : pour indiquer que le contenu de l'élément
mappe vers une table dB2. Dans ce cas, cet élément ne comporte aucun
élément enfant.
- <attribute_node> : pour indiquer un attribut. Les noeuds
d'attributs sont définis à l'étape suivante.
- éléments enfants
Le noeud de texte (text_node) comporte un noeud RDB (RDB_node) pour mapper
le contenu de l'élément vers une table et une colonne DB2.
Les noeuds RDB sont utilisés pour des éléments de niveau inférieur dont le
contenu doit être mappé vers une table DB2. Un noeud RDB comporte les
éléments enfants suivants :
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant.
- <condition> : facultatif, indique une condition sur la
colonne.
Par exemple, soit un élément XML <Tax> pour lequel vous voulez stocker
le contenu non balisé dans la colonne TAX :
Document XML :
<Tax>0.02</Tax>
Dans ce cas, vous voulez stocker la valeur 0,02 dans la
colonne TAX.
Dans le fichier DAD, vous indiquez un noeud RDB (<RDB_node>) pour mapper
l'élément XML vers la table et la colonne DB2.
Fichier DAD :
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
<RDB_node> indique que la valeur de l'élément <Tax> est une
valeur texte et que les données sont stockées dans la colonne TAX de la table
PART_TAB.
- Définissez une valeur <attribute_node> pour chaque attribut du document
XML mappant vers une colonne de table DB2. Par exemple :
<attribute_node name="key">
</attribute_node>
Le noeud d'attribut (attribute_node) comporte un noeud RDB (RDB_node)
pour mapper la valeur d'attribut vers une table et une colonne
DB2. Un noeud RDB comporte les éléments enfants suivants :
- <table> : définit la table correspondant à l'élément.
- <column> : définit la colonne qui contient l'élément
correspondant.
- <condition> : facultatif, indique une condition sur la
colonne.
Par exemple, l'élément <Order> peut être associé à un attribut
key. La valeur de key doit être stockée dans la colonne
PART_KEY.
Document XML :
<Order key="1">
Dans le fichier DAD, créez un noeud d'attribut pour key et indiquez
la table dans laquelle la valeur 1 doit être stockée.
Fichier DAD :
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
- Indiquez le type de colonne associé au noeud RDB pour chaque noeud
d'attribut (attribute_node) et noeud de texte (text_node). Ainsi,
vous vous assurez que le type de données est correct pour chaque colonne de
stockage des données non balisées. Pour indiquer le type de colonne,
ajoutez le type d'attribut à l'élément colonne. Dans
l'exemple ci-après, vous attribuez la valeur INTEGER au type de colonne
:
<attribute_node name="key">
<RDB_node>
<table name="order_tab"/>
<column name="order_key" type="integer"/>
</RDB_node>
</attribute_node>
- Vérifiez que vous avez placé une balise de fin </root_node> après la
dernière balise </element_node>.
- Vérifiez que vous avez placé une balise de fin </Xcollection> après la
dernière balise </root_node>.
- Vérifiez que vous avez placé une balise de fin </DAD> après la balise
</Xcollection>.
[ Début de page | Page précédente | Page suivante | Table des matières | Index ]