XML Format-Deskriptor

Die Vorlage für den “Format deskriptor” sieht x²folgendermaßen aus:

<XMLLOADFORMAT NODE="">
  <TABLELIST NODE="">
    <TABLE NODE="" NAME="">
      <ROW NODE="" KEY="">
        <COLUMNLIST TYPE="">
          <COLUMN NODE="" ATTR="" NAME=""/>
        </COLUMNLIST>
        <TABLELIST NODE="">
          …
        </TABLELIST>
      </ROW>
    </TABLE>
  </TABLELIST>
</XMLLOADFORMAT>

 

Die Bestandteile des XML-Deskriptors sind:

XMLLOADFORMAT: Wurzelknoten des Format-Deskriptors. Das NODE-Attribut kann mit einem Knoten-Pfad von der Ziel-XML eingestellt werden. Z.B.. “ROOT/NODE”

TABLELIST: Enhält eine tabelle mit TABLE-Knoten. Die TABLELIST kann Teil des Knotens XMLLOADFORMAT oder des Knotens ROW sein. Im letzten Fall können Parent-Child-Relationen spezifiziert werden. Das NODE-Attribut kann mit einem Knoten-Pfad von der Ziel-XML eingestellt werden.

TABELLE: Definiert eine Ergebnistabelle. Es können zwei Attribute eingestellt werden: NODE und NAME. Das NODE-Attribut kann ein Knoten-Pfad von der Ziel-XML sein. Der Knoten NAME kann verwendet werden, um einen Namen für die Tabelle zu spezifizieren. Hierfür gibt es drei Optionen: Regulärer Name, Name beginnt mit einem ‘@’-Zeiche, oder das Attribut weglassen. Der reguläre Name ist dann nur der Name der Tabelle. Wenn vor dem Namen ein ‘@’ steht, so ist der Wert des Attributs mit diesem Namen der Name für die Tabelle. Wenn Sie das Attribut weglassen, wird der Name des Knotens in der Ziel-XML der Name für die Tabelle.

ROW: Definiert eine Zeile in der Tabelle. Es können zwei Attribute eingestellt werden: NODE und KEY. NODE ist der Pfad der Knoten von der Ziel-XML. KEY ist der Name der Spalte, die den Schlüsselwert für eine Zeile darstellt. Wenn das KEY-Attribut weggelassen wird, wird automatisch ein Schlüssel erzeugt.

COLUMNLIST: Eine tabelle mit COLUMN-Knoten, die eine Zeile bilden. Das Attribut TYPE kann 3 Werte haben:

NODE: Es werden nur Knoten der Ziel-XML als Spalten verwendet

ATTR: Es werden nur Attribute der Ziel-XML als Spalten verwendet

BOTH: Sowohl Knoten als auch Attribute werden als Spalten verwendet

COLUMN: Ein COLUMN-Knoten hat drei mögliche Attribute:

NODE: Pfad der Knoten von der Ziel-XML. Wenn das Attribut ATTR nicht spezifiziert wird, wird der Inhalt des Knotens als Wert für die Spalte verwendet

ATTR: Wenn es spezifiziert wird, wird der Wert des Knoten-Attributs mit dem gegeben Namen als Inhalt für die Spalte verwendet.

NAME: Mit diesem Attribut können Sie den Namen der Spalte spezifizieren. Wenn dieses Attribut nicht verwendet wird, ist der Name der des Knotens, oder, falls ein Attribut verwendet wird: Eine Aneinanderkettung des Knoten- und Attributnamens.

 

Beispiel :

- Format-Deskriptor :
<XMLLOADFORMAT NODE="XML">
  <TABLELIST NODE="PARAMETERS">
    <TABLE NODE="PARAMETER" NAME="@NAME">
      <ROW NODE="ARTICLE" KEY="ID">
        <COLUMNLIST TYPE="BOTH">
          <COLUMN ATTR="ID"/>
          <COLUMN NODE="IMAGE" ATTR="WIDTH" NAME="IMAGEWIDTH"/>
          <COLUMN NODE="IMAGE" ATTR="HEIGHT"/>
          <COLUMN NODE="LANG" NAME="LANGUAGE"/>
        </COLUMNLIST>
        <TABLELIST>
          <TABLE NODE="OTHERARTICLEURLS">
            <ROW NODE="OTHERARTICLEURL">
              <COLUMNLIST TYPE="NODE"/>
            </ROW>
          </TABLE>
        </TABLELIST>
      </ROW>
    </TABLE>
  </TABLELIST>
</XMLLOADFORMAT>

- XML :
<XML>
  <PARAMETERS>
    <PARAMETER NAME="ARTICLES">
      <ARTICLE ID="1422">
        <URL>http://citysecrets.lavenir.net/bruxelles/n/1422</URL>
        <TITLE>Comment survivre au Blue Monday à Bruxelles ?</TITLE>
        <DESCRIPTION>Notre conseil ..</DESCRIPTION>
        <INTRO>Blue Monday .. </INTRO>
        <POSTCODE>1000</POSTCODE>
        <IMAGE WIDTH="300" HEIGHT="228">http://.. </IMAGE>
        <OTHERARTICLEURLS>
          <OTHERARTICLEURL>http://..</OTHERARTICLEURL>
          <OTHERARTICLEURL>http://..</OTHERARTICLEURL>
        </OTHERARTICLEURLS>
        <LANG>FR</LANG>
        <MAINLOCATION>1000</MAINLOCATION>
        <AREA>1000,1020</AREA>
        <ITEM_CREATED_DT>2012-01-16 14:25:11</ITEM_CREATED_DT>
      </ARTICLE>
    </PARAMETER>
  </PARAMETERS>
</XML>

Der oben stehende Format-Deskriptor und die XML werden schließlich analysiert und als folgende Tabellen geladen :
JOB_34_ARTICLES
ID : 1422
IMAGEWIDTH: 300
IMAGE_HEIGHT: 228
LANGUAGE: FR

JOB_34_ARTICLES_OTHERARTICLESURLS
OTHERARTICLEURL: http://...
ID: 1
PARENT_ID: 1422
OTHERARTICLEURL: http://...
ID: 2
PARENT_ID: 1422