Author: desruisseaux
Date: Thu Oct 18 10:03:15 2012
New Revision: 1399572

URL: http://svn.apache.org/viewvc?rev=1399572&view=rev
Log:
Added a chapter about XML.

Added:
    sis/branches/JDK7/src/main/docbook/fr/XML.xml   (with props)
Modified:
    sis/branches/JDK7/src/main/docbook/book.entities
    sis/branches/JDK7/src/main/docbook/fr.xml
    sis/branches/JDK7/src/main/docbook/fr/geoapi.xml
    sis/branches/JDK7/src/main/docbook/fr/introduction.xml
    sis/branches/JDK7/src/main/docbook/fr/standards.xml

Modified: sis/branches/JDK7/src/main/docbook/book.entities
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/book.entities?rev=1399572&r1=1399571&r2=1399572&view=diff
==============================================================================
--- sis/branches/JDK7/src/main/docbook/book.entities (original)
+++ sis/branches/JDK7/src/main/docbook/book.entities Thu Oct 18 10:03:15 2012
@@ -3,3 +3,11 @@
 <!ENTITY sis-release    "0.3-jdk7-SNAPSHOT">
 <!ENTITY gml-version    "3.3">
 <!ENTITY geoapi-javadoc "http://www.geoapi.org/snapshot/javadoc";>
+<!ENTITY javase-docs    "http://docs.oracle.com/javase/7/docs";>
+<!ENTITY xmlns-gco      "http://www.isotc211.org/2005/gco";>
+<!ENTITY xmlns-gfc      "http://www.isotc211.org/2005/gfc";>
+<!ENTITY xmlns-gmd      "http://www.isotc211.org/2005/gmd";>
+<!ENTITY xmlns-gmi      "http://www.isotc211.org/2005/gmi";>
+<!ENTITY xmlns-gmx      "http://www.isotc211.org/2005/gmx";>
+<!ENTITY xmlns-gml      "http://www.opengis.net/gml";>
+<!ENTITY xmlns-xlink    "http://www.w3.org/1999/xlink";>

Modified: sis/branches/JDK7/src/main/docbook/fr.xml
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/fr.xml?rev=1399572&r1=1399571&r2=1399572&view=diff
==============================================================================
--- sis/branches/JDK7/src/main/docbook/fr.xml (original)
+++ sis/branches/JDK7/src/main/docbook/fr.xml Thu Oct 18 10:03:15 2012
@@ -30,5 +30,6 @@
   <xi:include href="fr/introduction.xml"/>
   <xi:include href="fr/standards.xml"/>
   <xi:include href="fr/geoapi.xml"/>
+  <xi:include href="fr/XML.xml"/>
 
 </book>

Added: sis/branches/JDK7/src/main/docbook/fr/XML.xml
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/fr/XML.xml?rev=1399572&view=auto
==============================================================================
--- sis/branches/JDK7/src/main/docbook/fr/XML.xml (added)
+++ sis/branches/JDK7/src/main/docbook/fr/XML.xml Thu Oct 18 10:03:15 2012
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book [
+  <!ENTITY % book.entities SYSTEM "../book.entities">
+  %book.entities;
+]>
+<chapter xmlns="http://docbook.org/ns/docbook"; version="5.0"
+      xmlns:xlink = "http://www.w3.org/1999/xlink";>
+
+  <title>Représentation des objets en <acronym>XML</acronym></title>
+  <para>
+    Les objets définis par les standards 
<acronym>OGC</acronym>/<acronym>ISO</acronym>
+    doivent pouvoir être échangés sur internet entre des machines distantes,
+    utilisant des logiciels différents écrits dans des langages différents.
+    Quelques uns des formats les plus connus sont
+    le <acronym>WKT</acronym> (<foreignphrase>Well Known Text</foreignphrase>) 
et
+    le <acronym>WKB</acronym> (<foreignphrase>Well Known 
Binary</foreignphrase>).
+    Mais le format le plus exhaustif et souvent considéré comme la 
référence est le <acronym>XML</acronym>,
+    au point où la façon de représenter les objets <acronym>ISO</acronym> 
dans ce format fait parfois l’objet d’un standard international à part 
entière.
+    Ainsi, les classes de méta-données sont décrites dans le standard 
<acronym>ISO</acronym> 19115 (une spécification dite 
<firstterm>abstraite</firstterm>),
+    alors que la représentation de ces classes en <acronym>XML</acronym> est 
décrite par le standard <acronym>ISO</acronym> 19139.
+  </para>
+  <para>
+    Les différents standards <acronym>OGC</acronym>/<acronym>ISO</acronym> 
n’emploient pas tous la même stratégie
+    pour exprimer les objets en <acronym>XML</acronym>.
+    Le standard <acronym>ISO</acronym> 19139 en particulier emploie une 
approche plus verbeuse que les autres normes,
+    et fera l’objet d’une section particulière.
+    Mais la plupart des formats <acronym>XML</acronym> ont en commun de 
définir des types et des attributs supplémentaires
+    qui ne font pas partie des spécifications abstraites d’origines.
+    Ces attributs supplémentaires sont habituellement propres au 
<acronym>XML</acronym>
+    et peuvent ne pas apparaître directement dans l’<acronym>API</acronym> 
de Apache <acronym>SIS</acronym>.
+    Certains de ces attributs, notamment <literal role="OGC">gmd:id</literal>, 
<literal role="OGC">gco:uuid</literal>
+    et <literal>xlink:href</literal>, restent toutefois accessibles sous forme 
de paires clé-valeurs.
+  </para>
+  <para>
+    Les documents <acronym>XML</acronym> peuvent employer les préfixes de 
leur choix,
+    mais les préfixes suivants sont couramment employés dans la pratique.
+    Ils apparaissent donc par défaut dans les documents produits par Apache 
<acronym>SIS</acronym>.
+    Ces préfixes sont définis dans la classe <classname 
role="SIS">org.apache.sis.xml.Namespaces</classname>.
+  </para>
+  <table frame="none">
+    <title>Préfixes d’espaces de noms <acronym>XML</acronym> 
courants</title>
+    <tgroup cols="2">
+      <colspec colname="prefix"/>
+      <colspec colname="namespace"/>
+      <thead>
+        <row>
+          <entry>Préfixe</entry>
+          <entry>Espace de nom</entry>
+        </row>
+      </thead>
+      <tbody>
+        <row>
+          <entry><literal role="OGC">gco</literal></entry>
+          <entry><literal>&xmlns-gco;</literal></entry>
+        </row>
+        <row>
+          <entry><literal role="OGC">gfc</literal></entry>
+          <entry><literal>&xmlns-gfc;</literal></entry>
+        </row>
+        <row>
+          <entry><literal role="OGC">gmd</literal></entry>
+          <entry><literal>&xmlns-gmd;</literal></entry>
+        </row>
+        <row>
+          <entry><literal role="OGC">gmi</literal></entry>
+          <entry><literal>&xmlns-gmi;</literal></entry>
+        </row>
+        <row>
+          <entry><literal role="OGC">gmx</literal></entry>
+          <entry><literal>&xmlns-gmx;</literal></entry>
+        </row>
+        <row>
+          <entry><literal role="OGC">gml</literal></entry>
+          <entry><literal>&xmlns-gml;</literal></entry>
+        </row>
+        <row>
+          <entry><literal>xlink</literal></entry>
+          <entry><literal>&xmlns-xlink;</literal></entry>
+        </row>
+      </tbody>
+    </tgroup>
+  </table>
+
+  <sidebar>
+    <title>Outils de lecture et d’écriture de documents 
<acronym>XML</acronym></title>
+    <para>
+      Apache <acronym>SIS</acronym> emploie différentes bibliothèques pour 
lire et écrire différents type d’objets.
+      La bibliothèque utilisée dépend de la complexité de l’objet et des 
contraintes de performances.
+      Par exemple les annotations de <acronym>JAXB</acronym> ont l’avantage 
d’être proches du code,
+      ce qui facilite la maintenance de la correspondance entre le Java et le 
<acronym>XML</acronym>.
+      En revanche <acronym>SAX</acronym> a l’avantage d’être performant.
+      De manière générale, Apache <acronym>SIS</acronym> emploie:
+    </para>
+    <itemizedlist>
+      <listitem>
+        <acronym>JAXB</acronym> pour les objets écrits en relativement peu 
d’exemplaires
+        mais dont la structure est complexe, avec des arborescences profondes.
+        L’ensemble des méta-données <acronym>ISO</acronym> 19139 est un 
exemple typique.
+      </listitem>
+      <listitem>
+        <acronym>SAX</acronym> pour les objets relativement simples mais 
pouvant exister en très grand nombre.
+        L’ensemble des points dans une géométrie est un exemple typique.
+      </listitem>
+      <listitem>
+        <acronym>DOM</acronym> comme une alternative à <acronym>JAXB</acronym>
+        lorsque les éléments <acronym>XML</acronym> ne correspondent pas 
directement à des attributs Java.
+        Les <foreignphrase>features</foreignphrase> en sont un exemple, car 
leur structure est dynamique.
+      </listitem>
+    </itemizedlist>
+  </sidebar>
+
+  <section>
+    <title>Représentation des méta-données selon <acronym>ISO</acronym> 
19139</title>
+    <para>
+      Pour chaque classe de méta-donnée, il existe un type 
<acronym>XML</acronym> nommé comme dans la spécification abstraite
+      (par exemple <classname role="OGC">gmd:MD_Metadata</classname> et 
<classname role="OGC">gmd:CI_Citation</classname>).
+      Tous ces types peuvent être employés comme racine d’un document 
<acronym>XML</acronym>.
+      Ainsi, il est possible d’écrire un document représentant un objet 
<classname role="OGC">MD_Metadata</classname> complet,
+      ou d’écrire un document représentant seulement un objet <classname 
role="OGC">CI_Citation</classname>.
+    </para>
+    <para>
+      Le standard <acronym>ISO</acronym> 19139 dispose le contenu de ces 
objets d’une manière inhabituelle:
+      pour chaque attribut dont le type est lui-même une autre classe du 
standard <acronym>ISO</acronym> 19139,
+      l’attribut est enveloppé dans un élément qui représente son type 
plutôt que d’être écrit directement.
+      Par exemple dans un objet de type <classname 
role="OGC">gmd:CI_Citation</classname>,
+      l’attribut <function role="OGC">gmd:citedResponsibleParty</function>
+      est enveloppé dans un élément <classname 
role="OGC">gmd:CI_ResponsibleParty</classname>.
+      Cette pratique double la profondeur de l’arborescence, en introduisant 
une duplication
+      à tous les niveaux pour chaque attribut, comme dans l’exemple suivant:
+    </para>
+    <example>
+      <title>Redondance dans la représentation <acronym>XML</acronym> d’une 
méta-donnée</title>
+      <programlisting language="xml">&lt;gmd:MD_Metadata&gt;
+  &lt;gmd:identificationInfo&gt;
+    &lt;gmd:MD_DataIdentification&gt;
+      &lt;gmd:citation&gt;
+        &lt;gmd:CI_Citation&gt;
+          &lt;gmd:citedResponsibleParty&gt;
+            &lt;gmd:CI_ResponsibleParty&gt;
+              &lt;gmd:contactInfo&gt;
+                &lt;gmd:CI_Contact&gt;
+                  &lt;gmd:onlineResource&gt;
+                    &lt;gmd:CI_OnlineResource&gt;
+                      &lt;gmd:linkage&gt;
+                        
&lt;gmd:URL&gt;http://www.opengeospatial.org&lt;/gmd:URL&gt;
+                      &lt;/gmd:linkage&gt;
+                    &lt;/gmd:CI_OnlineResource&gt;
+                  &lt;/gmd:onlineResource&gt;
+                &lt;/gmd:CI_Contact&gt;
+              &lt;/gmd:contactInfo&gt;
+            &lt;/gmd:CI_ResponsibleParty&gt;
+          &lt;/gmd:citedResponsibleParty&gt;
+        &lt;/gmd:CI_Citation&gt;
+      &lt;/gmd:citation&gt;
+    &lt;/gmd:MD_DataIdentification&gt;
+  &lt;/gmd:identificationInfo&gt;
+&lt;/gmd:MD_Metadata&gt;</programlisting>
+    </example>
+    <sidebar>
+      <title>Stratégie d’implémentation dans Apache 
<acronym>SIS</acronym></title>
+      <para>
+        Les paquets <literal 
role="SIS">org.apache.sis.internal.jaxb.*</literal> (non-publiques)
+        définissent des adaptateurs JAXB pour tous les types d’objet 
<acronym>ISO</acronym>.
+        Ces adaptateurs sont de toute façon nécessaires pour permettre à 
<acronym>JAXB</acronym>
+        d’obtenir les classes <acronym>SIS</acronym> implémentant les 
interfaces de GeoAPI.
+        De manière opportuniste, <acronym>SIS</acronym> en fait à la fois 
des adaptateurs <acronym>JAXB</acronym>
+        et des objets englobants le “vrai” objet à lire ou écrire.
+        Cette utilisation double permet d’éviter d’avoir à doubler le 
nombre de classes
+        (déjà très élevé) présents dans les paquets internes.
+      </para>
+    </sidebar>
+
+    <section>
+      <title>Identification d’instances déjà définies</title>
+      <para>
+        L’élément englobant peut contenir un attribut <literal 
role="OGC">gmd:id</literal>,
+        <literal role="OGC">gco:uuid</literal> ou 
<literal>xlink:href</literal>.
+        Si un de ces attributs est présent, l’élément englobé peut être 
complètement omis;
+        il sera remplacé au moment de la lecture par l’élément 
référencé par l’attribut.
+        Le choix de l’attribut à utiliser dépend de la portée de 
l’élément référencé:
+      </para>
+      <itemizedlist>
+        <listitem>
+          <literal role="OGC">gmd:id</literal> n’est valide qu’à 
l’intérieur du document <acronym>XML</acronym>
+          qui définit l’objet ainsi référencé.
+        </listitem>
+        <listitem>
+          <literal role="OGC">gco:uuid</literal> peut être valide à 
l’extérieur du document <acronym>XML</acronym>,
+          mais quelqu’un doit maintenir une base de données fournissant les 
objets pour chaque <acronym>UUID</acronym> donnés.
+        </listitem>
+        <listitem>
+          <literal>xlink:href</literal> peut faire référence à un autre 
document <acronym>XML</acronym> accessible sur internet.
+        </listitem>
+      </itemizedlist>
+      <para>
+        Dans la bibliothèque <acronym>SIS</acronym>, tous les objets 
susceptibles d’être identifiés dans un document <acronym>XML</acronym>
+        implémentent l’interface <classname 
role="SIS">org.apache.sis.xml.IdentifiedObject</classname>.
+        Chaque instance de cette interface fournit une vue de ses identifiants 
sous forme de <classname>Map&lt;Citation,String&gt;</classname>,
+        dans lequel la clé <classname role="GeoAPI">Citation</classname> 
identifie le type d’identifiant et la valeur est l’identifiant lui-même.
+        Quelques constantes représentant différents types d’identifiants 
sont énumérées dans <classname role="SIS">IdentifierSpace</classname>,
+        notamment <constant role="SIS">ID</constant>, <constant 
role="SIS">UUID</constant> et <constant role="SIS">HREF</constant>.
+        Chacune de ces clés peut être associée à une valeur d’un type 
différent (habituellement <classname>String</classname>,
+        <classname>UUID</classname> ou <classname>URI</classname>) selon la 
clé.
+        Par exemple le code suivant définit une valeur pour l’attribut 
<literal role="OGC">gco:uuid</literal>:
+      </para>
+      <example>
+        <title>Associer un identifiant <literal role="OGC">gco:uuid</literal> 
à une méta-donnée</title>
+        <programlisting language="java">import 
org.apache.sis.metadata.iso.DefaultMetadata;
+import org.apache.sis.xml.IdentifierSpace;
+import java.util.UUID;
+
+public class MyClass {
+    public void myMethod() {
+        UUID identifier = UUID.randomUUID();
+        DefaultMetadata metadata = new DefaultMetadata();
+        metadata.getIdentifierMap().putSpecialized(IdentifierSpace.UUID, 
identifier);
+    }
+}</programlisting>
+      </example>
+      <para>
+        Bien que ce mécanisme aie été définit dans le but de mieux 
supporter les représentations de méta-données en <acronym>XML</acronym>,
+        il permet aussi de manière opportuniste de manipuler d’autres types 
d’identifiants.
+        Par exemple les attributs <function role="GeoAPI">ISBN</function> et 
<function role="GeoAPI">ISSN</function>
+        de <classname role="GeoAPI">Citation</classname> peuvent être 
manipulés de cette manière.
+        Les méthodes de l’interface <classname 
role="SIS">IdentifiedObject</classname> fournissent donc un endroit unique
+        où peuvent être manipulés tous types d’identifiants (pas 
seulement <acronym>XML</acronym>) associés à un objet.
+      </para>
+    </section>
+  </section>
+</chapter>

Propchange: sis/branches/JDK7/src/main/docbook/fr/XML.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: sis/branches/JDK7/src/main/docbook/fr/XML.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: sis/branches/JDK7/src/main/docbook/fr/geoapi.xml
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/fr/geoapi.xml?rev=1399572&r1=1399571&r2=1399572&view=diff
==============================================================================
--- sis/branches/JDK7/src/main/docbook/fr/geoapi.xml (original)
+++ sis/branches/JDK7/src/main/docbook/fr/geoapi.xml Thu Oct 18 10:03:15 2012
@@ -24,11 +24,11 @@
       (due aux nombreuses publications en lien avec les standards de l’OGC), 
ainsi que d’une interopérabilité accrue.
       L’interopérabilité est facilitée par une meilleure séparation 
entre les applications qui <emphasis>appellent</emphasis> les fonctions de 
GeoAPI,
       et les bibliothèques qui <emphasis>implémentent</emphasis> GeoAPI. Il 
s’agit d’une séparation similaire à celle qu’offrent les interfaces
-      <link 
xlink:href="http://docs.oracle.com/javase/7/docs/technotes/guides/jdbc/";><acronym>JDBC</acronym></link>
+      <link 
xlink:href="&javase-docs;/technotes/guides/jdbc/"><acronym>JDBC</acronym></link>
       (<foreignphrase>Java Database Connectivity</foreignphrase>) du Java 
standard.
       En utilisant l’<acronym>API</acronym> des interfaces, les 
développeurs peuvent faire abstraction de l’implémentation sous-jacente.
       Par exemple ils peuvent effectuer des projections cartographiques à 
l’aide des bibliothèques
-      <link 
xlink:href="http://www.geoapi.org/geoapi-proj4/index.html";>Proj.4</link> ou 
Apache SIS,
+      <link 
xlink:href="http://www.geoapi.org/geoapi-proj4/index.html";>Proj.4</link> ou 
Apache <acronym>SIS</acronym>,
       sans changer leurs programmes lorsqu’ils changent de bibliothèque.
     </para></listitem>
     <listitem><para>
@@ -213,22 +213,16 @@
         Pour chaque classe, méthode et constante définie à partir d’un 
standard <acronym>OGC</acronym> ou <acronym>ISO</acronym>,
         GeoAPI indique sa provenance à l’aide d’annotations définies 
dans le paquet <literal role="GeoAPI">org.opengis.annotation</literal>.
         En particulier l’annotation <classname 
role="GeoAPI">@UML</classname> indique le standard, le nom de l’élément 
dans ce standard ainsi
-        que son niveau d’obligation. Par exemple dans l’extrait de code 
suivant:
+        que son niveau d’obligation. Par exemple dans l’extrait de code 
suivant,
+        la première annotation <classname role="GeoAPI">@UML</classname> 
indique que l’interface Java qui la suit
+        (<classname role="GeoAPI">ProjectedCRS</classname>) est définie à 
partir du type
+        <classname role="OGC">SC_ProjectedCRS</classname> du standard ISO 
19111.
+        La seconde annotation <classname role="GeoAPI">@UML</classname>, 
appliquée cette fois à la méthode
+        <function role="GeoAPI">getCoordinateSystem()</function>, indique que 
la méthode est définie
+        à partir de l’association <function 
role="OGC">coordinateSystem</function> du standard ISO 19111,
+        et que cette association est obligatoire — ce qui, traduit en Java, 
signifie que la méthode n’est
+        pas autorisée à retourner la valeur <literal>null</literal>.
       </para>
-      <itemizedlist>
-        <listitem>
-          La première annotation <classname role="GeoAPI">@UML</classname> 
indique que l’interface Java qui la suit
-          (<classname role="GeoAPI">ProjectedCRS</classname>) est définie à 
partir du type
-          <classname role="OGC">SC_ProjectedCRS</classname> du standard ISO 
19111.
-        </listitem>
-        <listitem>
-          La seconde annotation <classname role="GeoAPI">@UML</classname>, 
appliquée cette fois à la méthode
-          <function role="GeoAPI">getCoordinateSystem()</function>, indique 
que la méthode est définie
-          à partir de l’association <function 
role="OGC">coordinateSystem</function> du standard ISO 19111,
-          et que cette association est obligatoire — ce qui, traduit en 
Java, signifie que la méthode n’est
-          pas autorisée à retourner la valeur <literal>null</literal>.
-        </listitem>
-      </itemizedlist>
 
       <example>
         <title>Une interface annotée avec <classname>@UML</classname></title>
@@ -247,8 +241,7 @@ public interface ProjectedCRS extends Ge
          specification = ISO_19111,
          identifier = "coordinateSystem")
     CartesianCS getCoordinateSystem();
-}
-        </programlisting>
+}</programlisting>
       </example>
 
       <para>
@@ -263,12 +256,16 @@ public interface ProjectedCRS extends Ge
 Method   method = type.getMethod("getTitle", (Class&lt;?&gt;[]) null);
 UML      annot  = method.getAnnotation(UML.class);
 String   ident  = annot.identifier();
-System.out.println("Le nom standard de la méthode " + method.getName() + " 
est " + ident);
-        </programlisting>
+System.out.println("Le nom standard de la méthode " + method.getName() + " 
est " + ident);</programlisting>
       </example>
 
       <para>
-        L’opération inverse — obtenir la classe et méthode Java d’un 
nom standard — est un peu plus lourde.
+        La classe <classname 
role="SIS">org.apache.sis.util.type.Types</classname> fournit la méthode de 
commodité
+        <function role="SIS">getStandardName(Class)</function> pour effectuer 
cette opération.
+      </para>
+
+      <para>
+        L’opération inverse — obtenir la classe et méthode Java d’un 
nom standard — est un peu plus lourde.
         Elle nécessite la lecture du fichier <literal 
role="GeoAPI">class-index.properties</literal> fournit dans le
         paquet <literal role="GeoAPI">org.opengis.annotation</literal>. 
L’exemple suivant lit ce fichier juste avant
         de rechercher le nom de l’interface correspondant à <classname 
role="OGC">CI_Citation</classname>.
@@ -284,31 +281,24 @@ try (InputStream in = UML.class.getResou
 String isoName = "CI_Citation";
 String geoName = getProperty(isoName);
 Class&lt;?&gt;  type = Class.forName(geoName);
-System.out.println("L’interface GeoAPI du type ISO " + isoName + " est " + 
type);
-        </programlisting>
+System.out.println("L’interface GeoAPI du type ISO " + isoName + " est " + 
type);</programlisting>
       </example>
 
-      <sidebar>
-        <emphasis role="bold">Note:</emphasis>
-        La bibliothèque SIS fournit dans la classe <classname 
role="SIS">org.apache.sis.util.type.Types</classname>
-        des méthodes de commodités pour ces deux opérations: <function 
role="SIS">getStandardName(Class)</function>
-        et <function role="SIS">forStandardName(String)</function> 
respectivement.
-      </sidebar>
-
       <para>
-        Certaines classes et méthodes n’ont ni annotation <classname 
role="GeoAPI">@UML</classname>,
-        ni entrée dans le fichier <literal 
role="GeoAPI">class-index.properties</literal>. Il s’agit
-        soit d’extensions de GeoAPI, ou soit de types définis dans 
d’autres bibliothèques (notamment
-        le <acronym>JDK</acronym> standard). Pour ce dernier cas, une 
correspondance implicite avec
-        les standards <acronym>ISO</acronym> est décrite dans la section 
suivante.
+        La classe <classname 
role="SIS">org.apache.sis.util.type.Types</classname> fournit la méthode de 
commodité
+        <function role="SIS">forStandardName(String)</function> pour effectuer 
cette opération.
       </para>
     </section>
 
     <section>
       <title>Correspondances implicites avec le <acronym>JDK</acronym> 
standard</title>
       <para>
-        Le tableau suivant énumère les types de la norme 
<acronym>ISO</acronym> 19103 pour lesquels des types du Java standard ont été 
utilisés.
-        Les types primitifs sont préférés lorsqu’ils sont applicables,
+        Certaines classes et méthodes n’ont ni annotation <classname 
role="GeoAPI">@UML</classname>,
+        ni entrée dans le fichier <literal 
role="GeoAPI">class-index.properties</literal>.
+        Il s’agit soit d’extensions de GeoAPI, ou soit de types définis 
dans d’autres bibliothèques, notamment le <acronym>JDK</acronym> standard.
+        Pour ce dernier cas, la correspondance avec les standards 
<acronym>ISO</acronym> est implicite.
+        Le tableau suivant décrit cette correspondance pour les types de la 
norme <acronym>ISO</acronym> 19103.
+        Les types primitifs du Java standard sont préférés lorsqu’ils 
sont applicables,
         mais parfois leurs équivalents sous forme d’objets sont employés 
lorsqu’il est nécessaire d’autoriser des valeurs nulles.
       </para>
       <table frame="none">
@@ -327,7 +317,7 @@ System.out.println("L’interface Geo
           <tbody>
             <row>
               <entry namest="ISO" nameend="JDK" 
role="separator">Nombres</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">Integer</classname></entry>
@@ -356,7 +346,7 @@ System.out.println("L’interface Geo
             </row>
             <row>
               <entry namest="ISO" nameend="JDK" role="separator">Textes</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">CharacterString</classname></entry>
@@ -375,7 +365,7 @@ System.out.println("L’interface Geo
             </row>
             <row>
               <entry namest="ISO" nameend="JDK" role="separator">Dates et 
heures</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">Date</classname></entry>
@@ -394,7 +384,7 @@ System.out.println("L’interface Geo
             </row>
             <row>
               <entry namest="ISO" nameend="JDK" 
role="separator">Collections</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">Collection</classname></entry>
@@ -429,7 +419,7 @@ System.out.println("L’interface Geo
             </row>
             <row>
               <entry namest="ISO" nameend="JDK" 
role="separator">Énumérations</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">Enumeration</classname></entry>
@@ -443,7 +433,7 @@ System.out.println("L’interface Geo
             </row>
             <row>
               <entry namest="ISO" nameend="JDK" role="separator">Divers</entry>
-              <entry role="separator"></entry>
+              <entry role="leftBorder"></entry>
             </row>
             <row>
               <entry><classname role="OGC">Boolean</classname></entry>
@@ -465,7 +455,7 @@ System.out.println("L’interface Geo
         <classname role="GeoAPI">InternationalString</classname> pour 
permettre au client de choisir la langue.
         C’est utile par exemple sur un serveur fournissant simultanément 
des pages dans plusieurs langues.
         En reportant les traductions à l’utilisation des objets plutôt 
qu’au moment de leur création,
-        on permet à la bibliothèque SIS de fournir les mêmes instances de 
<classname role="GeoAPI">Metadata</classname>
+        on permet à la bibliothèque <acronym>SIS</acronym> de fournir les 
mêmes instances de <classname role="GeoAPI">Metadata</classname>
         ou <classname role="GeoAPI">Coverage</classname> (par exemple) pour 
les mêmes données peu importe la langue du client.
         Les traductions peuvent être faites à la volée à l’aide d’un 
<classname>ResourceBundle</classname> de l’application,
         ou être fournies directement avec les données (cas des <classname 
role="GeoAPI">Metadata</classname> notamment).
@@ -486,8 +476,7 @@ System.out.println("L’interface Geo
         <programlisting language="java">MediumName cdRom  = MediumName.CD_ROM;
 MediumName usbKey = MediumName.valueOf("USB_KEY"); // Aucune constante 
n’existe pour cette valeur.
 assert MediumName.valueOf("CD_ROM")  == cdRom  : "valueOf doit retourner les 
constantes existantes.";
-assert MediumName.valueOf("USB_KEY") == usbKey : "valueOf doit cacher les 
valeurs précédemment demandées.";
-        </programlisting>
+assert MediumName.valueOf("USB_KEY") == usbKey : "valueOf doit cacher les 
valeurs précédemment demandées.";</programlisting>
       </example>
     </section>
   </section>
@@ -538,27 +527,27 @@ public class MyApplication {
       d’une partie expérimentale (<literal 
role="GeoAPI">geoapi-pending</literal>). Ces deux parties étant
       mutuellement exclusives, les utilisateurs doivent veiller à ne pas les 
mélanger dans un même projet.
       Cette séparation est garantie pour tous les projets qui ne dépendent 
que du dépôt central de Maven
-      (incluant les versions finales de Apache SIS), car le module <literal 
role="GeoAPI">geoapi-pending</literal>
+      (incluant les versions finales de Apache <acronym>SIS</acronym>), car le 
module <literal role="GeoAPI">geoapi-pending</literal>
       n’est jamais déployé sur ce dépôt central. En revanche les 
<foreignphrase>snapshot</foreignphrase>
-      de certaines branches de SIS peuvent dépendre de <literal 
role="GeoAPI">geoapi-pending</literal>.
+      de certaines branches de <acronym>SIS</acronym> peuvent dépendre de 
<literal role="GeoAPI">geoapi-pending</literal>.
     </para>
     <para>
       Les modules de GeoAPI sont:
     </para>
     <itemizedlist>
       <listitem><para>
-        <emphasis role="bold"><literal 
role="GeoAPI">geoapi</literal></emphasis> — contient les interfaces
-        couvertes par le <link 
xlink:href="http://www.opengeospatial.org/standards/geoapi";>standard GeoAPI
-        de l’<acronym>OGC</acronym></link>. Les versions finales de Apache 
SIS dépendent de ce module.
+        <emphasis role="bold"><literal 
role="GeoAPI">geoapi</literal></emphasis> — contient les interfaces 
couvertes par le
+        <link 
xlink:href="http://www.opengeospatial.org/standards/geoapi";>standard GeoAPI de 
l’<acronym>OGC</acronym></link>.
+        Les versions finales de Apache <acronym>SIS</acronym> dépendent de ce 
module.
       </para></listitem>
       <listitem><para>
         <emphasis role="bold"><literal 
role="GeoAPI">geoapi-pending</literal></emphasis> — contient une
         <emphasis>copie</emphasis> de toutes les interfaces du module <literal 
role="GeoAPI">geoapi</literal>
-        (non pas une dépendance) avec des ajouts qui n’ont pas encore été 
approuvés comme un standard
-        <acronym>OGC</acronym>. Certains ajouts apparaissent dans des 
interfaces normalement définies
-        par le module <literal role="GeoAPI">geoapi</literal>, d’où la 
nécessité de les copier.
+        (non pas une dépendance) avec des ajouts qui n’ont pas encore été 
approuvés comme un standard <acronym>OGC</acronym>.
+        Certains ajouts apparaissent dans des interfaces normalement définies 
par le module <literal role="GeoAPI">geoapi</literal>,
+        d’où la nécessité de les copier.
         Les versions <foreignphrase>snapshot</foreignphrase> des branches 
<literal>jdk6</literal>,
-        <literal>jdk7</literal> et <literal>jdk8</literal> de Apache SIS 
dépendent de ce module,
+        <literal>jdk7</literal> et <literal>jdk8</literal> de Apache 
<acronym>SIS</acronym> dépendent de ce module,
         mais cette dépendance est transformée en une dépendance vers le 
module <literal role="GeoAPI">geoapi</literal>
         standard au moment de fusionner les branches avec le tronc.
       </para></listitem>
@@ -573,7 +562,7 @@ public class MyApplication {
         <emphasis role="bold"><literal 
role="GeoAPI">geoapi-examples</literal></emphasis> — contient des
         exemples d’implémentations relativement simples. Ces exemples sont 
placés dans le domaine public
         afin d’encourager les utilisateurs à les copier et les adapter à 
leurs besoins si les services
-        de Apache SIS ne conviennent pas.
+        de Apache <acronym>SIS</acronym> ne conviennent pas.
       </para></listitem>
       <listitem><para>
         <emphasis role="bold"><literal 
role="GeoAPI">geoapi-proj4</literal></emphasis> — contient une
@@ -582,19 +571,17 @@ public class MyApplication {
         Ce module peut être utilisé comme alternative au module <literal 
role="SIS">sis-referencing</literal>.
       </para></listitem>
       <listitem><para>
-        <emphasis role="bold"><literal 
role="GeoAPI">geoapi-netcdf</literal></emphasis> — contient une
-        implémentation partielle des paquets <literal 
role="GeoAPI">org.opengis.referencing</literal>
-        et <literal role="GeoAPI">org.opengis.coverage</literal> sous forme 
d’adaptateurs basés sur la
-        bibliothèque NetCDF de l’UCAR. La suite de tests de ce module a 
été conçue de manière à être
-        réutilisable par d’autres projets. Apache SIS l’utilise pour 
tester son propre module
-        <literal role="SIS">sis-coverageio-netcdf</literal>.
+        <emphasis role="bold"><literal 
role="GeoAPI">geoapi-netcdf</literal></emphasis> — contient une 
implémentation partielle des paquets
+        <literal role="GeoAPI">org.opengis.referencing</literal> et <literal 
role="GeoAPI">org.opengis.coverage</literal>
+        sous forme d’adaptateurs basés sur la bibliothèque NetCDF de 
l’UCAR.
+        La suite de tests de ce module a été conçue de manière à être 
réutilisable par d’autres projets.
+        Apache <acronym>SIS</acronym> l’utilise pour tester son propre 
module <literal role="SIS">sis-coverageio-netcdf</literal>.
       </para></listitem>
       <listitem><para>
         <emphasis role="bold"><literal 
role="GeoAPI">geoapi-openoffice</literal></emphasis> — contient
         un <foreignphrase>add-in</foreignphrase> pour les suites bureautiques 
Libre/OpenOffice.org.
-        Apache SIS offre son propre <foreignphrase>add-in</foreignphrase> dans 
le module
-        <literal role="SIS">sis-openoffice</literal>, mais utilise les mêmes 
noms de fonctions
-        que le module de GeoAPI afin d’assurer une certaine compatibilité.
+        Apache <acronym>SIS</acronym> offre son propre 
<foreignphrase>add-in</foreignphrase> dans le module <literal 
role="SIS">sis-openoffice</literal>,
+        mais utilise les mêmes noms de fonctions que le module de GeoAPI afin 
d’assurer une certaine compatibilité.
       </para></listitem>
     </itemizedlist>
 
@@ -603,7 +590,9 @@ public class MyApplication {
       <para>
         Les modules <literal role="GeoAPI">geoapi</literal> et <literal 
role="GeoAPI">geoapi-pending</literal>
         fournissent les interfaces dérivées des schémas 
<acronym>UML</acronym> des standards internationaux.
-        Le modèle conceptuel sera expliqué en détails dans les chapitres 
décrivant l’implémentation Apache SIS.
+        Le modèle conceptuel sera expliqué en détails dans les chapitres 
décrivant l’implémentation Apache <acronym>SIS</acronym>.
+        On peut toutefois avoir un aperçu de son contenu en consultant la 
page listant les
+        <link xlink:href="&geoapi-javadoc;/content.html">types et méthodes de 
GeoAPI avec leurs standards d’origines</link>.
       </para>
     </section>
 
@@ -632,20 +621,19 @@ public class MyApplication {
         </para>
         <informalexample><para>
           <emphasis role="bold">Exemple:</emphasis>
-          La transformation d’une coordonnée peut nécessiter 
l’enchaînement de plusieurs <classname 
role="GeoAPI">CoordinateOperation</classname>.
-          Dans une telle chaîne d’opérations (<classname 
role="GeoAPI">ConcatenatedOperation</classname>),
-          pour chaque étape (<classname 
role="GeoAPI">SingleOperation</classname>) le nombre de dimensions
+          La transformation d’une coordonnée (<classname 
role="OGC">CC_CoordinateOperation</classname>) peut nécessiter 
l’enchaînement de plusieurs étapes.
+          Dans une telle chaîne d’opérations (<classname 
role="OGC">CC_ConcatenatedOperation</classname>),
+          pour chaque étape (<classname 
role="OGC">CC_SingleOperation</classname>) le nombre de dimensions
           en sortie doit être égal au nombre de dimensions attendu en entré 
par l’opération suivante.
           Exprimée en langage Java, cette contrainte stipule que pour tout 
index
-          0 &lt; <varname>i</varname> &lt; <varname>n</varname> où 
<varname>n</varname> est le
-          nombre d’opérations, on a
+          0 &lt; <varname>i</varname> &lt; <varname>n</varname> où 
<varname>n</varname> est le nombre d’opérations, on a
           <literal>coordOperation[i].sourceDimensions == 
coordOperation[i-1].targetDimensions</literal>.
         </para></informalexample>
 
         <para>
           La façon la plus simple d’effectuer ces vérifications est 
d’appeler les méthodes statiques
           <function role="GeoAPI">validate(…)</function> de la classe 
<literal role="GeoAPI">org.opengis.test.Validators</literal>.
-          Ces méthodes portant toutes le même nom, il suffit d’écrire 
"<function>validate(<varname>valeur</varname>)</function>"
+          Ces méthodes portant toutes le même nom, il suffit d’écrire 
“<function>validate(<varname>valeur</varname>)</function>”
           et de laisser le compilateur choisir la méthode la plus appropriée 
en fonction du type d’objet donné en argument.
           Si le type d’objet n’est pas connu au moment de la compilation, 
alors la méthode <function role="GeoAPI">dispatch(Object)</function>
           peut se charger de rediriger le travail à la méthode <function 
role="GeoAPI">validate(…)</function> appropriée.
@@ -720,9 +708,7 @@ public class MyTest {
       <section>
         <title>Exécution des tests pré-définis</title>
         <para>
-          Des classes de tests JUnit sont définies dans des sous-paquets de 
<literal role="GeoAPI">org.opengis.test</literal>
-          correspondants aux principaux modules de GeoAPI (<literal 
role="GeoAPI">org.opengis.test.metadata</literal>,
-          <literal role="GeoAPI">org.opengis.test.referencing</literal>, 
<foreignphrase>etc.</foreignphrase>).
+          Des classes de tests JUnit sont définies dans des sous-paquets de 
<literal role="GeoAPI">org.opengis.test</literal>.
           Toutes les classes de tests portent un nom se terminant en 
"<literal>Test</literal>".
           En outre, une classe <literal 
role="GeoAPI">org.opengis.test.TestSuite</literal> englobe l’ensemble
           de toutes les classes de tests définies dans le module <literal 
role="GeoAPI">geoapi-conformance</literal>.

Modified: sis/branches/JDK7/src/main/docbook/fr/introduction.xml
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/fr/introduction.xml?rev=1399572&r1=1399571&r2=1399572&view=diff
==============================================================================
--- sis/branches/JDK7/src/main/docbook/fr/introduction.xml (original)
+++ sis/branches/JDK7/src/main/docbook/fr/introduction.xml Thu Oct 18 10:03:15 
2012
@@ -47,11 +47,11 @@
     surtout les plus anciens, sont incomplètes et pas toujours cohérentes.
     Au moment d’écrire ces lignes, aucun produit de notre connaissance 
n’implémente la totalité des spécifications.
     Mais on trouve de nombreuses implémentations couvrant un spectre plus ou 
moins large.
-    La bibliothèque Apache SIS décrite dans ce document en est une.
+    La bibliothèque Apache <acronym>SIS</acronym> décrite dans ce document 
en est une.
   </para>
 
   <para>
-    Apache SIS se caractérise par un effort soutenu de respect des standards,
+    Apache <acronym>SIS</acronym> se caractérise par un effort soutenu de 
respect des standards,
     allant jusqu’à une participation à certains travaux de l’OGC.
     De manière générale, le respect des standards exige un effort plus 
grand que ce qu’aurait requis un
     développement isolé, mais se rentabilise par un double avantage: en plus 
d’accroître l’interopérabilité
@@ -67,7 +67,7 @@
      Les éléments définis dans un langage informatique, tels que les 
classes ou méthodes en Java
      ainsi que les éléments dans un fichier <acronym>XML</acronym>, 
apparaissent avec une police
      de caractères mono-espacée.
-     Afin de faciliter la compréhension des liens qui existent entre Apache 
SIS et les standards,
+     Afin de faciliter la compréhension des liens qui existent entre Apache 
<acronym>SIS</acronym> et les standards,
      ces éléments sont en outre représentés en utilisant les codes de 
couleurs suivants:
     </para>
     <itemizedlist>
@@ -80,7 +80,7 @@
         Exemple: <classname role="GeoAPI">Ellipsoid</classname>.
       </listitem>
       <listitem>
-        Les éléments définis dans Apache SIS apparaissent en brun.
+        Les éléments définis dans Apache <acronym>SIS</acronym> 
apparaissent en brun.
         Exemple: <classname role="SIS">DefaultEllipsoid</classname>.
       </listitem>
       <listitem>

Modified: sis/branches/JDK7/src/main/docbook/fr/standards.xml
URL: 
http://svn.apache.org/viewvc/sis/branches/JDK7/src/main/docbook/fr/standards.xml?rev=1399572&r1=1399571&r2=1399572&view=diff
==============================================================================
--- sis/branches/JDK7/src/main/docbook/fr/standards.xml (original)
+++ sis/branches/JDK7/src/main/docbook/fr/standards.xml Thu Oct 18 10:03:15 2012
@@ -11,7 +11,7 @@
   <section>
     <title>Contexte et historique</title>
     <para>
-      La majorité des standards utilisés par Apache SIS ont été élaborés 
par le
+      La majorité des standards utilisés par Apache <acronym>SIS</acronym> 
ont été élaborés par le
       <link xlink:href="http://www.opengeospatial.org";>consortium 
<foreignphrase>Open Geospatial</foreignphrase></link> (<acronym>OGC</acronym>),
       parfois en collaboration avec l’<link 
xlink:href="http://www.iso.org";>organisation internationale de 
normalisation</link> (<acronym>ISO</acronym>).
       Certains standards de l’ISO deviennent eux-mêmes des standards 
Européens via la <link xlink:href="http://inspire.jrc.ec.europa.eu";>directive 
<acronym>INSPIRE</acronym></link>,
@@ -226,9 +226,10 @@
     </itemizedlist>
 
     <para>
-      Le projet Apache SIS se base sur les spécifications les plus récentes, 
tout en puisant dans les archives
-      de l’<acronym>OGC</acronym> pour compléter certains standards 
abstraits ou les rendre un peu plus facile
-      d’utilisation. Certaines anciennes définitions sont conservées comme 
« méthodes de commodités »,
+      Le projet Apache <acronym>SIS</acronym> se base sur les spécifications 
les plus récentes,
+      tout en puisant dans les archives de l’<acronym>OGC</acronym>
+      pour compléter certains standards abstraits ou les rendre un peu plus 
facile d’utilisation.
+      Certaines anciennes définitions sont conservées comme « méthodes de 
commodités »,
       n’apportant pas toujours de nouvelles fonctionnalités mais facilitant 
l’usage pratique d’une bibliothèque.
     </para>
     <para>
@@ -240,7 +241,7 @@
     </para>
 
     <table frame="none">
-      <title>Principaux standards utilisés par le projet Apache SIS</title>
+      <title>Principaux standards utilisés par le projet Apache 
<acronym>SIS</acronym></title>
       <tgroup cols="4">
         <colspec colname="ISO"/>
         <colspec colname="OGC"/>


Reply via email to