<?xml version="1.0"?>
<!DOCTYPE webpage PUBLIC "-//Norman Walsh//DTD Website V2.1b1//EN" "../../../dtd/website.dtd" [
<!ENTITY entrepot SYSTEM "../introduction/entrepots.xml" NDATA XML>
<!ENTITY pipeline SYSTEM "pipeline.xml" NDATA XML>
<!ENTITY schema-xconf SYSTEM "../../schemas/application-xconf.xsd" NDATA XML>
]>
<webpage id="indexation_original"> 
  <head> 
	 <title>Document original, document d'usage</title> 
	 <titleabbrev>Original et usage</titleabbrev> 
	 <author> 
		<firstname>Martin</firstname> 
		<surname>Sévigny</surname> 
		<affiliation> 
		  <orgname>AJLSM</orgname> 
		</affiliation> 
	 </author> 
	 <revhistory> 
		<revision> 
		  <revnumber>1.0</revnumber> 
		  <date>2003-05-14</date> 
		</revision> 
	 </revhistory> 
  </head> 
  <para>SDX est d'abord et avant tout un moteur de recherche, et dans ce sens il s'intéresse surtout à la transformation des documents originaux pour leur indexation. Toutefois, parmi les fonctionnalités proposées par SDX, il y a l'<emphasis role="italic">affichage</emphasis> des documents XML. Pour ce faire, SDX a besoin de connaître ce document, donc de le converver ou d'en garder une adresse. C'est le rôle de l'<olink targetdocent="entrepot">entrepôt</olink> dans l'architecture SDX.</para><para>La plupart du temps, le document affiché est le document XML original qui a été indexé. Toutefois, il peut être pratique d'afficher un document qui n'est pas exactement l'original, mais plutôt le résultat d'une transformation de cet original. Par exemple, on peut vouloir simplifier le document pour augmenter les performances, pour supprimer du contenu non public  ou pour faciliter l'affichage, ou encore supprimer l'appel à la DTD pour augmenter, encore une fois, les performances.</para><para>C'est pourquoi SDX introduit le concept de <emphasis role="italic">document d'usage</emphasis>, soit le document qui sera utilisé pour l'affichage, document d'usage qui peut être distinct du document original. Si l'on ne prête pas attention à ce concept, le document d'usage et le document original sont strictement les mêmes pour SDX. Pour introduire un document d'usage, on doit le déclarer spécifiquement.</para><para>Par ailleurs, il est également possible de spécifier que SDX ne doit pas garder le document original, mais seulement l'un des documents issus d'une transformation. Dans ce cas, pour SDX, encore une fois document d'usage et document original sont les mêmes, mais cette fois il ne s'agit pas du document tel qu'il lui a été soumis pour indexation.</para><para>Puisque les documents d'usage sont issus d'une transformation lors de l'indexation, c'est dans la configuration de cette dernière que l'on peut préciser les informations nécessaires, de même que dans la configuration de la base de documents. Voyons d'abord un exemple complet, en rappelant que les structures XML définitives sont fournies par le <olink targetdocent="schema-xconf">schéma de référence</olink> :</para> 
<example lang="fr"><title>Indexation d'un document en deux transformations</title><programlisting>
  &lt;sdx:pipeline&gt;
    &lt;sdx:transformation id="step1" type="XSLT" src="transform.xsl" keep="true"/&gt;
    &lt;sdx:transformation id="step2" type="XSLT" src="index.xsl"/&gt;
  &lt;/sdx:pipeline&gt;
</programlisting><para>Dans cet exemple, SDX va conserver deux documents :</para></example><orderedlist><listitem><para>Le document original soumis pour indexation, c'est-à-dire le document XML qui entre dans le <emphasis>pipeline</emphasis> d'indexation. Ce document devient le <emphasis role="italic">document original</emphasis>.</para></listitem><listitem><para>Le document XML issu de la transformation XSLT <emphasis role="italic">step1</emphasis>, document qui deviendra le <emphasis role="italic">document d'usage</emphasis>. A noter que ce document sera également le document d'entrée de la seconde transformation, <emphasis role="italic">step2</emphasis>.</para></listitem></orderedlist><para>Si l'on ne veut pas que SDX conserve les documents originaux, on doit le spécifier au niveau de la base de documents, en ajoutant l'attribut <sgmltag class="attribute">keepOriginalDocuments="true"</sgmltag> à l'élément <sgmltag class="element">sdx:documentBase</sgmltag> pertinent.</para><para>Le <emphasis role="bold">document d'usage</emphasis> est utilisé par SDX lorsqu'on lui demande d'inclure ou d'envoyer un document. Ces opérations peuvent être faites de différentes manières :</para><itemizedlist><listitem><para>Par l'inclusion d'un document, soit par l'API XSP (<sgmltag class="element">sdx:includeDocument</sgmltag>) ou par l'API URL (commande <command>get</command>).</para></listitem><listitem><para>Par des résultats de recherche où l'on demande d'inclure les documents, en utilisant le paramètre <literal>docs="true"</literal>, que ce soit en API XSP ou en API URL.</para></listitem></itemizedlist><para>Le <emphasis role="bold">document original</emphasis> n'est pour l'instant pas utilisé par SDX. Toutefois, il est conservé (par défaut) afin de le restituer si on demande de faire une sauvegarde d'une base de documents (fonction non implantée mais qui le sera prochainement).</para><para>Par ailleurs, veuillez noter que lorsqu'un document est supprimé d'une base de documents, le document original et le document d'usage sont supprimés.</para></webpage> 
