Manuali IBM

XML Extender - Gestione e programmazione


Operazioni con le raccolte XML

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.

Creazione o editazione del file DAD per lo schema di associazione

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:

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.

Informazioni preliminari

Composizione dei documenti XML con l'associazione SQL

Utilizzare l'associazione SQL per la composizione dei documenti XML con SQL.

Utilizzo del wizard di gestione

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.

  1. Installare e avviare il wizard di gestione. Per ulteriori dettagli, consultare Avvio del wizard di gestione.
  2. Fare clic su Operazioni con i file DAD dalla finestra LaunchPad. Viene visualizzata la finestra Specificare una DAD.
  3. Scegliere se editare un file DAD esistente oppure creare un nuovo file DAD.

    Per creare un nuovo file DAD:

    1. Lasciare il campo Nome file vuoto.
    2. Dal menu Tipo, selezionare Associazione SQL di raccolta XML.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.

    Per editare un file DAD esistente:

    1. Immettere il nome del file DAD nel campo Nome file oppure fare clic su ... per selezionare un file DAD esistente.
    2. 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.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.
  4. Nella finestra Selezionare convalida, scegliere se convalidare i documenti XML con una DTD.
  5. Fare clic su Avanti per aprire la finestra Specificare testo.
  6. 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.

  7. 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.

  8. Fare clic su Avanti per aprire la finestra Specificare istruzione SQL.
  9. 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.

  10. Fare clic su Verificare SQL per verificare la validità dell'istruzione SQL.
  11. Fare clic su Avanti per aprire la finestra Associazione SQL.
  12. 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.

  13. Immettere un nome file di output per il file DAD modificato nel campo Nome file della finestra Specificare una DAD.
  14. Fare clic su Fine per ritornare alla finestra LaunchPad.

Shell dei comandi DB2

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.

  1. Aprire un editor di testo.
  2. Creare l'intestazione DAD:
    <?xml version="1.0"?>
    <!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
    nome file della DTD
    per
    DAD 
     
    
  3. Inserire le tag <DAD></DAD>.
  4. 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
    
  5. 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
    
  6. 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>
    
  7. 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> 
    
  8. Aggiungere le seguenti informazioni relative al prologo:
    <prolog>?xml version="1.0"?</prolog>
    
    E' richiesto il testo esatto.
  9. Aggiungere le tag <doctype></doctype>. Ad esempio:
    <doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype> 
    
  10. 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.
  11. 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.
    1. 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
    2. 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"> 
      
  12. 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.

  13. Verificare se viene posizionata una tag </root_node> dopo l'ultima tag </element_node>.
  14. Verificare se viene posizionata una tag </Xcollection> dopo la tag </root_node>.
  15. Verificare se viene posizionata una tag </DAD> dopo la tag </Xcollection>.

Composizione dei documenti XML con l'associazione RDB_node

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:

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

Utilizzo del wizard di gestione

Per creare una DAD per la composizione utilizzando l'associazione RDB_node:

  1. Installare e avviare il wizard di gestione. Per ulteriori dettagli, consultare Avvio del wizard di gestione.
  2. Fare clic su Operazioni con i file DAD dalla finestra LaunchPad. Viene visualizzata la finestra Specificare una DAD.
  3. Scegliere se editare un file DAD esistente oppure creare un nuovo file DAD.

    Per editare un file DAD esistente:

    1. Immettere il nome del file DAD nel campo Nome file oppure fare clic su ... per selezionare un file DAD esistente.
    2. 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.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.

    Per creare una nuova DAD:

    1. Lasciare il campo Nome file vuoto.
    2. Selezionare Associazione RDB_node di raccolta XML dal menu Tipo.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.
  4. Nella finestra Selezionare convalida, scegliere se convalidare i documenti XML con una DTD.
  5. Fare clic su Avanti per aprire la finestra Specificare testo.
  6. 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.

  7. 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.

  8. Fare clic su Avanti per aprire la finestra Associazione RDB.
  9. 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.

  10. Per aggiungere il nodo root:
    1. Selezionare l'icona Root.
    2. Fare clic su Nuovo elemento per definire un nuovo nodo.
    3. Nella casella Dettagli specificare Tipo nodo come Elemento.
    4. Immettere il nome del nodo di livello superiore nel campo Nome nodo.
    5. 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.

    6. Aggiungere nodi di tabella per ciascuna tabella appartenente alla raccolta.
      1. Evidenziare il nome nodo root e selezionare Nuovo elemento.
      2. Nella casella Dettagli specificare Tipo nodo come Tabella.
      3. Selezionare il nome della tabella dall'elenco Nome tabella. La tabella deve essere già presente.
      4. Fare clic su Aggiungere per aggiungere il nodo di tabella.
      5. Ripetere questi passi per ciascuna tabella.
    7. Aggiungere una condizione di collegamento per i nodi di tabella.
      1. Evidenziare il nome nodo root e selezionare Nuovo elemento.
      2. Nella casella Dettagli specificare Tipo nodo come Condizione.
      3. 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 ...
        
      4. Fare clic su Aggiungere per aggiungere la condizione.
  11. Per aggiungere un nodo di attributo o elemento:
    1. Per aggiungere un attributo o elemento secondario, fare clic su un nodo principale nel campo visualizzato a sinistra.
    2. Fare clic su Nuovo elemento. Se non è stato selezionato un nodo principale, Nuovo elemento non è selezionabile.
    3. 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.

    4. Specificare un nome nodo nel campo Nome nodo.
    5. Fare clic su Aggiungere per aggiungere il nuovo nodo.
    6. Per associare il contenuto di un nodo di attributo o elemento ad una tabella relazionale:
      1. Specificare un nodo di testo.
        1. Fare clic sul nodo secondario.
        2. Fare clic su Nuovo elemento.
        3. Nel campo Tipo nodo selezionare Testo.
        4. Selezionare Aggiungere per aggiungere il nodo.
      2. Aggiungere un nodo di tabella.
        1. Selezionare il nodo creato e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Tabella e specificare un nome tabella per l'elemento.
        3. Fare clic su Aggiungere per aggiungere il nodo.
      3. Aggiungere un nodo di colonna.
        1. Selezionare nuovamente il nodo di testo e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Colonna e specificare un nome colonna per l'elemento.
        3. 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.

      4. Facoltativamente, aggiungere una condizione per la colonna.
        1. Selezionare nuovamente il nodo di testo e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Condizione e la condizione con la seguente sintassi:
          operator LIKE|<|>|= value
          
        3. Fare clic su Aggiungere per aggiungere il nodo.
    7. Continuare ad editare l'associazione RDB oppure fare clic su Avanti per aprire la finestra Specificare una DAD.
  12. Per eliminare un nodo:
    1. Fare clic su un nodo nel campo visualizzato a sinistra.
    2. Fare clic su Eliminare.
    3. Continuare ad editare l'associazione RDB_node oppure fare clic su Avanti per aprire la finestra Specificare una DAD.
  13. Immettere un nome file di output per la DAD modificata nel campo Nome file della finestra Specificare una DAD.
  14. Fare clic su Fine per eliminare il nodo e ritornare alla finestra LaunchPad.

Shell dei comandi DB2

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.

  1. Aprire un editor di testo.
  2. Creare l'intestazione DAD:
    <?xml version="1.0"?>
    <!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
    nome file della DTD
    per
    DAD 
     
    
  3. Inserire le tag <DAD></DAD>.
  4. 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
    
  5. 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
    
  6. 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>
    
  7. Aggiungere le seguenti informazioni relative al prologo:
    <prolog>?xml version="1.0"?</prolog>
    
    E' richiesto il testo esatto.
  8. Aggiungere le tag <doctype></doctype>. Ad esempio:
    <doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype> 
    
  9. Definire il nodo root utilizzando la tag <root_node>. Nella tag root_node, specificare gli elementi e gli attributi che costituiscono il documento XML.
  10. 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.
    1. 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:
      1. Creare un elemento RDB_node. Ad esempio:
        <RDB_node>
              </RDB_node>
        
      2. 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>
        
      3. 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>
        
      4. 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>
        
    2. 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.

    3. 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"/>
      
    4. 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"> 
      
  11. Verificare se viene posizionata una tag </root_node> dopo l'ultima tag </element_node>.
  12. Verificare se viene posizionata una tag </Xcollection> dopo la tag </root_node>.
  13. Verificare se viene posizionata una tag </DAD> dopo la tag </Xcollection>.

Scomposizione dei documenti XML con l'associazione RDB_node

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:

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

Utilizzo del wizard di gestione

Per creare una DAD per la scomposizione:

  1. Installare e avviare il wizard di gestione. Per ulteriori dettagli, consultare Avvio del wizard di gestione.
  2. Fare clic su Operazioni con i file DAD dalla finestra LaunchPad. Viene visualizzata la finestra Specificare una DAD.
  3. Scegliere se editare un file DAD esistente oppure creare un nuovo file DAD.

    Per editare un file DAD esistente:

    1. Immettere il nome del file DAD nel campo Nome file oppure fare clic su ... per selezionare un file DAD esistente.
    2. 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.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.

    Per creare una nuova DAD:

    1. Lasciare il campo Nome file vuoto.
    2. Selezionare Associazione RDB_node di raccolta XML dal menu Tipo.
    3. Fare clic su Avanti per aprire la finestra Selezionare convalida.
  4. Nella finestra Selezionare convalida, scegliere se convalidare i documenti XML con una DTD.
  5. Fare clic su Avanti per aprire la finestra Specificare testo.
  6. 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.

  7. 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.

  8. Fare clic su Avanti per aprire la finestra Associazione RDB.
  9. 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.

  10. Per aggiungere il nodo root:
    1. Selezionare l'icona Root.
    2. Fare clic su Nuovo elemento per definire un nuovo nodo.
    3. Nella casella Dettagli specificare Tipo nodo come Elemento.
    4. Immettere il nome del nodo di livello superiore nel campo Nome nodo.
    5. 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.

    6. Aggiungere nodi di tabella per ciascuna tabella appartenente alla raccolta.
      1. Evidenziare il nome nodo root e selezionare Nuovo elemento.
      2. Nella casella Dettagli specificare Tipo nodo come Tabella.
      3. Selezionare il nome della tabella dall'elenco Nome tabella. La tabella deve essere già presente.
      4. Specificare una colonna chiave per la tabella nel campo Chiave tabella.
      5. Fare clic su Aggiungere per aggiungere il nodo di tabella.
      6. Ripetere questi passi per ciascuna tabella.
    7. Aggiungere una condizione di collegamento per i nodi di tabella.
      1. Evidenziare il nome nodo root e selezionare Nuovo elemento.
      2. Nella casella Dettagli specificare Tipo nodo come Condizione.
      3. 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 ...
        
      4. Fare clic su Aggiungere per aggiungere la condizione.

    Adesso è possibile aggiungere attributi ed elementi secondari a questo nodo.

  11. Per aggiungere un nodo di attributo o elemento:
    1. 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.

    2. Fare clic su Nuovo elemento.
    3. 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.

    4. Specificare un nome nodo nel campo Nome nodo.
    5. Fare clic su Aggiungere per aggiungere il nuovo nodo.
    6. Per associare il contenuto di un nodo di attributo o elemento ad una tabella relazionale:
      1. Specificare un nodo di testo.
        1. Fare clic sul nodo secondario.
        2. Fare clic su Nuovo elemento.
        3. Nel campo Tipo nodo selezionare Testo.
        4. Selezionare Aggiungere per aggiungere il nodo.
      2. Aggiungere un nodo di tabella.
        1. Selezionare il nodo creato e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Tabella e specificare un nome tabella per l'elemento.
        3. Fare clic su Aggiungere per aggiungere il nodo.
      3. Aggiungere un nodo di colonna.
        1. Selezionare nuovamente il nodo di testo e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Colonna e specificare un nome colonna per l'elemento.
        3. 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.
        4. 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.

      4. Facoltativamente, aggiungere una condizione per la colonna.
        1. Selezionare nuovamente il nodo di testo e fare clic su Nuovo elemento.
        2. Nel campo Tipo nodo selezionare Condizione e la condizione con la seguente sintassi:
          operator LIKE|<|>|= value
          
        3. 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.

    7. Continuare ad editare l'associazione RDB oppure fare clic su Avanti per aprire la finestra Specificare una DAD.
  12. Per eliminare un nodo:
    1. Fare clic su un nodo nel campo visualizzato a sinistra.
    2. Fare clic su Eliminare.
    3. Continuare ad editare l'associazione RDB_node oppure fare clic su Avanti per aprire la finestra Specificare una DAD.
  13. Immettere un nome file di output per la DAD modificata nel campo Nome file della finestra Specificare una DAD.
  14. Fare clic su Fine per eliminare il nodo e ritornare alla finestra LaunchPad.

Shell dei comandi DB2

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.

  1. Aprire un editor di testo.
  2. Creare l'intestazione DAD:
    <?xml version="1.0"?>
    <!DOCTYPE DAD SYSTEM "path\dad.dtd"> --> il percorso e il
    nome file della DTD
    per
    DAD 
     
    
  3. Inserire le tag <DAD></DAD>.
  4. 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
    
  5. 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
    
  6. 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>
    
  7. Aggiungere le seguenti informazioni relative al prologo:
    <prolog>?xml version="1.0"?</prolog>
    
    E' richiesto il testo esatto.
  8. Aggiungere le tag <doctype></doctype>. Ad esempio:
    <doctype>! DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype> 
    
  9. 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.
  10. 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.
    1. 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:
      1. Creare un elemento RDB_node. Ad esempio:
        <RDB_node>
              </RDB_node>
        
      2. 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>
        
      3. 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>
        
      4. 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.

    2. 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.

    3. 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> 
      
  11. 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>
     
    
  12. Verificare se viene posizionata una tag </root_node> dopo l'ultima tag </element_node>.
  13. Verificare se viene posizionata una tag </Xcollection> dopo la tag </root_node>.
  14. Verificare se viene posizionata una tag </DAD> dopo la tag </Xcollection>.

Abilitazione delle raccolte XML

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:

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().

Utilizzo del wizard di gestione

Eseguire i passi riportati di seguito per abilitare una raccolta XML:

  1. Installare e avviare il wizard di gestione. Per ulteriori dettagli, consultare Avvio del wizard di gestione.
  2. Fare clic su Operazioni con le raccolte XML dalla finestra LaunchPad. Viene visualizzata la finestra Selezionare un'attività.
  3. Fare clic su Abilitare una raccolta e quindi su Avanti. Viene visualizzata la finestra Abilitare una raccolta.
  4. Selezionare il nome della raccolta che si desidera abilitare nel campo Nome colonna dal menu a discesa.
  5. Immettere il nome del file DAD nel campo Nome file DAD oppure fare clic su ... per selezionare un file DAD esistente.
  6. 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.

  7. Fare clic su Fine per abilitare la raccolta e ritornare alla finestra LaunchPad.

Shell dei comandi DB2

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.

Disabilitazione delle raccolte XML

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().

Utilizzo del wizard di gestione

Eseguire i passi riportati di seguito per disabilitare una raccolta XML:

  1. Installare e avviare il wizard di gestione. Per ulteriori dettagli, consultare Avvio del wizard di gestione.
  2. 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à.
  3. Fare clic su Disabilitare una raccolta XML e quindi su Avanti per disabilitare una raccolta XML. Viene visualizzata la finestra Disabilitare una raccolta.
  4. Immettere il nome della raccolta che si desidera disabilitare nel campo Nome raccolta.
  5. Fare clic su Fine per disabilitare la raccolta e ritornare alla finestra LaunchPad.

Shell dei comandi DB2

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 ]