<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2000-2010  Ministere de la culture et de la communication (France), AJLSM
See LICENCE file
-->
<!DOCTYPE webpage PUBLIC "-//Norman Walsh//DTD Website V2.1b1//EN" "../../../dtd/website.dtd" [
  <!ENTITY actions_amender SYSTEM "actions_amender.xml" NDATA XML>
  <!ENTITY actions_controle SYSTEM "actions_controle.xml" NDATA XML>
  <!ENTITY actions_generalites SYSTEM "actions_generalites.xml" NDATA XML>
  <!ENTITY actions_localisation SYSTEM "actions_localisation.xml" NDATA XML>
  <!ENTITY actions_parametres SYSTEM "actions_parametres.xml" NDATA XML>
  <!ENTITY actions_recuperation SYSTEM "actions_recuperation.xml" NDATA XML>
  <!ENTITY actions_requetes SYSTEM "actions_requetes.xml" NDATA XML>
  <!ENTITY bases SYSTEM "../introduction/bases.xml" NDATA XML>
  <!ENTITY parametres_requetes SYSTEM "parametres_requetes.xml" NDATA XML>
  <!ENTITY parametres_sdx SYSTEM "parametres_sdx.xml" NDATA XML>
  <!ENTITY thesaurus SYSTEM "actions_thesaurus.xml" NDATA XML>
]>
<webpage id="actions_requetes">
  <head>
    <title lang="fr">Exécution des requêtes</title>
    <titleabbrev lang="fr">Requêtes</titleabbrev>
    <author lang="fr">
      <firstname>Malo</firstname>
      <surname>Pichot</surname>
      <affiliation>
        <orgname>AJLSM</orgname>
      </affiliation>
    </author>
    <author lang="fr">
      <firstname>Pierrick</firstname>
      <surname>Brihaye</surname>
    </author>
    <revhistory>
      <revision lang="fr">
        <revnumber>1.0</revnumber>
        <date>2003-11-26</date>
      </revision>
    </revhistory>
  </head>
  <orderedlist id="liste_actions">
    <title>Liste des actions SDX décrites dans cette page : </title>
    <listitem>
      <para>
        <ulink url="#sdx_fieldquery">
          <sgmltag class="element">sdx:fieldQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executefieldquery">
          <sgmltag class="element">sdx:executeFieldQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_listquery">
          <sgmltag class="element">sdx:listQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executelistquery">
          <sgmltag class="element">sdx:executeListQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_datequery">
          <sgmltag class="element">sdx:dateQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executedatequery">
          <sgmltag class="element">sdx:executeDateQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_dateintervalquery">
          <sgmltag class="element">sdx:dateIntervalQuery</sgmltag>
        </ulink>
        <emphasis role="bold">Déprécié</emphasis> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executedateintervalquery">
          <sgmltag class="element">sdx:executeDateIntervalQuery</sgmltag>
        </ulink>
        <emphasis role="bold">Déprécié</emphasis> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_simplequery">
          <sgmltag class="element">sdx:simpleQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executesimplequery">
          <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_linearquery">
          <sgmltag class="element">sdx:linearQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executelinearquery">
          <sgmltag class="element">sdx:executeLinearQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_complexquery">
          <sgmltag class="element">sdx:complexQuery</sgmltag>
        </ulink> ; </para>
    </listitem>
    <listitem>
      <para>
        <ulink url="#sdx_executecomplexquery">
          <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
        </ulink>.</para>
    </listitem>
  </orderedlist>
  <section id="concepts" lang="fr">
    <title>Concepts clés</title>
    <section id="concepts_intro">
      <title>Introduction</title>
      <para>SDX est avant tout un outil de recherche d'informations dans une collection de documents XML. Il offre ainsi au développeur un large panel d'éléments pour construire les outils de recherche de son application. Il n'est pas question de développer les caractéristiques de la recherche documentaire dans cette page. Cet aspect très important de SDX occupe déjà un chapitre complet de cette documentation (TODO : lien vers le chapitre). On se contentera de reprendre quelques informations.</para>
    </section>
    <section id="concepts_generation_requete">
      <title>Génération d'une requête</title>
      <para>La génération d'une requête (et donc d'un résultat de requête) dans SDX se déroule en trois phases : </para>
      <orderedlist>
        <listitem>
          <para>La construction de la requête ; </para>
        </listitem>
        <listitem>
          <para>L'exécution de la requête ; </para>
        </listitem>
        <listitem>
          <para>Le résultat de la requête.</para>
        </listitem>
      </orderedlist>
      <para>Il est important d'avoir cette vue d'ensemble de la génération d'une requête pour bien comprendre l'emploi des outils de l'API-XSP de SDX décrits dans cette documentation technique. Cette page ne présente que les deux première phases de génération (la construction et l'exécution). Les éléments SDX liés aux résultats d'une interrogation sont décrits dans la section
    <olink targetdocent="actions_controle">
          <citetitle>Gestion des résultats</citetitle>
        </olink>. </para>
      <para>Le tableau ci-après classe les différents éléments de l'API-XSP entrant dans la construction de la recherche documentaire dans une application SDX selon la place qu'ils occupent dans ce processus : </para>
      <informaltable id="elements_requete">
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colname="col02" colnum="2" colwidth="2.02*"/>
          <colspec colnum="3" colname="col2" colwidth="2.85*"/>
          <colspec colnum="4" colname="col3" colwidth="1.51*"/>
          <thead>
            <row>
              <entry colname="col1">Type de requête</entry>
              <entry colname="col02">Description</entry>
              <entry colname="col2">Elément de construction</entry>
              <entry colname="col3">Elément d'exécution</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry namest="col1" nameend="col3">Types de requêtes</entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_fieldquery">Recherche sur champ</ulink>
              </entry>
              <entry colname="col02">Retrouver une valeur précise dans un champ.</entry>
              <entry colname="col2">
                <ulink url="#sdx_fieldquery">
                  <sgmltag class="element">sdx:fieldQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executefieldquery">
                  <sgmltag class="element">sdx:executeFieldQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_listquery">Recherche sur liste</ulink>
              </entry>
              <entry colname="col02">Retrouver plusieurs valeurs dans un ou plusieurs champs.</entry>
              <entry colname="col2">
                <ulink url="#sdx_listquery">
                  <sgmltag class="element">sdx:listQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executelistquery">
                  <sgmltag class="element">sdx:executeListQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_datequery">Recherche par date</ulink>
              </entry>
              <entry colname="col02">Retrouver une date précise ou dans un intervalle de temps.</entry>
              <entry colname="col2">
                <ulink url="#sdx_datequery">
                  <sgmltag class="element">sdx:dateQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executedatequery">
                  <sgmltag class="element">sdx:executeDateQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_datequery">Recherche simple</ulink>
              </entry>
              <entry colname="col02">Retrouver un ou plusieurs mots dans un document.</entry>
              <entry colname="col2">
                <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executesimplequery">
                  <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry namest="col1" nameend="col3">Syntaxe de requête</entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_linearquery">Recherche linéaire</ulink>
              </entry>
              <entry colname="col02">Formuler des requêtes sur un même niveau.</entry>
              <entry colname="col2">
                <ulink url="#sdx_linearquery">
                  <sgmltag class="element">sdx:linearQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executelinearquery">
                  <sgmltag class="element">sdx:executeLinearQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_complexquery">Recherche complexe</ulink>
              </entry>
              <entry colname="col02">Formuler des requêtes à plusieurs niveaux de regroupements</entry>
              <entry colname="col2">
                <ulink url="#sdx_complequery">
                  <sgmltag class="element">sdx:complexQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executecomplequery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink>
              </entry>
            </row>
            <row>
              <entry colname="col1">
                <ulink url="#sdx_simplequery">Recherche simple</ulink>
              </entry>
              <entry colname="col02">Formuler une requête d'après la syntaxe Lucene (moteur de recherche par défaut de SDX)</entry>
              <entry colname="col2">
                <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_executesimplequery">
                  <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>
                </ulink>
              </entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
      <para>En guise de conclusion de cette introduction, il convient de noter que SDX offre plusieurs manières <emphasis role="bold">d'améliorer une requête</emphasis>. On peut choisir (<emphasis role="italic">a priori</emphasis> du résultat) d'étendre celle-ci à l'aide d'un <emphasis role="italic">thesaurus</emphasis> ou, au contraire, d'y appliquer un <emphasis role="italic">filtre</emphasis>. Il est également possible de <emphasis role="italic">reprendre</emphasis> une recherche (on agit ici <emphasis role="italic">a posteriori</emphasis> du résultat) pour la retravailler. Ces éléments de l'API-XSP de SDX sont décrits
    <olink targetdocent="actions_amender">plus loin</olink>.</para>
    </section>
  </section>
  <section lang="fr" id="sdx_fieldquery">
    <title>
      <sgmltag class="element">sdx:fieldQuery</sgmltag>(CHECK)</title>
    <section>
      <title>Description</title>
      <para>Dans le panel des actions de recherche mises à disposition par SDX, <sgmltag class="element">sdx:fieldQuery</sgmltag> représente la recherche la plus précise, celle qui permet de réduire le bruit à son minimum. Pour cela, <sgmltag class="element">sdx:fieldQuery</sgmltag> recherche une valeur précise dans un champ. Par exemple, on peut retrouver les documents dont le sujet est explicitement <literal>Cartographie de la France</literal>. Ce type de requête ne prendra pas en compte les documents dont le sujet s'en approche tel que <literal>Cartographie de l'Aquitaine</literal> ou <literal>Archéologie de la France</literal>. C'est en cela que ce type de recherche est le plus précis.</para>
      <para>Il est toutefois important de noter que cette méthode n'est logiquement utilisable que sur des index de type <literal>field</literal>. C'est-à-dire des champs indexés tels quels, les termes qu'ils contiennent étant considérées comme une seule et même valeur. Utiliser une requête sur champ sur un index de type <literal>word</literal> (chaque terme correspond à une valeur à indexer) serait illogique et n'aurait peu ou pas de chance d'aboutir à un résultat.</para>
      <note>
        <para>Il est important de noter que ce type de requête ne fait pas intervenir l'analyseur de mot, contrairement aux autres types de recherche. Il n'y a donc pas de transformation de la valeur recherchée : <sgmltag class="attribute">value="France"</sgmltag> signifie que l'on recherchera sera recherchée telle que, et non pas <sgmltag class="attvalue">france</sgmltag>.</para>
      </note>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.80*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">Dans une
        <ulink url="#sdx_executecomplexquery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink> ou un
        <ulink url="#sdx_executefieldquery">
                  <sgmltag class="element">sdx:executeFieldQuery</sgmltag>
                </ulink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Un élément
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender">
                  <sgmltag class="element">sdx:expandQuery</sgmltag>
                </olink> offrant l'utilisation d'un <emphasis role="italic">thesaurus</emphasis>. Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section>
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="*"/>
          <colspec colnum="2" colname="col2" colwidth="*"/>
          <colspec colnum="3" colname="col3" colwidth="*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Présence</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Nom du champ interrogé.</entry>
              <entry colname="col3">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur ou terme recherché.</entry>
              <entry colname="col3">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executefieldquery">
    <title>
      <sgmltag class="element">sdx:executeFieldQuery</sgmltag>(CHECK)</title>
    <section>
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeFieldQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_fieldquery">requête sur champ</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.89*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans
        <olink localinfo="sdx_page" targetdocent="actions_generalites">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section>
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs).</para>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="*"/>
          <colspec colnum="2" colname="col2" colwidth="*"/>
          <colspec colnum="3" colname="col3" colwidth="*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Présence</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Nom du champ interrogé.</entry>
              <entry colname="col3">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur ou terme recherché.</entry>
              <entry colname="col3">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="exemples">
      <title>Exemples</title>
      <example lang="fr" id="exemple_sdx_executefieldquery_01">
        <title>Rechercher les documents ayant un même auteur</title>
        <para>Dans l'exemple suivant, on veut obtenir la liste des documents écrits par le même auteur, et seulement ces documents.</para>
        <programlisting>
&lt;sdx:page&gt;
 &lt;sdx:executeFieldQuery base="sdxworld" field="auteur" value="Emile Zola"/&gt;
&lt;/sdx:page&gt;
</programlisting>
      </example>
      <example lang="fr" id="exemple_sdx_executefieldquery_02">
        <title> Rechercher un terme dans un index</title>
        <para>Dans l'exemple suivant, on recherche l'ensemble des documents d'une base de documents. On recherche dons strictement la même chose dans l'<ulink url="#exemple_sdx_executesimplequery_01">exemple illustrant une recherche simple</ulink>. La manière d'y arriver n'est cependant pas la même.</para>
        <programlisting>
&lt;sdx:page&gt;
 &lt;sdx:executeFieldQuery
   base="sdxworld sdxdoc"
   field="sdxall"
   value="1"
   hpp="-1"
 /&gt;
&lt;/sdx:page&gt;
</programlisting>
      </example>
      <para>On trouvera un
    <olink localinfo="exemple_sdx_debug_01" targetdocent="actions_generalites">exemple atypique de l'utilisation de sdx:executeFieldQuery</olink> dans la description de
    <olink localinfo="sdx_debug" targetdocent="actions_generalites">sdx:debug</olink>.</para>
    </section>
  </section>
  <section lang="fr" id="sdx_listquery">
    <title>
      <sgmltag class="element">sdx:listQuery</sgmltag></title>
    <section id="sdx_listquery_description">
      <title>Description</title>
      <para>Dans le panel des actions de recherche SDX, <sgmltag class="element">sdx:listQuery</sgmltag> représente la recherche d'une liste de termes. On peut y voir une extension de la
    <ulink url="#sdx_fieldquery">recherche sur champ</ulink>.</para>
      <para>Lorsqu'une base indexe un champ répétable (auteur(s), sujet(s), etc.), il peut être intéressant de rechercher les documents répondant à plusieurs valeurs sur ce même champ. La recherche d'une liste (paramètre <sgmltag class="attribute">value</sgmltag> répétable sur le champ <sgmltag class="attribute">field</sgmltag>), correspond à la requête simple <literal>+field:value1 +field:value2 +field:value3</literal>. Notez que l'opérateur par défaut est un <literal>ou</literal> logique. Il peut être modifié en <literal>et</literal> (<literal>op=or|and</literal>) pour donner la requête suivante : <literal>field:value1 field:value2 field:value3</literal>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.88*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">Dans une
        <ulink url="#sdx_executecomplexquery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink> ou un
        <ulink url="#sdx_executefieldquery">
                  <sgmltag class="element">sdx:executeFieldQuery</sgmltag>
                </ulink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Un élément
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender">
                  <sgmltag class="element">sdx:expandQuery</sgmltag>
                </olink> offrant l'utilisation d'un <emphasis role="italic">thesaurus</emphasis>. Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_listquery_param">
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="*"/>
          <colspec colname="col2" colnum="2" colwidth="1.50*"/>
          <colspec colnum="3" colname="col4" colwidth="*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col4">Présence</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique.</entry>
              <entry colname="col4">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Nom du champ interrogé.</entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur ou terme recherché.</entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col4"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executelistquery">
    <title>
      <sgmltag class="element">sdx:executeListQuery</sgmltag>(CHECK)</title>
    <section id="sdx_executelistquery_description">
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeListQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_listquery">requête sur liste</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.89*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans
        <olink localinfo="sdx_page" targetdocent="actions_generalites">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executelistquery_param">
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs). </para>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="*"/>
          <colspec colname="col2" colnum="2" colwidth="1.50*"/>
          <colspec colnum="3" colname="col4" colwidth="*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col4">Présence</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique.</entry>
              <entry colname="col4">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Nom du champ interrogé.</entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur ou terme recherché.</entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col4"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executelistequery_exemples">
      <title>Exemples</title>
      <example lang="fr">
        <title>Rechercher plusieurs termes dans un index</title>
        <para>Dans l'exemple suivant, on recherche les termes "verne" et "jules" dans un index répétable "auteur". On omet de préciser l'application et la base de documents ; il s'agit de l'application et de la base de documents courantes comme décrit dans la
      <olink targetdocent="parametres_sdx">section sur les paramètres</olink>.</para>
        <programlisting>
&lt;sdx:page&gt;
 &lt;sdx:executeListQuery field="auteur" value="verne jules" op="and"/&gt;
&lt;/sdx:page&gt;
</programlisting>
      </example>
    </section>
  </section>
  <section lang="fr" id="sdx_datequery">
    <title>
      <sgmltag class="element">sdx:dateQuery</sgmltag>(CHECK)</title>
    <section id="sdx_datequery_description">
      <title>Description</title>
      <para>Dans le panel des actions de recherche fournies par SDX, <sgmltag class="element">sdx:dateQuery</sgmltag> représente une recherche de dates (représentant ou non un intervalle).</para>
      <para>La recherche par intervalle de dates ne donnera de résultats intéressants que pour un champ de type <sgmltag class="attvalue">date</sgmltag>. Il s'agit d'une recherche où l'on peut spécifier une date de début ou une date de fin (voire les deux) et trouver des résultats dont le champ spécifié contient une date entre ces deux valeurs. Si l'une des deux dates n'est pas spécifiée, la recherche n'est pas bornée. Si aucune date n'est spécifiée, il y aura une erreur d'exécution.</para>
      <para>TODO : décrire l'usage de 2 champs s'appliquant réciproquement au champ concerné par to (!) puis à celui concerné par from</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.48*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">Dans une
        <ulink url="#sdx_executecomplexquery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink> ou un
        <ulink url="#sdx_executedatequery">
                  <sgmltag class="element">sdx:executeDateQuery</sgmltag>
                </ulink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_datequery_param">
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.14*"/>
          <colspec colnum="3" colname="col3" colwidth="1.57*"/>
          <colspec colnum="4" colname="col4" colwidth="1.57*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Le nom du champ que l'on souhaite interroger.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">from</sgmltag>
              </entry>
              <entry colname="col2">Borne de départ (on recherchera les dates plus récente que celle-ci).</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:from</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire (si <sgmltag class="attribute">to</sgmltag> n'est pas donné).</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">to</sgmltag>
              </entry>
              <entry colname="col2">Borne de fin (on recherchera les dates plus anciennes que celle-ci).</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:to</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire (si <sgmltag class="attribute">from</sgmltag> n'est pas donné).</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executedatequery">
    <title>
      <sgmltag class="element">sdx:executeDateQuery</sgmltag>(CHECK)</title>
    <section id="sdx_executedatequery_description">
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeDateQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_datequery">requête sur date</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.89*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans
        <olink localinfo="sdx_page" targetdocent="actions_generalites">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executedatequery_parametres">
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs). </para>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.14*"/>
          <colspec colnum="3" colname="col3" colwidth="1.57*"/>
          <colspec colnum="4" colname="col4" colwidth="1.57*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Le nom du champ que l'on souhaite interroger.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">from</sgmltag>
              </entry>
              <entry colname="col2">Borne de départ (on recherchera les dates plus récente que celle-ci).</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:from</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire (si <sgmltag class="attribute">to</sgmltag> n'est pas donné).</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">to</sgmltag>
              </entry>
              <entry colname="col2">Borne de fin (on recherchera les dates plus anciennes que celle-ci).</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:to</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire (si <sgmltag class="attribute">from</sgmltag> n'est pas donné).</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executedatequery_exemples">
      <title>Exemples</title>
      <example lang="fr" id="exemple_executedatequery_01">
        <title>Recherche sur un intervalle de dates</title>
        <para>Dans l'exemple suivant, on recherche les documents qui ont été créés (champ <literal>creation</literal>) entre le 23 et le 24 mai 2003. On omet de préciser l'application et la base de documents ; il s'agit de l'application et de la base de documents courante comme décrit dans la
      <olink targetdocent="parametres_sdx">section sur les paramètres</olink>.</para>
        <programlisting>
&lt;sdx:page&gt;
 &lt;sdx:executeDateQuery field="creation" from="2003-05-23" to="2003-05-24"/&gt;
&lt;/sdx:page&gt;
</programlisting>
      </example>
    </section>
  </section>
  <section lang="fr" id="sdx_dateintervalquery">
    <title>
      <sgmltag class="element">sdx:dateIntervalQuery</sgmltag> <emphasis role="bold">Déprécié</emphasis> (CHECK)</title>
    <para>L'action <sgmltag class="element">sdx:dateIntervalQuery</sgmltag> est identique à
    <ulink url="#sdx_datequery">
        <sgmltag class="element">sdx:dateQuery</sgmltag>
      </ulink>. On se reportera à cette dernière pour en connaître la définition.</para>
  </section>
  <section lang="fr" id="sdx_executedateintervalquery">
    <title>
      <sgmltag class="element">sdx:executeDateIntervalQuery</sgmltag> <emphasis role="bold">Déprécié</emphasis> (CHECK)</title>
    <para>L'action <sgmltag class="element">sdx:executeDateIntervalQuery</sgmltag> est identique à
    <ulink url="#sdx_executedatequery">
        <sgmltag class="element">sdx:executeDateQuery</sgmltag>
      </ulink>. On se reportera à cette dernière pour en connaître la définition.</para>
  </section>
  <section lang="fr" id="sdx_simplequery">
    <title>
      <sgmltag class="element">sdx:simpleQuery</sgmltag></title>
    <section id="sdx_simplequery_description">
      <title>Description</title>
      <para>Malgré son nom <sgmltag class="element">sdx:simpleQuery</sgmltag> représente sans doute l'élément le complexe ou le puissant des API décrites ici. La lecture du
    <ulink url="#elements_requete">tableau de classement</ulink> au début de cette page peu laisser perplexe dans la mesure où <sgmltag class="element">sdx:simpleQuery</sgmltag> apparaît à deux endroits, dans les types ainsi que dans les syntaxes de requêtes. Cela traduit, en effet, le double aspects de cet élément.</para>
      <para>D'un côté il représente le type le plus simple de requête supporté par SDX. On recherche un mot dans le champ par défaut (défini dans <filename>application.xconf</filename> ; s'il n'y en a pas
    <ulink url="http://jakarta.apache.org/lucene/docs/queryparsersyntax.html">Lucene</ulink> prend le dernier de la liste : FIXME). De l'autre côté, <sgmltag class="element">sdx:simpleQuery</sgmltag> permet d'effectuer une requête directement dans le langage de l'analyseur de requête (<emphasis role="italic">query parser</emphasis>) de
    <ulink url="http://jakarta.apache.org/lucene/docs/queryparsersyntax.html">Lucene</ulink> (i.e., le moteur de recherche par défaut supporté par SDX). Cela signifie que l'on peut concrètement effectuer l'ensemble des types de recherche décrits
    <ulink url="#elements_requetes">ci-avant</ulink> : </para>
      <variablelist>
        <varlistentry>
          <term>La recherche sur liste</term>
          <listitem>
            <para>
              <literal>+titre:france +titre:cartographie</literal>
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>La recherche linéaire</term>
          <listitem>
            <para>
              <literal>+titre:france +auteur:verne -auteur:jules</literal>
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>La recherche par date</term>
          <listitem>
            <para>
              <literal>+creation:[2002-05-28 TO 2003-05-28]</literal>
            </para>
          </listitem>
        </varlistentry>
        <varlistentry>
          <term>La recherche complexe</term>
          <listitem>
            <para>
              <literal>(+titre:france +titre:cartographie) -(+auteur:verne +:auteur:jules) +creation:[2002-05-28 TO 2003-05-28]</literal>
            </para>
          </listitem>
        </varlistentry>
      </variablelist>
      <para>SDX ajoute une fonctionnalité à cette syntaxe déjà importante. Il permet l'utilisation d'un opérateur <literal>|</literal>. Lorsque cet opérateur englobe le terme recherché, il déconnecte l'analyseur de mot. De cette manière, il est possible d'effectuer une recherche sur champ. La requête simple <literal>titre:|France|</literal> donnera tous les documents dont le champ titre contient le mot "France" avec la majuscule.</para>
      <note>
        <para>Il est bien entendu indispensable que le champ <literal>titre</literal> en question ait été indexé en <literal>field</literal> et non comme <literal>word</literal>, sinon on obtiendra les documents qui ont <literal>France</literal>, mais également autre chose dans le titre</para>
      </note>
      <para>Une requête simple peut-être exécutée en tant que telle grâce à l'action
    <ulink url="#sdx_executesimplequery">
          <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>
        </ulink>. Elle peut également entrer dans la construction d'une
    <ulink url="#sdx_executecomplexquery">requête complexe</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.00*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">Dans une
        <ulink url="#sdx_executecomplexquery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink> ou un
        <ulink url="#sdx_executesimplequery">
                  <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>
                </ulink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Un élément
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender">
                  <sgmltag class="element">sdx:expandQuery</sgmltag>
                </olink> offrant l'utilisation d'un <emphasis role="italic">thesaurus</emphasis>. Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_simplequery_parametres">
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="1.13*"/>
          <colspec colnum="2" colname="col2" colwidth="4.26*"/>
          <colspec colname="col3" colnum="3" colwidth="1.00*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">query</sgmltag>
              </entry>
              <entry colname="col2">Le contenu de la requête (les termes recherchés ou la syntaxe Lucene).</entry>
              <entry colname="col3">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">q</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Identifiant du champ dans lequel on souhaite effectuer la recherche. S'il n'est pas spécifié, SDX emploie le champ marqué par défaut dans le fichier <filename>application.xconf</filename>.</entry>
              <entry colname="col3">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. Par défaut, il s'agit d'un <literal>ou</literal> logique.</entry>
              <entry colname="col3">Facultatif</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executesimplequery">
    <title>
      <sgmltag class="element">sdx:executeSimpleQuery</sgmltag>(CHECK)</title>
    <section id="sdx_executesimplequery_description">
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeSimpleQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_simplequery">requête simple</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.55*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans
        <olink localinfo="sdx_page" targetdocent="actions_generalites">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executesimplequery_parametres">
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs). </para>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="1.98*"/>
          <colspec colnum="3" colname="col3" colwidth="1.50*"/>
          <colspec colnum="4" colname="col4" colwidth="1.50*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">query</sgmltag>
              </entry>
              <entry colname="col2">Le contenu de la requête (syntaxe Lucene).</entry>
              <entry colname="col3">
                <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">q</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique.</entry>
              <entry colname="col3">
                <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col4">Facultatif</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_simplequery_exemples">
      <title>Exemples</title>
      <example lang="fr" id="exemple_sdx_executesimplequery_01">
        <title>Rechercher l'ensemble des documents</title>
        <para>Dans l'exemple suivant, on recherche l'ensemble des documents contenus dans deux bases de document <literal>sdxworld</literal> et <literal>sdxdoc</literal> (ce sont les deux bases de documents définies dans l'application <literal>SDXTest</literal>). Lors de l'indexation, chaque document se voit affecté un champ <literal>sdxall</literal> avec une valeur de <literal>1</literal>. De cette manière, il suffit d'interroger sur ce champ pour avoir l'ensemble des documents. Le paramètre <sgmltag class="attribute">hpp</sgmltag> positionné à <sgmltag class="attvalue">-1</sgmltag> indique que l'on veut toutes les réponses dans une seule page de résultats.</para>
        <programlisting>
&lt;xsp:page&gt;
 &lt;sdx:executeSimpleQuery
  base="sdxworld sdxdoc"
  query="sdxall:1"
  hpp=-1
 /&gt;
&lt;/xsp:page&gt;
</programlisting>
      </example>
    </section>
  </section>
  <section lang="fr" id="sdx_linearquery">
    <title>
      <sgmltag class="element">sdx:linearQuery</sgmltag>(CHECK)</title>
    <section id="sdx_linearquery_description">
      <title>Description</title>
      <para>Avec
    <ulink url="#sdx_complexquery">
          <sgmltag class="element">sdx:complexQuery</sgmltag>
        </ulink> et
    <ulink url="#sdx_simplequery">
          <sgmltag class="element">sdx:simpleQuery</sgmltag>
        </ulink>, <sgmltag class="element">sdx:linearQuery</sgmltag> est l'une des trois actions de recherche décrivant une syntaxe donnée. Cela signifie que <sgmltag class="element">sdx:linearQuery</sgmltag> n'effectue pas de recherche particulière comme
    <ulink url="#sdx_fieldquery">
          <sgmltag class="element">sdx:fieldQuery</sgmltag>
        </ulink> pour une recherche dans un champ ou
    <ulink url="#sdx_datequery">
          <sgmltag class="element">sdx:dateQuery</sgmltag>
        </ulink> pour rechercher une date. Elle propose une certaine forme de rédaction.
    <ulink url="#sdx_complexquery">
          <sgmltag class="element">sdx:complexQuery</sgmltag>
        </ulink> en propose une autre.</para>
      <para>La requête linéaire est un outil commode pour formuler une recherche avancée par formulaire. Elle permet de formuler des requêtes sur un même niveau (i.e. en ligne). Ainsi la question « Trouve moi les livres ayant le mot <emphasis>monde</emphasis> dans le titre et ayant la <emphasis>physique</emphasis> pour sujet, ou alors écrit par <emphasis>Einstein</emphasis> » peut se traduire sous la forme d'une URL (avec une
    <olink targetdocent="bases">base de documents</olink> configurée en ce sens) : <literal>?op=and&amp;f=titre&amp;v=monde&amp;op=and&amp;f=sujet&amp;v=physique&amp;op=or&amp;f=auteur&amp;v=einstein</literal>, ce qui donnera une requête simple <literal>+titre:monde +sujet:physique auteur:einstein</literal>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="2.72*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">D'un point de vue théorique, il est possible d'intégrer <sgmltag class="element">sdx:linearQuery</sgmltag> dans une
        <ulink url="#sdx_complexquery">
                  <sgmltag class="element">requête complexe</sgmltag>
                </ulink>. Mais est-ce véritablement intéressant ?</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Un élément
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender">
                  <sgmltag class="element">sdx:expandQuery</sgmltag>
                </olink> offrant l'utilisation d'un <emphasis role="italic">thesaurus</emphasis>. Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_linearquery_parametres">
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.43*"/>
          <colspec colnum="2" colname="col2" colwidth="1.99*"/>
          <colspec colnum="3" colname="col3" colwidth="1.04*"/>
          <colspec colnum="4" colname="col4" colwidth="1.00*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique. Il se place <emphasis>avant</emphasis> les champ/valeur sur lesquels il doit prendre effet.</entry>
              <entry colname="col3"/>
              <entry colname="col4">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Code du champ que l'on souhaite interroger.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur recherchée.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:values</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:values</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executelinearquery">
    <title>
      <sgmltag class="element">sdx:executeLinearQuery</sgmltag>(CHECK)</title>
    <section id="sdx_executelinearquery_description">
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeLinearQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_linearquery">requête linéaire</ulink> (<ulink url="#sdx_linearquery">cf. plus haut</ulink>).</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.37*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans
        <olink targetdocent="actions_generalites" localinfo="sdx_page">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executelinearquery_parametres">
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs). </para>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.41*"/>
          <colspec colnum="2" colname="col2" colwidth="2.98*"/>
          <colspec colnum="3" colname="col3" colwidth="3.41*"/>
          <colspec colnum="4" colname="col4" colwidth="1.00*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">op</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique.</entry>
              <entry colname="col3">
                <ulink url="#sdx_linearquery">
                  <sgmltag class="element">sdx:linearQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col4">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">field</sgmltag>
              </entry>
              <entry colname="col2">Le code du champ que l'on souhaite interroger.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4">Obligatoire</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">f</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:fields</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">value</sgmltag>
              </entry>
              <entry colname="col2">Valeur recherchée.</entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:values</sgmltag>
              </entry>
              <entry colname="col4">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">v</sgmltag>
              </entry>
              <entry colname="col2">
                <emphasis role="italic">Idem</emphasis>. <emphasis role="bold">Déprécié</emphasis>
              </entry>
              <entry colname="col3">
                <sgmltag class="element">sdx:values</sgmltag>
              </entry>
              <entry colname="col4"/>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_complexquery">
    <title>
      <sgmltag class="element">sdx:complexQuery</sgmltag>(CHECK)</title>
    <section id="sdx_compexquery_description">
      <title>Description</title>
      <para>Avec
    <ulink url="#sdx_linearquery">
          <sgmltag class="element">sdx:linearQuery</sgmltag>
        </ulink> et
    <ulink url="#sdx_simplequery">
          <sgmltag class="element">sdx:simpleQuery</sgmltag>
        </ulink>, <sgmltag class="element">sdx:complexQuery</sgmltag> est l'une des trois actions de recherche décrivant une syntaxe donnée. Cela signifie que <sgmltag class="element">sdx:complexQuery</sgmltag> n'effectue pas de recherche particulière comme
    <ulink url="#sdx_fieldquery">
          <sgmltag class="element">sdx:fieldQuery</sgmltag>
        </ulink> pour une recherche dans un champ ou
    <ulink url="#sdx_datequery">
          <sgmltag class="element">sdx:dateQuery</sgmltag>
        </ulink> pour rechercher une date. Elle propose une forme de rédaction, sans doute la plus élaborée.</para>
      <para>Une recherche complexe permet d'élaborer un arbre de requêtes reliées par des opérateurs (<ulink url="#complexop">
          <sgmltag class="attribute">complexop</sgmltag>
        </ulink>). Cette méthode permet de représenter des niveaux de parenthèses. L'objectif serait qu'une requête complexe puisse comporter des requêtes elles-mêmes complexes. Cette possibilité n'est pas encore complètement supportée par SDX, car, pour l'essentiel, l'information provient de formulaires (généralement plats). On peut au moins combiner toutes les requêtes précédemment décrites afin d'affiner les recherches avancées.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="3.95*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">Dans une
        <ulink url="#sdx_executecomplexquery">
                  <sgmltag class="element">sdx:executeComplexQuery</sgmltag>
                </ulink> ou un
        <ulink url="#sdx_executedatequery">
                  <sgmltag class="element">sdx:executeDateQuery</sgmltag>
                </ulink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">Un élément
        <olink localinfo="sdx_expandquery" targetdocent="actions_amender">
                  <sgmltag class="element">sdx:expandQuery</sgmltag>
                </olink> offrant l'utilisation d'un <emphasis role="italic">thesaurus</emphasis>. Des stratégies peuvent être définies grâce à l'utilisation des actions de contrôle de flux
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (la requête n'est pas valide), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_compexquery_parametres">
      <title>Paramètres</title>
      <informaltable>
        <tgroup cols="3">
          <colspec colnum="1" colname="col1" colwidth="1.13*"/>
          <colspec colnum="2" colname="col2" colwidth="4.26*"/>
          <colspec colname="col3" colnum="3" colwidth="1.00*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute" id="complexop">complexop</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. Par défaut, l'opérateur est un <literal>ou</literal> logique.</entry>
              <entry colname="col3">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">bqid</sgmltag>
              </entry>
              <entry colname="col2">Identifiant de la requête que l'on souhaite affiner ou étendre.</entry>
              <entry colname="col3">Facultatif</entry>
            </row>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">bop</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. Par défaut , l'opérateur est un <literal>ou</literal> logique.</entry>
              <entry colname="col3">Facultatif</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
  </section>
  <section lang="fr" id="sdx_executecomplexquery">
    <title>
      <sgmltag class="element">sdx:executeComplexQuery</sgmltag>(CHECK)</title>
    <section id="sdx_executecomplexquery_description">
      <title>Description</title>
      <para>
        <sgmltag class="element">sdx:executeComplexQuery</sgmltag> apporte l'environnement nécessaire à l'exécution d'une
    <ulink url="#sdx_complexquery">requête complexe</ulink>.</para>
      <informaltable lang="fr">
        <tgroup cols="2">
          <colspec colnum="1" colname="col1" colwidth="1.00*"/>
          <colspec colnum="2" colname="col2" colwidth="4.23*"/>
          <tbody>
            <row>
              <entry colname="col1">Code implémentant cette action</entry>
              <entry colname="col2">
                <filename>sdx-queries.xsl</filename>
              </entry>
            </row>
            <row>
              <entry colname="col1">Contexte d'utilisation</entry>
              <entry colname="col2">N'importe où dans un
        <olink localinfo="sdx_page" targetdocent="actions_generalites">
                  <sgmltag class="element">sdx:page</sgmltag>
                </olink>.</entry>
            </row>
            <row>
              <entry colname="col1">Contenu éventuel</entry>
              <entry colname="col2">L'ensemble des actions de recherche décrites dans cette page :
        <ulink url="#sdx_simplequery">
                  <sgmltag class="element">sdx:simpleQuery</sgmltag>
                </ulink> ;
        <ulink url="#sdx_fieldquery">
                  <sgmltag class="element">sdx:fieldQuery</sgmltag>
                </ulink> ;
        <ulink url="#sdx_listquery">
                  <sgmltag class="element">sdx:listQuery</sgmltag>
                </ulink> ;
        <ulink url="#sdx_datequery">
                  <sgmltag class="element">sdx:dateQuery</sgmltag>
                </ulink>. Comme les autres actions d'exécution de requête, <sgmltag class="element">sdx:executeComplexQuery</sgmltag> peut contenir les actions de contrôle de flux :
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> et
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink>. En cas d'échec de la requête (il n'y a aucun résultat à la requête posée), les actions et/ou éléments contenus dans l'ensemble
        <olink localinfo="sdx_fallback" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:fallback</sgmltag>
                </olink> sont traités. Sinon, ce sont ceux de
        <olink localinfo="sdx_success" targetdocent="actions_parametres">
                  <sgmltag class="element">sdx:success</sgmltag>
                </olink> lorsqu'il existe.</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section id="sdx_executecomplexquery_parametres">
      <title>Paramètres</title>
      <para>
        <olink targetdocent="parametres_requetes">Paramètres communs aux actions de requêtes</olink> (facultatifs). </para>
      <informaltable>
        <tgroup cols="4">
          <colspec colnum="1" colname="col1" colwidth="1.66*"/>
          <colspec colnum="2" colname="col2" colwidth="2.60*"/>
          <colspec colnum="3" colname="col3" colwidth="3.34*"/>
          <colspec colnum="4" colname="col4" colwidth="1.00*"/>
          <thead>
            <row>
              <entry colname="col1">Nom</entry>
              <entry colname="col2">Description</entry>
              <entry colname="col3">Elément correspondant</entry>
              <entry colname="col4"/>
            </row>
          </thead>
          <tbody>
            <row>
              <entry colname="col1">
                <sgmltag class="attribute">complexop</sgmltag>
              </entry>
              <entry colname="col2">Opérateur de requête. L'opérateur par défaut est un <literal>ou</literal> logique.</entry>
              <entry colname="col3">
                <ulink url="#sdx_complexquery">
                  <sgmltag class="element">sdx:complexQuery</sgmltag>
                </ulink>
              </entry>
              <entry colname="col4">Facultatif</entry>
            </row>
          </tbody>
        </tgroup>
      </informaltable>
    </section>
    <section>
      <title id="sdx_executecomplexquery_exemples">Exemples</title>
      <example lang="fr" id="exemple_sdx_executecomplexquery_01">
        <title>Construction d'une requête complexe</title>
        <para>Le code qui suit provient d'un cas réel.</para>
        <programlisting>
&lt;sdx:executeComplexQuery&gt;
  &lt;sdx:sort field="region" order="descending"/&gt;
  &lt;sdx:sort field="departement" order="descending"/&gt;
  &lt;sdx:simpleQuery queryParam="fulltext"/&gt;
  &lt;sdx:listQuery
    field="pays"
    valueParam="pays"
    complexopParam="pays_op"/&gt;
  &lt;sdx:listQuery
    field="themes"
    valueParam="themes_v"
    op="and"
    complexopParam="themes_op"/&gt;
  &lt;sdx:simpleQuery
    field="title"
    queryParam="title"
    complexopParam="title_op"/&gt;
&lt;/sdx:executeComplexQuery&gt;
</programlisting>
        <para>On repérera le paramètre <sgmltag class="attribute">complexop</sgmltag> qui permet de relier chaque requêtes entre elles, selon le même mécanisme booléen que la
      <ulink url="#sdx_linearquery">requête linéaire</ulink>. On découvre aussi qu'à chaque <literal>execute*Query</literal> correspond un <literal>*Query</literal>. Cette action construit une requête, mais sans l'exécuter. Un objet est construit ; il est combiné dans la requête complexe. Mais les résultats sont sortis par <sgmltag class="element">sdx:executeComplexQuery</sgmltag>, selon la même manière que les requêtes précédentes.</para>
      </example>
    </section>
  </section>
</webpage>
