XML Extender - Gestione e programmazione
L'impostazione delle raccolte XML richiede la creazione di uno schema
di associazione, e facoltativamente l'abilitazione della raccolta con un
nome virtuale, che associa le tabelle DB2 ad un file DAD.
Sebbene l'abilitazione della raccolta XML non sia obbligatoria, essa
fornisce prestazioni ottimizzate.
E' necessario creare un file DAD quando si utilizzano le raccolte
XML. Un file DAD definisce la relazione tra i dati XML e le numerose
tabelle relazionali. XML Extender utilizza il file DAD per:
- Eseguire la composizione di un documento XML dai dati relazionali
- Eseguire la scomposizione di un documento XML nei dati relazionali
E' possibile utilizzare i seguenti metodi per associare i dati delle
tabelle XML e della tabella DB2: associazione SQL e associazione
RDB_node:
- Associazione SQL
- Utilizza un elemento dell'istruzione SQL per specificare
l'interrogazione SQL per le tabelle e le colonne che contengono i dati
XML. L'associazione SQL può essere utilizzata solo per la
composizione dei documenti XML.
- Associazione RDB_node
- Utilizza un elemento univoco XML Extender, un nodo del database
relazionale o un RDB_node, che specifica le tabelle, le colonne, le condizioni
e l'ordine per i dati XML. L'associazione RDB_node supporta
associazioni più complesse rispetto a un'istruzione SQL.
L'associazione RDB_node può essere utilizzata sia per la composizione,
che per la scomposizione dei documenti XML.
Entrambi i metodi di associazione utilizzano il modello di dati
XPath descritto nella sezione File DAD.
- Stabilire una relazione tra le tabelle DB2 e il documento XML.
Questo passo deve includere il metodo di associazione della gerarchia del
documento XML e la specifica del modo in cui i dati del documento vengono
associati a una tabella DB2.
- Se si desidera convalidare i documenti XML, inserire la DTD per il
documento XML che viene composto e scomposto nella tabella di riferimento DTD,
db2xml.DTD_REF.
Utilizzare l'associazione SQL per la composizione dei documenti
XML con SQL.
Eseguire i passi riportati di seguito per creare un file DAD
utilizzando l'associazione SQL delle raccolte XML:
Per creare un file DAD per la composizione utilizzando
l'associazione SQL:
Usare l'associazione SQL per la composizione dei documenti XML quando
si desidera utilizzare un'istruzione SQL per definire la tabella e le
colonne da cui derivano i dati nel documento XML.
- Installare e avviare il wizard di gestione. Per ulteriori dettagli,
consultare Avvio del wizard di gestione.
- Fare clic su Operazioni con i file DAD dalla finestra
LaunchPad. Viene visualizzata la finestra Specificare una DAD.
- Scegliere se editare un file DAD esistente oppure creare un nuovo file
DAD.
Per creare un nuovo file DAD:
- Lasciare il campo Nome file vuoto.
- Dal menu Tipo, selezionare Associazione SQL di raccolta
XML.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
Per editare un file DAD esistente:
- Immettere il nome del file DAD nel campo Nome file oppure fare
clic su ... per selezionare un file DAD
esistente.
- Verificare se il wizard riconosce il file DAD specificato.
- Se il wizard riconosce il file specificato, Avanti è
selezionabile l'associazione SQL di raccolta XML viene visualizzata nel
campo Tipo.
- Se il wizard non riconosce il file DAD specificato, non è possibile
selezionare Avanti. Immettere nuovamente il nome file DAD
oppure fare clic su ... per sfogliare e
selezionare nuovamente un file DAD esistente. Correggere i valori del
campo di immissione fino a quando il pulsante Avanti non risulti
selezionabile.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
- Nella finestra Selezionare convalida, scegliere se convalidare i documenti
XML con una DTD.
- Fare clic su Avanti per aprire la finestra Specificare
testo.
- Immettere il nome prologo nel campo Prologo, per specificare il
prologo del documento XML da creare.
<?xml version="1.0"?>
Se si sta editando una DAD esistente, il prologo viene visualizzato
automaticamente nel campo Prologo.
- Immettere il tipo di documento del documento XML nel campo Tipo di
documento presente nella finestra Specificare testo, indicando la DTD
del documento XML. Ad esempio:
!DOCTYPE DAD SYSTEM "c:\dxx\samples\dtd\getstart.dtd"
Se si sta editando una DAD esistente, il tipo di documento viene
visualizzato automaticamente nel campo Tipo di
documento.
- Fare clic su Avanti per aprire la finestra Specificare
istruzione SQL.
- Immettere un'istruzione SQL SELECT valida nel campo Istruzione
SQL. Ad esempio:
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
Se si sta editando una DAD esistente, l'istruzione SQL viene
visualizzata automaticamente nel campo Istruzione SQL.
- Fare clic su Verificare SQL per verificare la validità
dell'istruzione SQL.
- Se l'istruzione SQL è valida, i risultati di esempio vengono
visualizzati nel campo Risultati di esempio.
- Se l'istruzione SQL non è valida, viene visualizzato un messaggio di
errore nel campo Risultati di esempio. Il messaggio di
errore richiede di correggere l'istruzione SQL SELECT e riprovare.
- Fare clic su Avanti per aprire la finestra Associazione
SQL.
- Selezionare un nodo di elemento o attributo da cui creare
un'associazione facendo clic su di esso nel campo visualizzato a sinistra
della finestra Associazione SQL.
Associare gli elementi ed attributi del documento XML ai nodi di elemento e
attributo che corrispondono ai dati DB2. Questi nodi forniscono un
percorso dai dati XML ai dati DB2.
- Immettere un nome file di output per il file DAD modificato nel campo
Nome file della finestra Specificare una DAD.
- Fare clic su Fine per ritornare alla finestra LaunchPad.
Utilizzare l'associazione SQL per la composizione di un documento XML
con SQL.
Il file DAD è un file XML che può essere creato utilizzando qualsiasi
editor di testo. I seguenti passi illustrano alcuni esempi riportati
nella sezione File DAD. Per ulteriori dettagli, fare riferimento a questi
esempi.
- Aprire un editor di testo.
- Creare l'intestazione DAD:
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
nome file della DTD
per
DAD
- Inserire le tag <DAD></DAD>.
- Dopo la tag <DAD>, specificare l'ID DTD che associa il file DAD
alla DTD del documento XML.
<dtdid>path\dtd_name.dtd> --> il percorso e il nome file della DTD per l'applicazione
- Specificare se si desidera utilizzare una DTD per accertarsi che il
documento XML è un documento valido. Ad esempio:
<validation>NO</validation> --> specificare Sì o No
- Utilizzare l'elemento <Xcollection> per definire il metodo di
memorizzazione e accesso come raccolta XML. I metodi di memorizzazione
e accesso consentono di definire se il contenuto del documento XML deriva dai
dati memorizzati nelle tabelle DB2.
<Xcollection>
</Xcollection>
- Specificare una o più istruzioni SQL per interrogare o inserire i dati
nelle tabelle DB2. Per ulteriori informazioni, consultare la sezione
Requisiti dello schema di associazione. Ad esempio, specificare una singola
interrogazione SQL nel seguente modo:
<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>
- Aggiungere le seguenti informazioni relative al prologo:
<prolog>?xml version="1.0"?</prolog>
E' richiesto il testo esatto.
- Aggiungere le tag <doctype></doctype>. Ad esempio:
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Definire il nodo root utilizzando le tag
<root_node></root_node>. Nella tag root_node, specificare gli
elementi e gli attributi che costituiscono il documento XML.
- Associare gli elementi ed attributi del documento XML ai nodi di elemento
e attributo che corrispondono ai dati DB2. Questi nodi forniscono un
percorso dai dati XML ai dati DB2.
- Definire una tag <element_node> per ciascun elemento del documento XML
che si associa ad una colonna della tabella DB2.
<element_node name="name"></element_node>
element_node può contenere i seguenti nodi:
- attribute_node
- element_node secondario
- text_node
- Definire una tag <attribute_node> per ciascun attributo del documento
XML che si associa ad una colonna della tabella DB2. Fare riferimento
alle DTD di esempio per l'associazione SQL, riportate all'inizio di
questa sezione, e alla DTD per il file DAD descritta nella sezione Appendice A, DTD per il file DAD, che fornisce la sintassi completa per il file DAD.
Ad esempio, è richiesta una chiave attributo per l'elemento
<Order>. Il valore della chiave viene memorizzato in una colonna
PART_KEY.
File DAD: Nel file DAD, creare un nodo di attributo per la
chiave e indicare la tabella in cui verrà memorizzato il valore 1.
<attribute_node name="key">
<column name="part_key"/>
</attribute_node>
Documento XML composto: Il valore della chiave viene
richiamato dalla colonna PART_KEY.
<Order key="1">
- Definire una tag <text_node> per ogni elemento o attributo il cui
contenuto deriva da una tabella DB2. L'elemento <column> del
nodo testo specifica la colonna che fornisce il contenuto.
Ad esempio, è possibile specificare un elemento XML <Tax> con un valore
che verrà richiamato da una colonna denominata TAX:
Elemento DAD:
<element_node name="Tax">
<text_node>
<column name="tax"/>
</text_node>
</element_node>
Il nome colonna deve essere incluso nell'istruzione SQL
all'inizio del file DAD.
Documento XML composto:
<Tax>0.02</Tax>
Il valore 0.02 verrà richiamato dalla colonna
TAX.
- Verificare se viene posizionata una tag </root_node> dopo l'ultima
tag </element_node>.
- Verificare se viene posizionata una tag </Xcollection> dopo la tag
</root_node>.
- Verificare se viene posizionata una tag </DAD> dopo la tag
</Xcollection>.
Utilizzare l'associazione RDB_node per la composizione dei
documenti XML.
Questo metodo utilizza la tag <RDB_node> per specificare le tabelle DB2,
le colonne e le condizioni per un nodo di attributo o elemento.
<RDB_node> utilizza i seguenti elementi:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente
- <condition>: specifica facoltativamente una condizione per la
colonna
Gli elementi secondari utilizzati nella tag <RDB_node> dipendono dal
contesto del nodo e rispettano le seguenti regole:
Se il tipo di nodo è:
| Viene utilizzato l'elemento secondario RDB:
|
| Tabella
| Colonna
| Condizione1
|
---|
Elemento root
| Y
| S
| Y
|
Attributo
| Y
| Y
| facoltativa
|
Testo
| Y
| Y
| facoltativa
|
(1) Condizione obbligatoria con più tabelle
|
Per creare una DAD per la composizione utilizzando l'associazione
RDB_node:
- Installare e avviare il wizard di gestione. Per ulteriori dettagli,
consultare Avvio del wizard di gestione.
- Fare clic su Operazioni con i file DAD dalla finestra
LaunchPad. Viene visualizzata la finestra Specificare una DAD.
- Scegliere se editare un file DAD esistente oppure creare un nuovo file
DAD.
Per editare un file DAD esistente:
- Immettere il nome del file DAD nel campo Nome file oppure fare
clic su ... per selezionare un file DAD
esistente.
- Verificare se il wizard riconosce il file DAD specificato.
- Se il wizard riconosce il file DAD specificato, Avanti è
selezionabile e l'associazione RDB_node di raccolta XML è visualizzata
nel campo Tipo.
- Se il wizard non riconosce il file DAD specificato, non è possibile
selezionare Avanti. Immettere nuovamente il nome del file
DAD nel campo Nome file oppure fare clic su
... per selezionare un file DAD
esistente. Continuare questi passi fino a quando Avanti
diventa selezionabile.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
Per creare una nuova DAD:
- Lasciare il campo Nome file vuoto.
- Selezionare Associazione RDB_node di raccolta XML dal menu
Tipo.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
- Nella finestra Selezionare convalida, scegliere se convalidare i documenti
XML con una DTD.
- Fare clic su Avanti per aprire la finestra Specificare
testo.
- Immettere il nome prologo nel campo Prologo della finestra
Specificare testo.
<?xml version="1.0"?>
Se si sta editando una DAD esistente, il prologo viene visualizzato
automaticamente nel campo Prologo.
- Immettere il tipo di documento XML nel campo Tipo di documento
presente nella finestra Specificare testo.
Se si sta editando una DAD esistente, il tipo di documento viene
visualizzato automaticamente nel campo Tipo di documento.
- Fare clic su Avanti per aprire la finestra Associazione
RDB.
- Selezionare un nodo di attributo o elemento da cui creare
un'associazione facendo clic su di esso nel campo visualizzato a sinistra
della finestra Associazione RDB.
Associare gli elementi ed attributi del documento XML ai nodi di elemento e
attributo che corrispondono ai dati DB2. Questi nodi forniscono un
percorso dai dati XML ai dati DB2.
- Per aggiungere il nodo root:
- Selezionare l'icona Root.
- Fare clic su Nuovo elemento per definire un nuovo nodo.
- Nella casella Dettagli specificare Tipo nodo come
Elemento.
- Immettere il nome del nodo di livello superiore nel campo Nome
nodo.
- Fare clic su Aggiungere per creare il nuovo nodo.
E' stato creato un elemento o nodo root, che è principale rispetto a
tutti gli altri nodi di attributo ed elemento nella struttura
dell'associazione. Il nodo root ha elementi secondari di tabella e
una condizione di collegamento.
- Aggiungere nodi di tabella per ciascuna tabella appartenente alla
raccolta.
- Evidenziare il nome nodo root e selezionare Nuovo
elemento.
- Nella casella Dettagli specificare Tipo nodo come
Tabella.
- Selezionare il nome della tabella dall'elenco Nome
tabella. La tabella deve essere già presente.
- Fare clic su Aggiungere per aggiungere il nodo di
tabella.
- Ripetere questi passi per ciascuna tabella.
- Aggiungere una condizione di collegamento per i nodi di tabella.
- Evidenziare il nome nodo root e selezionare Nuovo
elemento.
- Nella casella Dettagli specificare Tipo nodo come
Condizione.
- Nel campo Condizione immettere la condizione di collegamento
utilizzando la sintassi riportata di seguito:.
table_name.table_column = table_name.table_column AND
table_name.table_column = table_name.table_column ...
- Fare clic su Aggiungere per aggiungere la condizione.
- Per aggiungere un nodo di attributo o elemento:
- Per aggiungere un attributo o elemento secondario, fare clic su un nodo
principale nel campo visualizzato a sinistra.
- Fare clic su Nuovo elemento. Se non è stato selezionato
un nodo principale, Nuovo elemento non è selezionabile.
- Selezionare un tipo di nodo dal menu Tipo nodo nella casella
Dettagli.
Nel menu Tipo nodo vengono visualizzati solo i tipi di nodo
validi in questo punto del processo di associazione.
Elemento o Attributo.
- Specificare un nome nodo nel campo Nome nodo.
- Fare clic su Aggiungere per aggiungere il nuovo nodo.
- Per associare il contenuto di un nodo di attributo o elemento ad una
tabella relazionale:
- Specificare un nodo di testo.
- Fare clic sul nodo secondario.
- Fare clic su Nuovo elemento.
- Nel campo Tipo nodo selezionare Testo.
- Selezionare Aggiungere per aggiungere il nodo.
- Aggiungere un nodo di tabella.
- Selezionare il nodo creato e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Tabella e
specificare un nome tabella per l'elemento.
- Fare clic su Aggiungere per aggiungere il nodo.
- Aggiungere un nodo di colonna.
- Selezionare nuovamente il nodo di testo e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Colonna e
specificare un nome colonna per l'elemento.
- Fare clic su Aggiungere per aggiungere il nodo.
Limitazione: Non è possibile creare nuove colonne
utilizzando il wizard di gestione. Se si specifica Colonna come tipo di
nodo, è possibile selezionare solo una colonna già esistente nel database
DB2.
- Facoltativamente, aggiungere una condizione per la colonna.
- Selezionare nuovamente il nodo di testo e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Condizione e la
condizione con la seguente sintassi:
operator LIKE|<|>|= value
- Fare clic su Aggiungere per aggiungere il nodo.
- Continuare ad editare l'associazione RDB oppure fare clic su
Avanti per aprire la finestra Specificare una DAD.
- Per eliminare un nodo:
- Fare clic su un nodo nel campo visualizzato a sinistra.
- Fare clic su Eliminare.
- Continuare ad editare l'associazione RDB_node oppure fare clic su
Avanti per aprire la finestra Specificare una DAD.
- Immettere un nome file di output per la DAD modificata nel campo Nome
file della finestra Specificare una DAD.
- Fare clic su Fine per eliminare il nodo e ritornare alla
finestra LaunchPad.
Il file DAD è un file XML che può essere creato utilizzando qualsiasi
editor di testo. I seguenti passi illustrano alcuni esempi riportati
nella sezione File DAD. Per ulteriori dettagli, fare riferimento a questi
esempi.
- Aprire un editor di testo.
- Creare l'intestazione DAD:
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
nome file della DTD
per
DAD
- Inserire le tag <DAD></DAD>.
- Dopo la tag <DAD>, specificare l'ID DTD che associa il file DAD
alla DTD del documento XML.
<dtdid>path\dtd_name.dtd>
--> il percorso e il nome file della DTD per l'applicazione
- Specificare se si desidera utilizzare una DTD per accertarsi che il
documento XML è un documento valido. Ad esempio:
<validation>NO</validation> --> specificare Sì o No
- Utilizzare l'elemento <Xcollection> per definire il metodo di
memorizzazione e accesso come raccolta XML. I metodi di memorizzazione
e accesso consentono di definire se i dati XML sono memorizzati in una
raccolta delle tabelle DB2.
<Xcollection>
</Xcollection>
- Aggiungere le seguenti informazioni relative al prologo:
<prolog>?xml version="1.0"?</prolog>
E' richiesto il testo esatto.
- Aggiungere le tag <doctype></doctype>. Ad esempio:
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Definire il nodo root utilizzando la tag <root_node>. Nella tag
root_node, specificare gli elementi e gli attributi che costituiscono il
documento XML.
- Associare gli elementi ed attributi del documento XML ai nodi di elemento
e attributo che corrispondono ai dati DB2. Questi nodi forniscono un
percorso dai dati XML ai dati DB2.
- Definire un elemento element_node. Questo element_node
contiene:
- RDB_node che definisce table_node con una condizione di collegamento per
specificare la raccolta
- Elementi secondari
- Attributi
Per specificare i nodi di tabella e le condizioni:
- Creare un elemento RDB_node. Ad esempio:
<RDB_node>
</RDB_node>
- Definire un <table_node> per ogni tabella contenente i dati da
includere nel documento XML. Ad esempio, se vi sono tre tabelle,
ORDER_TAB, PART_TAB e SHIP_TAB, contenenti dati colonna da inserire nel
documento, creare un nodo per ciascuna tabella. Ad esempio:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Facoltativamente, specificare una colonna chiave per ciascuna tabella
quando si pianifica l'abilitazione di questa raccolta.
L'attributo chiave non è obbligatorio per la composizione; tuttavia,
quando si abilita una raccolta, il file DAD utilizzato deve supportare la
composizione e la scomposizione. Ad esempio:
<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>
- Definire una condizione di collegamento per le tabelle nella
raccolta. La sintassi è:
expression = expression AND
expression = expression
Ad esempio:
<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>
- Definire una tag <element_node> per ciascun elemento del documento XML
che si associa ad una colonna della tabella DB2. Ad esempio:
<element_node name="name">
</element_node>
Un nodo di elemento può disporre di uno dei seguenti tipi di
elemento:
- <text_node>: per specificare che il contenuto dell'elemento
è associato a una tabella DB2; l'elemento non presenta elementi
secondari
- <attribute_node>: per specificare un attributo. I nodi
dell'attributo vengono definiti nel passo successivo.
L'elemento text_node contiene un <RDB_node> il cui contenuto deve
essere associato a una tabella DB2 e a un nome colonna.
Gli RDB_node vengono utilizzati per gli elementi di livello inferiore il
cui contenuto deve essere associato a una tabella DB2. RDB_node
presenta i seguenti elementi secondari:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente e specifica il tipo di colonna come attributo
- <condition>: specifica facoltativamente una condizione per la
colonna
Ad esempio, è possibile specificare un elemento XML <Tax> che viene
associato a una colonna denominata TAX:
Documento XML:
<Tax>0.02</Tax>
In tal caso, il valore 0.02 deve essere un valore della
colonna TAX.
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
In questo esempio, <RDB_node> specifica che il valore
dell'elemento <Tax> è un valore di testo e che i dati vengono
memorizzati nella colonna TAX della tabella PART_TAB.Fare riferimento
ai file DAD di esempio illustrati nella sezione File DAD per l'associazione RDB_node e alla DTD per il file DAD
descritta nella sezione Appendice A, DTD per il file DAD, che fornisce la sintassi corretta per il file DAD.
- Facoltativamente, aggiungere un attributo tipo a ciascun elemento
<column> quando si pianifica l'abilitazione di questa raccolta.
L'attributo tipo non è obbligatorio per la composizione; tuttavia,
quando si abilita una raccolta, il file DAD utilizzato deve supportare la
composizione e la scomposizione. Ad esempio:
<column name="tax" type="real"/>
- Definire una tag <attribute_node> per ciascun attributo del documento
XML che si associa ad una colonna della tabella DB2. Ad esempio:
<attribute_node name="key">
</attribute_node>
L'elemento attribute_node utilizza un <RDB_node> per associare il
valore dell'attributo a una colonna o tabella DB2. <RDB_node>
presenta i seguenti elementi secondari:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente
- <condition>: specifica facoltativamente una condizione per la
colonna
Ad esempio, è richiesto un attributo key per l'elemento
<Order>. Il valore della chiave deve essere memorizzato in una
colonna PART_KEY. Nel file DAD, creare un elemento <attribute_node>
per la chiave e indicare la tabella in cui verrà memorizzato il valore.
File DAD
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
Documento XML composto:
<Order key="1">
- Verificare se viene posizionata una tag </root_node> dopo l'ultima
tag </element_node>.
- Verificare se viene posizionata una tag </Xcollection> dopo la tag
</root_node>.
- Verificare se viene posizionata una tag </DAD> dopo la tag
</Xcollection>.
Utilizzare l'associazione RDB_node per eseguire la scomposizione
dei documenti XML. Questo metodo utilizza la tag <RDB_node> per
specificare le tabelle DB2, le colonne e le condizioni per un nodo di
attributo o elemento. <RDB_node> utilizza i seguenti elementi:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente
- <condition>: specifica facoltativamente una condizione per la
colonna
Gli elementi secondari utilizzati nella tag <RDB_node> dipendono dal
contesto del nodo e rispettano le seguenti regole:
Se il tipo di nodo è:
| Viene utilizzato l'elemento secondario RDB:
|
| Tabella
| Colonna
| Condizione1
|
---|
Elemento root
| Y
| S
| Y
|
Attributo
| Y
| Y
| facoltativa
|
Testo
| Y
| Y
| facoltativa
|
(1) Condizione obbligatoria con più tabelle
|
Per creare una DAD per la scomposizione:
- Installare e avviare il wizard di gestione. Per ulteriori dettagli,
consultare Avvio del wizard di gestione.
- Fare clic su Operazioni con i file DAD dalla finestra
LaunchPad. Viene visualizzata la finestra Specificare una DAD.
- Scegliere se editare un file DAD esistente oppure creare un nuovo file
DAD.
Per editare un file DAD esistente:
- Immettere il nome del file DAD nel campo Nome file oppure fare
clic su ... per selezionare un file DAD
esistente.
- Verificare se il wizard riconosce il file DAD specificato.
- Se il wizard riconosce il file DAD specificato, Avanti è
selezionabile e l'associazione RDB_node di raccolta XML è visualizzata
nel campo Tipo.
- Se il wizard non riconosce il file DAD specificato, non è possibile
selezionare Avanti. Immettere nuovamente il nome del file
DAD nel campo Nome file oppure fare clic su
... per selezionare un file DAD
esistente. Continuare questi passi fino a quando Avanti
diventa selezionabile.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
Per creare una nuova DAD:
- Lasciare il campo Nome file vuoto.
- Selezionare Associazione RDB_node di raccolta XML dal menu
Tipo.
- Fare clic su Avanti per aprire la finestra Selezionare
convalida.
- Nella finestra Selezionare convalida, scegliere se convalidare i documenti
XML con una DTD.
- Fare clic su Avanti per aprire la finestra Specificare
testo.
- Se si sta eliminando solo un documento XML, ignorare il campo
Prologo. Se si sta utilizzando il file DAD sia per la
creazione che per l'eliminazione, immettere il nome prologo nel campo
Prologo della finestra Specificare testo. Il prologo non è
richiesto se si stanno eliminando documenti XML all'interno dei dati
DB2.
<?xml version="1.0"?>
Se si sta editando una DAD esistente, il prologo viene visualizzato
automaticamente nel campo Prologo.
- Se si sta eliminando solo un documento XML, ignorare il campo Tipo di
documento. se si sta utilizzando il file DAD sia per la creazione
che per l'eliminazione, immettere il tipo di documento del documento XML
nel campo Tipo di documento.
Se si sta editando una DAD esistente, il tipo di documento viene
visualizzato automaticamente nel campo Tipo di documento.
- Fare clic su Avanti per aprire la finestra Associazione
RDB.
- Selezionare un nodo di attributo o elemento da cui creare
un'associazione facendo clic su di esso nel campo visualizzato a sinistra
della finestra Associazione RDB.
Associare gli elementi ed attributi del documento XML ai nodi di elemento e
attributo che corrispondono ai dati DB2. Questi nodi forniscono un
percorso dai dati XML ai dati DB2.
- Per aggiungere il nodo root:
- Selezionare l'icona Root.
- Fare clic su Nuovo elemento per definire un nuovo nodo.
- Nella casella Dettagli specificare Tipo nodo come
Elemento.
- Immettere il nome del nodo di livello superiore nel campo Nome
nodo.
- Fare clic su Aggiungere per creare il nuovo nodo.
E' stato creato un elemento o nodo root, che è principale rispetto a
tutti gli altri nodi di attributo ed elemento nella struttura
dell'associazione. Il nodo root ha elementi secondari di tabella e
una condizione di collegamento.
- Aggiungere nodi di tabella per ciascuna tabella appartenente alla
raccolta.
- Evidenziare il nome nodo root e selezionare Nuovo
elemento.
- Nella casella Dettagli specificare Tipo nodo come
Tabella.
- Selezionare il nome della tabella dall'elenco Nome
tabella. La tabella deve essere già presente.
- Specificare una colonna chiave per la tabella nel campo Chiave
tabella.
- Fare clic su Aggiungere per aggiungere il nodo di
tabella.
- Ripetere questi passi per ciascuna tabella.
- Aggiungere una condizione di collegamento per i nodi di tabella.
- Evidenziare il nome nodo root e selezionare Nuovo
elemento.
- Nella casella Dettagli specificare Tipo nodo come
Condizione.
- Nel campo Condizione immettere la condizione di collegamento
utilizzando la sintassi riportata di seguito:.
table_name.table_column = table_name.table_column AND
table_name.table_column = table_name.table_column ...
- Fare clic su Aggiungere per aggiungere la condizione.
Adesso è possibile aggiungere attributi ed elementi secondari a questo
nodo.
- Per aggiungere un nodo di attributo o elemento:
- Per aggiungere un attributo o elemento secondario, fare clic su un nodo
principale nel campo visualizzato a sinistra.
Se non è stato selezionato un nodo principale, Nuovo non è
selezionabile.
- Fare clic su Nuovo elemento.
- Selezionare un tipo di nodo dal menu Tipo nodo nella casella
Dettagli.
Nel menu Tipo nodo vengono visualizzati solo i tipi di nodo
validi in questo punto del processo di associazione.
Elemento o Attributo.
- Specificare un nome nodo nel campo Nome nodo.
- Fare clic su Aggiungere per aggiungere il nuovo nodo.
- Per associare il contenuto di un nodo di attributo o elemento ad una
tabella relazionale:
- Specificare un nodo di testo.
- Fare clic sul nodo secondario.
- Fare clic su Nuovo elemento.
- Nel campo Tipo nodo selezionare Testo.
- Selezionare Aggiungere per aggiungere il nodo.
- Aggiungere un nodo di tabella.
- Selezionare il nodo creato e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Tabella e
specificare un nome tabella per l'elemento.
- Fare clic su Aggiungere per aggiungere il nodo.
- Aggiungere un nodo di colonna.
- Selezionare nuovamente il nodo di testo e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Colonna e
specificare un nome colonna per l'elemento.
- Specificare un tipo di dati base per la colonna nel campo Tipo,
per specificare di quale tipo deve essere la colonna in cui vengono
memorizzati i dati non provvisti di tag.
- Fare clic su Aggiungere per aggiungere il nodo.
Limitazione: Non è possibile creare nuove colonne
utilizzando il wizard di gestione. Se si specifica Colonna come tipo di
nodo, è possibile selezionare solo una colonna già esistente nel database
DB2.
- Facoltativamente, aggiungere una condizione per la colonna.
- Selezionare nuovamente il nodo di testo e fare clic su Nuovo
elemento.
- Nel campo Tipo nodo selezionare Condizione e la
condizione con la seguente sintassi:
operator LIKE|<|>|= value
- Fare clic su Aggiungere per aggiungere il nodo.
E' possibile modificare questi nodi selezionando il nodo, modificando
i campi della casella Dettagli e facendo clic su
Modificare.
- Continuare ad editare l'associazione RDB oppure fare clic su
Avanti per aprire la finestra Specificare una DAD.
- Per eliminare un nodo:
- Fare clic su un nodo nel campo visualizzato a sinistra.
- Fare clic su Eliminare.
- Continuare ad editare l'associazione RDB_node oppure fare clic su
Avanti per aprire la finestra Specificare una DAD.
- Immettere un nome file di output per la DAD modificata nel campo Nome
file della finestra Specificare una DAD.
- Fare clic su Fine per eliminare il nodo e ritornare alla
finestra LaunchPad.
Il file DAD è un file XML che può essere creato utilizzando qualsiasi
editor di testo. I seguenti passi illustrano alcuni esempi riportati
nella sezione File DAD. Per ulteriori dettagli, fare riferimento a questi
esempi.
- Aprire un editor di testo.
- Creare l'intestazione DAD:
<?xml version="1.0"?>
<!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
nome file della DTD
per
DAD
- Inserire le tag <DAD></DAD>.
- Dopo la tag <DAD>, specificare l'ID DTD che associa il file DAD
alla DTD del documento XML.
<dtdid>path\dtd_name.dtd> --> il percorso e il
nome file della DTD per l'applicazione
- Specificare se si desidera utilizzare una DTD per accertarsi che il
documento XML è un documento valido. Ad esempio:
<validation>NO</validation> --> specificare Sì o No
- Utilizzare l'elemento <Xcollection> per definire il metodo di
memorizzazione e accesso come raccolta XML. I metodi di memorizzazione
e accesso consentono di definire se i dati XML sono memorizzati in una
raccolta delle tabelle DB2.
<Xcollection>
</Xcollection>
- Aggiungere le seguenti informazioni relative al prologo:
<prolog>?xml version="1.0"?</prolog>
E' richiesto il testo esatto.
- Aggiungere le tag <doctype></doctype>. Ad esempio:
<doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype>
- Definire root_node utilizzando le tag
<root_node></root_node>. Nella tag root_node, specificare gli
elementi e gli attributi che costituiscono il documento XML.
- Dopo la tag <root_node>, associare gli elementi e gli attributi nel
documento XML ai nodi degli elementi e attributi che corrispondono ai dati
DB2. Questi nodi forniscono un percorso dai dati XML ai dati
DB2.
- Definire un element_node root di livello superiore. Questo
element_node contiene:
- Nodi di tabella con una condizione di collegamento per specificare la
raccolta.
- Elementi secondari
- Attributi
Per specificare i nodi di tabella e le condizioni:
- Creare un elemento RDB_node. Ad esempio:
<RDB_node>
</RDB_node>
- Definire un <table_node> per ogni tabella contenente i dati da
includere nel documento XML. Ad esempio, se vi sono tre tabelle,
ORDER_TAB, PART_TAB e SHIP_TAB, contenenti dati colonna da inserire nel
documento, creare un nodo per ciascuna tabella. Ad esempio:
<RDB_node>
<table name="ORDER_TAB">
<table name="PART_TAB">
<table name="SHIP_TAB"></RDB_node>
- Definire una condizione di collegamento per le tabelle nella
raccolta. La sintassi è:
expression = expression AND
expression = expression ...
Ad esempio:
<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>
- Specificare una chiave primaria per ogni tabella. La chiave
primaria è costituita da una o più colonne denominate chiavi composte.
Per specificare la chiave primaria, aggiungere una chiave di attributo
all'elemento tabella di RDB_node. Il seguente esempio definisce
una chiave primaria per ogni tabella in RDB_node di element_node root,
Order:
<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>
Le informazioni specificate per la scomposizione vengono ignorate
durante la composizione di un documento XML.
L'attributo chiave è obbligatorio per la scomposizione e per
l'abilitazione di una raccolta in quanto il file DAD utilizzato deve
supportare la composizione e la scomposizione.
- Definire una tag <element_node> per ciascun elemento del documento XML
che si associa ad una colonna della tabella DB2. Ad esempio:
<element_node name="name">
</element_node>
Un nodo di elemento può disporre di uno dei seguenti tipi di
elemento:
- <text_node>: per specificare che il contenuto dell'elemento
è associato a una tabella DB2; l'elemento non presenta elementi
secondari.
- <attribute_node>: per specificare un attributo; i nodi
dell'attributo vengono definiti nel passo successivo.
- Elementi secondari
L'elemento text_node contiene un RDB_node il cui contenuto deve
essere associato a una tabella DB2 e a un nome colonna.
Gli RDB_node vengono utilizzati per gli elementi di livello inferiore il
cui contenuto deve essere associato a una tabella DB2. RDB_node
presenta i seguenti elementi secondari:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente
- <condition>: specifica facoltativamente una condizione per la
colonna
Ad esempio, è possibile specificare un elemento XML <Tax> per il quale
si desidera memorizzare il contenuto senza tag in una colonna denominata
TAX:
Documento XML:
<Tax>0.02</Tax>
In tal caso, il valore 0.02 deve essere memorizzato
nella colonna TAX.
Nel file DAD, specificare un <RDB_node> per associare l'elemento
XML alla tabella o colonna DB2.
File DAD:
<element_node name="Tax">
<text_node>
<RDB_node>
<table name="part_tab"/>
<column name="tax"/>
</RDB_node>
</text_node>
</element_node>
<RDB_node> specifica che il valore dell'elemento <Tax> è un
valore di testo e che i dati vengono memorizzati nella colonna TAX della
tabella PART_TAB.
- Definire una tag <attribute_node> per ciascun attributo del documento
XML che si associa ad una colonna della tabella DB2. Ad esempio:
<attribute_node name="key">
</attribute_node>
L'elemento attribute_node utilizza un RDB_node per associare il valore
dell'attributo a una colonna o tabella DB2. RDB_node presenta i
seguenti elementi secondari:
- <table>: definisce la tabella corrispondente all'elemento
- <column>: definisce la colonna contenente l'elemento
corrispondente
- <condition>: specifica facoltativamente una condizione per la
colonna
Ad esempio, è richiesta una chiave attributo per l'elemento
<Order>. Il valore della chiave deve essere memorizzato in una
colonna PART_KEY.
Documento XML:
<Order key="1">
Nel file DAD, creare un elemento attribute_node per la chiave e indicare
la tabella in cui verrà memorizzato il valore 1.
File DAD:
<attribute_node name="key">
<RDB_node>
<table name="part_tab">
<column name="part_key"/>
<RDB_node>
</attribute_node>
- Specificare il tipo di colonna per RDB_node per ogni attribute_node e
text_node. Sarà così garantito l'utilizzo del tipo di dati
corretto per ogni colonna in cui verranno memorizzati i dati senza tag.
Per specificare i tipi di colonna, aggiungere il tipo di attributo
all'elemento colonna. Nel seguente esempio il tipo di colonna
viene definito come INTEGER:
<attribute_node name="key">
<RDB_node>
<table name="order_tab"/>
<column name="order_key" type="integer"/>
</RDB_node>
</attribute_node>
- Verificare se viene posizionata una tag </root_node> dopo l'ultima
tag </element_node>.
- Verificare se viene posizionata una tag </Xcollection> dopo la tag
</root_node>.
- Verificare se viene posizionata una tag </DAD> dopo la tag
</Xcollection>.
L'abilitazione di una raccolta XML analizza il file DAD per
identificare le tabella e le colonne relative ai documenti XML e registra le
informazioni di controllo nella tabella XML_USAGE. L'abilitazione
di una raccolta XML è facoltativa per:
- la scomposizione di un documento XML e la memorizzazione dei dati in nuove
tabelle
- la composizione di un documento XML utilizzando i dati esistenti di più
tabelle.
Se viene utilizzato lo stesso file DAD per la composizione e la
scomposizione, è possibile abilitare la raccolta per entrambe le
operazioni.
E' possibile abilitare una raccolta XML tramite il wizard di gestione
XML Extender, utilizzando il comando dxxadm con l'opzione
enable_collection o la procedura memorizzata XML Extender,
dxxEnableCollection().
Eseguire i passi riportati di seguito per abilitare una raccolta XML:
- Installare e avviare il wizard di gestione. Per ulteriori dettagli,
consultare Avvio del wizard di gestione.
- Fare clic su Operazioni con le raccolte XML dalla finestra
LaunchPad. Viene visualizzata la finestra Selezionare
un'attività.
- Fare clic su Abilitare una raccolta e quindi su
Avanti. Viene visualizzata la finestra Abilitare una
raccolta.
- Selezionare il nome della raccolta che si desidera abilitare nel campo
Nome colonna dal menu a discesa.
- Immettere il nome del file DAD nel campo Nome file DAD oppure
fare clic su ... per selezionare un file DAD
esistente.
- Facoltativamente, immettere il nome di un table space precedentemente
creato nel campo Table space.
Il table space conterrà le nuove tabelle DB2 generate per
l'eliminazione.
- Fare clic su Fine per abilitare la raccolta e ritornare alla
finestra LaunchPad.
- Se la raccolta è stata abilitata con esito positivo, viene visualizzato un
messaggio Abilitazione raccolta terminata con esito
positivo.
- Se la raccolta non è stata abilitata con esito positivo, viene
visualizzato un messaggio di errore. Continuare i passi precedenti fino
a quando la raccolta è abilitata con esito positivo.
Per abilitare una raccolta XML, immettere il comando
dxxadm:
Sintassi:
dxxadm enable_collection |
---|
>>-dxxadm---enable_collection---dbName---raccolta---DAD_file---->
>-----+-----------------+--------------------------------------><
'--t--tablespace--'
|
Parametri:
- dbName
- Il nome del database.
- raccolta
- Il nome della raccolta XML. Questo valore viene utilizzato come
parametro per le procedure memorizzate della raccolta XML.
- DAD_file
- Il nome del file che contiene la DAD (document access definition).
- tablespace
- Un table space esistente che contiene nuove tabelle DB2 generate per la
scomposizione. Se non viene specificato, viene utilizzato il table
space predefinito.
Esempio: Il seguente esempio consente di abilitare una
raccolta, denominata sales_ord nel database SALES_DB, utilizzando la shell dei
comandi DB2. Il file DAD utilizza l'associazione SQL e viene
descritto nella sezione File DAD: raccolta XML - associazione SQL.
dxxadm enable_collection SALES_DB sales_ord getstart.dad
Dopo aver abilitato la raccolta XML, è possibile comporre o scomporre i
documenti XML utilizzando le procedure memorizzate XML Extender.
La disabilitazione di una raccolta XML, elimina il record nella tabella
XML_USAGE che identifica le tabelle e le colonne come parte di una
raccolta. Le tabelle di dati non vengono cancellate.
Disabilitare la raccolta se si desidera aggiornare la DAD o cancellare una
raccolta.
E' possibile disabilitare una raccolta XML tramite il wizard di
gestione XML Extender, utilizzando il comando dxxadm con
l'opzione disable_collection o la procedura memorizzata XML Extender,
dxxDisableCollection().
Eseguire i passi riportati di seguito per disabilitare una raccolta
XML:
- Installare e avviare il wizard di gestione. Per ulteriori dettagli,
consultare Avvio del wizard di gestione.
- Fare clic su Operazioni con le raccolte XML dalla finestra
LaunchPad per visualizzare le attività relative alle raccolte XML
Extender. Viene visualizzata la finestra Selezionare
un'attività.
- Fare clic su Disabilitare una raccolta XML e quindi su
Avanti per disabilitare una raccolta XML. Viene visualizzata
la finestra Disabilitare una raccolta.
- Immettere il nome della raccolta che si desidera disabilitare nel campo
Nome raccolta.
- Fare clic su Fine per disabilitare la raccolta e ritornare alla
finestra LaunchPad.
- Se la raccolta è stata disabilitata con esito positivo, viene visualizzato
un messaggio Disabilitazione raccolta terminata con esito
positivo.
- Se la raccolta non è stata disabilitata con esito positivo, viene
visualizzata una casella di errore. Continuare i passi precedenti fino
a quando la raccolta è disabilitata con esito positivo.
Per disabilitare una raccolta XML, immettere il comando
dxxadm:
Sintassi:
dxxadm disable_collection |
---|
>>-dxxadm---disable_collection---dbName---raccolta-------------><
|
Parametri:
- dbName
- Il nome del database.
- raccolta
- Il nome della raccolta XML. Questo valore viene utilizzato come
parametro per le procedure memorizzate della raccolta XML.
Esempio:
dxxadm disable_collection SALES_DB sales_ord
[ Inizio pagina | Pagina precedente | Pagina successiva | Indice | Indice analitico ]