Documentation SDX v 1.1
La feuille de style d'indexation
Dernière modification : 2001/11/02 14:22:18 Contact : Martin Sévigny
Présentation
La feuille de style d'indexation permet de transformer un document XML en un autre document XML. Le premier est le document XML géré par SDX. Le deuxième est un document XML transitoire qui sert à l'indexation du document dans la base. Une autre partie de la documentation décrit ce processus.
La feuille de style peut être structurée de n'importe quelle façon en autant qu'elle produise un document XML qui respecte le format de sortie défini par après.
Format de sortie
Le document XML produit par la feuille de style doit repecter la DTD suivante :
<!ELEMENT sdx:document ( sdx:field | sdx:attachedDocument sdx:table )* > <!ATTLIST sdx:document id CDATA #REQUIRED > <!ELEMENT sdx:field ( #PCDATA ) > <!ATTLIST sdx:field code CDATA #REQUIRED > <!ELEMENT sdx:attachedDocument EMPTY > <!ATTLIST sdx:attachedDocument id CDATA #REQUIRED filename CDATA #REQUIRED url CDATA #IMPLIED mimetype CDATA #IMPLIED > <!ELEMENT sdx:table ( sdx:column+ ) > <!ATTLIST sdx:table name CDATA #REQUIRED > <!ELEMENT sdx:column ( #PCDATA ) > <!ATTLIST sdx:column name CDATA #REQUIRED >
L'identifiant du document
L'attribut id de l'élément supérieur sdx:document doit contenir un identifiant qui sera unique dans la base de documents. C'est donc à la feuille de style XSLT de créer ou d'extraire ces identifiants uniques. S'il n'y a pas d'attribut id, le document ne sera pas ajouté. Si l'attribut id contient une valeur égale à l'identifiant d'un document dans la base, deux choses peuvent se produire :
Si l'ajout se fait en mode de remplacement, alors le document ayant le même identifiant est supprimé de la base, et il est remplacé par le nouveau. La date de création ne changera pas.
Si l'ajout ne se fait pas en mode de remplacement, une erreur sera générée et le document sera rejeté.
Cet identifiant peut être quelconque. Toutefois, il est préférable d'utiliser un identifiant simple et surtout sans caractères spéciaux, tous les traitements seront facilités par la suite, en particulier le traitement des paramètres d'URL.
Les valeurs de champs
Le document XML produit peut contenir un nombre quelconque d'éléments sdx:field. Chaque occurrence d'un tel élément correspond à une occurrence du champ dont le code est donné par la valeur de l'attribut code. Si ce champ n'existe pas dans la base, le champ sera rejeté mais le document sera toutefois accepté.
Le contenu de l'élément est le contenu du champ. Pour les champs de type field, date et unindexed, le contenu sera interprété tel quel, sans aucune transformation. Il faut donc s'assurer de bien gérer les espaces lors de la transformation. Pour les champs de type mot, une analyse lexicale sera opérée, alors cet aspect est moins critique.
Les valeurs de tables externes
SDX permet de gérer des tables relationnelles extérieures aux document et à sa propre indexation, et d'y stocker des valeurs. L'alimentation se fait également au moment de la transformation, et les informations sont stockées dans des éléments sdx:table et sdx:column.
Pour chaque occurrence de l'élément sdx:table, une entrée sera faite dans la table externe dont le nom est donné par l'attribut name. Dans cette entrée, toutes les colonnes qui ont un sous-élément sdx:column dont l'attribut name correspond seront remplies.
C'est à la transformation de s'assurer que les valeurs fournies respectent la structure de la table définie dans le fichier de configuration.
Les documents attachés
Un document XML ne vient pas toujours seul. Ainsi, il peut y avoir des documents qui lui sont attachés, par exemple des images. SDX permet de gérer ces documents attachés, en les stockant dans la base de données et en s'assurant qu'ils seront supprimés lorsque le document XML est supprimé de la base.
Il est important de noter que cette procédure n'est pas obligatoire. Les documents attachés peuvent être gérés par ailleurs et appelés, par exemple, par une URL appropriée lors de l'affichage.
Si on décide de gérer les documents attachés à l'aide de SDX, on doit produire un élément sdx:attachedDocument pour chaque document attaché associé au document en cours de traitement. Aucune limite n'est imposée sur le nombre de documents attachés.
Cet élément doit nécessairement fournir un identifiant pour le document attaché. Cet identifiant peut être quelconque, en autant qu'il soit unique parmi tous les documents attachés associés au document XML en cours de traitement. Il est recommandé, encore une fois, d'utiliser des identifiants simples et sans caractères spéciaux.
Le nom de fichier du document attaché doit être spécifié dans l'attribut filename. Ce nom de fichier servira lors de la sauvegarde d'une base de documents. Ce nom de fichier doit être sans chemin d'accès, par exemple img01.jpg.
On peut également spécifier l'URL du document attaché, soit de façon relative au document XML, soit de façon absolue. Cette URL est spécifiée à l'aide de l'attribut url, et si cet attribut est présent il est utilisé en priorité pour retrouver le document attaché. S'il n'est pas spécifié, c'est l'information fournie par l'attribut filename qui indiquera à SDX où trouver le fichier.
L'élément peut également fournir des informations sur le type MIME du document attaché, ce qui est également recommandé car cela permet d'envoyer cette information au client lorsqu'il demande un document attaché.
Document précédent : La transformation préalable des documents |
Table des matières | Document suivant : Introduction |