Descripteur de format XML
Le template du descripteur de format XML se présente comme suit :
<XMLLOADFORMAT NODE="">
<TABLELIST NODE="">
<TABLE NODE="" NAME="">
<ROW NODE="" KEY="">
<COLUMNLIST TYPE="">
<COLUMN NODE="" ATTR="" NAME=""/>
</COLUMNLIST>
<TABLELIST NODE="">
…
</TABLELIST>
</ROW>
</TABLE>
</TABLELIST>
</XMLLOADFORMAT>
Les parties du descripteur XML sont les suivantes :
XMLLOADFORMAT : c'est le nœud racine du descripteur de format. L'attribut NODE peut être défini avec un chemin de nœuds provenant du XML de ciblage, par exemple « ROOT/NODE ».
TABLELIST : contient une liste des nœuds TABLE. TABLELIST peut faire partie du nœud XMLLOADFORMAT ou du nœud ROW. Ce dernier permet de spécifier les relations parents-enfants. L'attribut NODE peut être défini avec un chemin de nœuds provenant du XML de ciblage.
TABLE : définit une table résultante. Deux attributs peuvent être définis : NODE et NAME. L'attribut NODE peut être un chemin de nœuds provenant du XML de ciblage. Le nœud NAME peut être utilisé pour spécifier un nom pour la table. Il existe trois options de nom : nom normal, nom commençant par le caractère '@' ou omission de l'attribut. Le nom normal correspond tout simplement au nom de la table. Si un '@' précède le nom, la valeur de l'attribut avec ce nom est le nom de la table. Si vous omettez l'attribut, le nom du nœud dans le XML de ciblage est le nom de la table.
ROW : définit une ligne dans la table. Deux attributs peuvent être définis : NODE et KEY. L'attribut NODE est le chemin de nœuds provenant du XML de ciblage. KEY est le nom de la colonne qui représente la valeur clé pour une ligne. Si l'attribut KEY est omis, une clé est générée automatiquement.
COLUMNLIST : c'est une liste de nœuds COLUMN formant une ligne. L'attribut TYPE peut avoir trois valeurs :
NODE : seuls les nœuds du XML de ciblage sont utilisés comme colonnes
ATTR : seuls les attributs du XML de ciblage sont utilisés comme colonnes
BOTH : les nœuds et les attributs sont tous deux utilisés comme colonnes
COLUMN : un nœud COLUMN a trois attributs possibles
NODE : chemin de nœuds provenant du XML de ciblage. Si l'attribut ATTR n'est pas spécifié, le contenu du nœud est utilisé comme valeur pour la colonne.
ATTR : si spécifié, la valeur de l'attribut NODE avec le nom donné est utilisée comme contenu pour la colonne.
NAME : cet attribut permet de spécifier le nom de la colonne. Si cet attribut n'est pas utilisé, le nom est celui du nœud ou si un attribut est utilisé, une concaténation du nom du nœud et du nom de l'attribut.
Exemple :
- Descripteur de format :
<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>
Le descripteur de format et xml ci-dessus est finalement analysé et chargé sous la forme des tables suivantes :
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