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"><gmd:MD_Metadata> + <gmd:identificationInfo> + <gmd:MD_DataIdentification> + <gmd:citation> + <gmd:CI_Citation> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:contactInfo> + <gmd:CI_Contact> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL>http://www.opengeospatial.org</gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </gmd:CI_Contact> + </gmd:contactInfo> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </gmd:CI_Citation> + </gmd:citation> + </gmd:MD_DataIdentification> + </gmd:identificationInfo> +</gmd:MD_Metadata></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<Citation,String></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<?>[]) 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<?> 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 < <varname>i</varname> < <varname>n</varname> où <varname>n</varname> est le - nombre dâopérations, on a + 0 < <varname>i</varname> < <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"/>