XML Extender Verwaltung und Programmierung

XML-Objektgruppe erstellen: DAD-Datei vorbereiten

Da die Daten bereits in verschiedenen Tabellen vorhanden sind, erstellen Sie eine XML-Objektgruppe, die die Tabellen dem XML-Dokument zuordnet. Zum Erstellen einer XML-Objektgruppe definieren Sie die Objektgruppe durch Vorbereiten einer DAD-Datei.

In Planung haben Sie festgelegt, welche Spalten in der relationalen Datenbank mit den Daten vorhanden sind und wie die Daten aus den Tabellen in einem XML-Dokument strukturiert werden. In diesem Abschnitt erstellen Sie das Zuordnungsschema in der DAD-Datei, die die Beziehung zwischen den Tabellen und der Struktur des XML-Dokuments angibt.

In den folgenden Schritten werden die Elemente in der DAD als Befehle und die Elemente Ihrer XML-Dokumentstruktur als Elemente bezeichnet. Ein Muster einer DAD-Datei ähnlich der von Ihnen erstellten finden Sie in c:\dxx\samples\dad\getstart_xcollection.dad. Dieses Muster weist einige kleine Unterschiede gegenüber der in den folgenden Schritten generierten Datei auf. Wenn Sie das Muster für die Lektion verwenden, beachten Sie, daß die Dateipfade für Ihre Umgebung anders sein können.

So erstellen Sie eine DAD-Datei zum Zusammensetzen eines XML-Dokuments:

  1. Öffnen Sie vom Verzeichnis c:\dxx\samples\cmd aus einen Texteditor, und erstellen Sie eine Datei mit dem Namen getstart_xcollection.dad.
  2. Erstellen Sie die DAD-Kopfzeilen mit dem folgenden Text:
    <?xml version="1.0"?> 
    <!DOCTYPE DAD SYSTEM "c:\dxx\dtd\dad.dtd"> 
    

    Der XML Extender geht davon aus, daß Sie das Produkt im Verzeichnis c:\dxx installiert haben. Ändern Sie ggf. hier und in den folgenden Schritten diese Angabe ggf. auf das Laufwerk und das Verzeichnis, das Sie bei der Installation dieses Produkts angegeben haben.

  3. Fügen Sie die Befehle <DAD></DAD> ein. Alle weiteren Befehle befinden sich innerhalb dieser Befehle.
  4. Geben Sie die Befehle <validation> </validation> an, um anzugeben, ob der XML Extender die XML-Dokumentstruktur mit der DTD überprüft, die Sie in der DTD-Repository-Tabelle eingefügt hatten.
    <validation>NO</validation>   
    
  5. Verwenden Sie die Befehle <Xcollection> </Xcollection> zum Definieren der Zugriffs- und Speichermethode als XML-Objektgruppe. Die Zugriffs- und Speichermethode geben an, daß die XML-Daten in einer Objektgruppe von DB2-Tabellen gespeichert sind.
    <Xcollection>
    </Xcollection>
    
  6. Geben Sie eine SQL-Anweisung zur Definition der Tabellen und Spalten für die XML-Objektgruppe an. Diese Methode wird als SQL-Zuordnung bezeichnet; sie stellt eine der beiden Möglichkeiten dar, relationale Daten der XML-Dokumentstruktur zuzuordnen. (Weitere Informationen zu Zuordnungsschemata finden Sie im Abschnitt Arten von Zuordnungsschemata.) Geben Sie die folgende Anweisung ein:
    <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> 
    

    Diese SQL-Anweisung verwendet die folgenden Richtlinien bei Verwendung der SQL-Zuordnung. Schlagen Sie die Dokumentstruktur in Abbildung 6 nach.

    Die Anforderungen zum Schreiben einer SQL-Anweisung sind im Abschnitt Voraussetzung für das Zuordnungsschema beschrieben.

  7. Fügen Sie die folgenden Prologinformationen zur Verwendung in dem zusammengesetzten XML-Dokument hinzu.
    <prolog>?xml version="1.0"?</prolog> 
    

    Dieser Text ist in genau dieser Form für alle DAD-Dateien erforderlich.

  8. Fügen Sie die Befehle <doctype></doctype> zur Verwendung in dem zusammengesetzten XML-Dokument ein. Der Befehl <doctype> enthält den Pfad zu der auf dem Client gespeicherten DTD.
    <doctype>!DOCTYPE Order SYSTEM "c:\dxx\samples\dtd\getstart.dtd"</doctype> 
    
  9. Definieren Sie das Root-Element des XML-Dokuments mit den Befehlen <root_node></root_node>. Innerhalb des Root-Knotens geben Sie die Elemente und Attribute an, aus denen das XML-Dokument besteht.
  10. Ordnen Sie mit den folgenden drei Arten von Knoten die XML-Dokumentstruktur der Struktur der relationalen DB2-Tabelle zu:

    element_node
    (Elementknoten) Gibt das Element in dem XML-Dokument an. Elementknoten können untergeordnete Elementknoten enthalten.

    attribute_node
    (Attributknoten) Gibt das Attribut eines Elements in dem XML-Dokument an.

    text_node
    (Textknoten) Gibt den Textinhalt des Elements und die Spaltendaten in einer relationalen Tabelle für die Elementknoten der untersten Ebene an.

    Weitere Informationen zu diesen Knoten finden Sie im Abschnitt Die DAD-Datei. Abbildung 6 zeigt die hierarchische Struktur des XML-Dokuments und der DB2-Tabellenspalten und gibt an, welche Arten von Knoten verwendet werden. Die schraffierten Kästchen kennzeichnen die Namen der DB2-Tabellenspalten, as denen die Daten beim Zusammensetzen des XML-Dokuments extrahiert werden.

    Mit den folgenden Schritten fügen Sie nacheinander die einzelnen Knotenarten hinzu.

    1. Definieren Sie einen Befehl <element_node> für jedes Element in dem XML-Dokument.
      <root_node>
      <element_node name="Order"> 
        <element_node name="Customer"> 
          <element_node name="Name">
           </element_node>
           <element_node name="Email">
          </element_node>
            </element_node> 
        <element_node name="Part">
          <element_node name="key">
          </element_node>
          <element_node name="Quantity"> 
            </element_node> 
          <element_node name="ExtendedPrice">   
            </element_node> 
          <element_node name="Tax">
            </element_node> 
           <element_node name="Shipment" multi_occurrence="YES"> 
            <element_node name="ShipDate"> 
            </element_node>  
            <element_node name="ShipMode">
            </element_node> 
          </element_node> <!-- end Shipment -->
        </element_node> <!-- end Part -->
      </element_node> <!-- end Order -->
      </root_node>
      

      Beachten Sie, daß das untergeordnete Element <Shipment> das Attribut "multi_occurence="YES" aufweist. Dieses Attribut wird für Elemente ohne Attribute verwendet, die in dem Dokument wiederholt werden. Das Element <Part> verwendet das Attribut "multi-occurence" nicht, da es durch das Attribut "Color" eindeutig ist.

    2. Definieren Sie einen Befehl <attribute_node> für jedes Attribut in Ihrem XML-Dokument. Diese Attribute sind innerhalb ihres element_node verschachtelt. Die hinzugefügten attribute_nodes sind in Fettschrift hervorgehoben:
      <root_node> 
      <element_node name="Order"> 
        <attribute_node name="key">
        </attribute_node> 
        <element_node name="Customer">
           <element_node name="Name">
           </element_node>
           <element_node names"Email">
           </element_node>
        </element_node> 
        <element_node name="Part"> 
          <attribute_node name="color"> 
          </attribute_node> 
          <element_node name="key">
          </element_node>
          <element_node name="Quantity"> 
          </element_node> 
        
      ...
       
        </element_node> <!-- end Part -->
      </element_node> <!-- end Order -->
      </root_node> 
      
    3. Definieren Sie für jeden element_node auf der untersten Ebene die Befehle <text_node>, um zu kennzeichnen, daß das XML-Element Zeichendaten enthält, die beim Zusammensetzen des Dokuments aus DB2 extrahiert werden können.
      <root_node> 
      <element_node name="Order"> 
        <attribute_node name="key">
        </attribute_node> 	
        <element_node name="Customer">
          <element_node name="Name"> 
            <text_node> 
            </text_node> 
          </element_node>
          <element_node name="Email">
            <text_node> 
            </text_node> 
          </element_node>
        </element_node> 
        <element_node name="Part"> 
          <attribute_node name="color"> 
          </attribute_node> 
          <element_node name="key">
             <text_node>
             </text_node> 
          </element_node>
          <element_node name="Quantity">
            <text_node> 
            </text_node> 
          </element_node> 
          <element_node name="ExtendedPrice"> 
            <text_node> 
            </text_node> 
          </element_node> 
          <element_node name="Tax"> 
            <text_node> 
            </text_node> 
          </element_node> 
          <element_node name="Shipment" multi-occurence="YES"> 
            <element_node name="ShipDate">
              <text_node> 
              </text_node> 
            </element_node> 
            <element_node name="ShipMode"> 
              <text_node> 
              </text_node> 
            </element_node> 
          </element_node> <!-- end Shipment -->
        </element_node> <!-- end Part -->
      </element_node> <!-- end Order -->
      </root_node> 
      
    4. Definieren Sie für jeden element_node auf der untersten Ebene einen Befehl <column>. Diese Befehle geben an, aus welcher Spalte beim Zusammensetzen des XML-Dokuments die Daten extrahiert werden sollen; sie befinden sich normalerweise innerhalb der Befehle <attribute_node> oder <text_node>. Denken Sie daran, daß sich die hier definierten Spalten innerhalb der Klausel <SQL_stmt> SELECT befinden müssen.
      <root_node> 
      <element_node name="Order"> 
        <attribute_node name="key">
          <column name="order_key"/> 
        </attribute_node> 	
        <element_node name="Customer">
          <element_node name="Name">
            <text_node>
              <column name="customer_name"/> 
            </text_node> 
          </element_node>
          <element_node name="Email">
            <text_node>
              <column name="customer_email"/>
           </text_node>
          </element_node> 
        </element_node> 
        <element_node name="Part"> 
          <attribute_node name="color">
             <column name="color"/> 
          </attribute_node> 
          <element_node name="key">
            <text_node>
              <column name="part_key"/>
            </text_node>
          <element_node name="Quantity">
            <text_node> 
              <column name="quantity"/>
            </text_node> 
          </element_node> 
          <element_node name="ExtendedPrice"> 
            <text_node>
              <column name="price"/> 
            </text_node> 
          </element_node> 
          <element_node name="Tax"> 
            <text_node> 
              <column name="tax"/>
            </text_node> 
          </element_node> 
          <element_node name="Shipment" multi-occurence="YES"> 
            <element_node name="ShipDate">
              <text_node> 
                <column name="date"/>
              </text_node> 
            </element_node> 
            <element_node name="ShipMode"> 
              <text_node> 
                <column name="mode"/>
              </text_node> 
            </element_node> 
          </element_node> <!-- end Shipment -->
        </element_node> <!-- end Part -->
      </element_node> <!-- end Order -->
      </root_node> 
      
  11. Stellen Sie sicher, daß Sie einen Endbefehl </root_node> nach dem letzten Befehl </element_node> verwenden.
  12. Stellen Sie sicher, daß Sie einen Endbefehl </Xcollection> nach dem Befehl </root_node> verwenden.
  13. Stellen Sie sicher, daß Sie einen Endbefehl </DAD> nach dem Befehl </Xcollection> verwenden.
  14. Speichern Sie die Datei unter dem Namen getstart_xcollection.dad.

Sie können die eben erstellte Datei mit der Beispieldatei c:\dxx\samples\dad\getstart_xcollection.dad vergleichen. Diese Datei ist eine Arbeitskopie der zum Zusammensetzen des XML-Dokuments erforderlichen DAD-Datei. Die Beispieldatei enthält Pfadanweisungen, die für eine erfolgreiche Ausführung eventuell an Ihre Umgebung angepaßt werden müssen.

Wenn Sie in Ihrer Anwendung eine XML-Objektgruppe häufig zum Zusammensetzen von Dokumenten verwenden, können Sie durch Aktivieren der Objektgruppe einen Gruppennamen definieren. Durch Aktivieren der Objektgruppe wird diese in der Tabelle XML_USAGE registriert; durch die Angabe des Gruppennamens (statt des Namens der DAD-Datei) bei der Ausführung gespeicherter Prozeduren kann somit die Leistung verbessert werden. In diesen Lektionen aktivieren Sie die Objektgruppe nicht. Weitere Informationen zum Aktivieren von Objektgruppen finden Sie im Abschnitt XML-Objektgruppen aktivieren.


[ Seitenanfang | Vorherige Seite | Nächste Seite | Inhaltsverzeichnis | Index ]