XML Format Deskriptor
Die Vorlage für den “Format deskriptor” sieht 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