Ce document présente une bibliothèque de types, d'éléments et d'attributs XML permettant de représenter les données géographiques définies par le Code Officiel Géographique de l'INSEE.
La définition formelle de cette bibliothèque est réalisée sous la forme d'un schéma W3C XML Schema.
Les types, éléments et attributs décrits décrit dans ce module font partie de l'espace de noms INSEE : http://xml.insee.fr/schema/2004
Cette documentation et les ressources qui en dépendent (schémas, exemples, transformations XSLT) sont soumises aux conditions d'utilisation des informations publiées sur le site de l'INSEE.
La définition d'un code région sous forme d'un type simple est la suivante:
§1.
<xs:simpleType name="Code_Région_stype"> <xs:restriction base="ie:Chaîne_Numérique_stype"> <xs:length value="2"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes région, par exemple :
§2.
<xs:element name="mon-element-Code_Région" type="ie:Code_Région_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§3.
<ex:mon-element-Code_Région>74</ex:mon-element-Code_Région>
La définition de l'élément Code_Région est la suivante :
§4.
<xs:element name="Code_Région" type="ie:Code_Région_stype"/>
Les éléments Code_Région peuvent être utilisés directement dans des documents XML, par exemple
§5.
<ex:région> <ie:Code_Région>41</ie:Code_Région> <ex:nom>Lorraine</ex:nom> </ex:région>
La définition de l'attribut Code_Région est la suivante :
§6.
<xs:attribute name="Code_Région" type="ie:Code_Région_stype"/>
Les attributs Code_Région peuvent être utilisés directement dans des documents XML, par exemple
§7.
<ex:région ie:Code_Région="01"> <ex:nom>Guadeloupe</ex:nom> </ex:région>
La définition d'un code département sous forme d'un type simple est la suivante:
§8.
<xs:simpleType name="Code_Département_stype"> <xs:restriction base="ie:Chaîne_Numérique_et_ASCII_Majuscule_stype"> <xs:minLength value="2"/> <xs:maxLength value="3"/> <xs:pattern value="[0-9][0-9AB][0-9]?"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes département, par exemple :
§9.
<xs:element name="mon-element-Code_Département" type="ie:Code_Département_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§10.
<ex:mon-element-Code_Département>74</ex:mon-element-Code_Département>
La définition de l'élément Code_Département est la suivante :
§11.
<xs:element name="Code_Département" type="ie:Code_Département_stype"/>
Les éléments Code_Département peuvent être utilisés directement dans des documents XML, par exemple
§12.
<ex:département> <ie:Code_Département>2A</ie:Code_Département> <ex:nom>Corse-du-Sud</ex:nom> </ex:département>
La définition de l'attribut Code_Département est la suivante :
§13.
<xs:attribute name="Code_Département" type="ie:Code_Département_stype"/>
Les attributs Code_Département peuvent être utilisés directement dans des documents XML, par exemple
§14.
<ex:département ie:Code_Département="973"> <ex:nom>Guyane</ex:nom> </ex:département>
Le code arrondissement est obtenu en ajoutant un numéro d'arrondissement sur un chiffre au code du département. Sa définition sous forme d'un type simple est donc la suivante:
§15.
<xs:simpleType name="Code_Arrondissement_stype"> <xs:restriction base="ie:Chaîne_Numérique_et_ASCII_Majuscule_stype"> <xs:minLength value="3"/> <xs:maxLength value="4"/> <xs:pattern value="[0-9][0-9AB][0-9]?[0-9]"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes arrondissement, par exemple :
§16.
<xs:element name="mon-element-Code_Arrondissement" type="ie:Code_Arrondissement_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§17.
<ex:mon-element-Code_Arrondissement>143</ex:mon-element-Code_Arrondissement>
La définition de l'élément Code_Arrondissement est la suivante :
§18.
<xs:element name="Code_Arrondissement" type="ie:Code_Arrondissement_stype"/>
Les éléments Code_Arrondissement peuvent être utilisés directement dans des documents XML, par exemple
§19.
<ex:arrondissement> <ie:Code_Arrondissement>2B5</ie:Code_Arrondissement> <ex:nom>Calvi</ex:nom> </ex:arrondissement>
La définition de l'attribut Code_Arrondissement est la suivante :
§20.
<xs:attribute name="Code_Arrondissement" type="ie:Code_Arrondissement_stype"/>
Les attributs Code_Arrondissement peuvent être utilisés directement dans des documents XML, par exemple
§21.
<ex:arrondissement ie:Code_Arrondissement="9724"> <ex:nom>Saint-Pierre</ex:nom> </ex:arrondissement>
Le code canton est obtenu en ajoutant un numéro de canton sur deux chiffres au code du département. Sa définition sous forme d'un type simple est donc la suivante:
§22.
<xs:simpleType name="Code_Canton_stype"> <xs:restriction base="ie:Chaîne_Numérique_et_ASCII_Majuscule_stype"> <xs:minLength value="4"/> <xs:maxLength value="5"/> <xs:pattern value="[0-9][0-9AB][0-9]?[0-9]{2}"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes canton, par exemple :
§23.
<xs:element name="mon-element-Code_Canton" type="ie:Code_Canton_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§24.
<ex:mon-element-Code_Canton>6601</ex:mon-element-Code_Canton>
La définition de l'élément Code_Canton est la suivante :
§25.
<xs:element name="Code_Canton" type="ie:Code_Canton_stype"/>
Les éléments Code_Canton peuvent être utilisés directement dans des documents XML, par exemple
§26.
<ex:canton> <ie:Code_Canton>2A62</ie:Code_Canton> <ex:nom>Zicavo</ex:nom> </ex:canton>
La définition de l'attribut Code_Canton est la suivante :
§27.
<xs:attribute name="Code_Canton" type="ie:Code_Canton_stype"/>
Les attributs Code_Canton peuvent être utilisés directement dans des documents XML, par exemple
§28.
<ex:canton ie:Code_Canton="97404"> <ex:nom>Étang-Salé</ex:nom> </ex:canton>
Le code commune est obtenu en ajoutant un numéro de commune sur deux (lorsque le code du département comporte trois caractères) ou trois chiffres (lorsqu'il en comporte deux) au code du département. Le code "99" ne peut pas être utilisé comme code département (il est réservé aux codes pays et territoires étrangers. La définition du code commune sous forme d'un type simple est donc la suivante:
§29.
<xs:simpleType name="Code_Commune_stype"> <xs:restriction base="ie:Chaîne_Numérique_et_ASCII_Majuscule_stype"> <xs:length value="5"/> <xs:pattern value="(([0-8][0-9AB])|(9[0-8AB]))[0-9]{3}"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes commune, par exemple :
§30.
<xs:element name="mon-element-Code_Commune" type="ie:Code_Commune_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§31.
<ex:mon-element-Code_Commune>34260</ex:mon-element-Code_Commune>
La définition de l'élément Code_Commune est la suivante :
§32.
<xs:element name="Code_Commune" type="ie:Code_Commune_stype"/>
Les éléments Code_Commune peuvent être utilisés directement dans des documents XML, par exemple
§33.
<ex:commune> <ie:Code_Commune>2B002</ie:Code_Commune> <ex:nom>Aghione</ex:nom> </ex:commune>
La définition de l'attribut Code_Commune est la suivante :
§34.
<xs:attribute name="Code_Commune" type="ie:Code_Commune_stype"/>
Les attributs Code_Commune peuvent être utilisés directement dans des documents XML, par exemple
§35.
<ex:commune ie:Code_Commune="97306"> <ex:nom>Mana</ex:nom> </ex:commune>
Le code pays ou territoire étranger est un code numérique à cinq chiffres commençant par les caractères "99" pour qu'il n'y ait pas de recoupement avec le code commune :
§36.
<xs:simpleType name="Code_Pays_Ou_Territoire_Étranger_stype"> <xs:restriction base="ie:Chaîne_Numérique_stype"> <xs:length value="5"/> <xs:pattern value="99[0-9]{3}"/> </xs:restriction> </xs:simpleType>
Ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant des codes pays ou territoire étranger, par exemple :
§37.
<xs:element name="mon-element-Code_Pays_Ou_Territoire_Étranger" type="ie:Code_Pays_Ou_Territoire_Étranger_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§38.
<ex:mon-element-Code_Pays_Ou_Territoire_Étranger>99259</ex:mon-element-Code_Pays_Ou_Territoire_Étranger>
La définition de l'élément Code_Pays_Ou_Territoire_Étranger est la suivante :
§39.
<xs:element name="Code_Pays_Ou_Territoire_Étranger" type="ie:Code_Pays_Ou_Territoire_Étranger_stype"/>
Les éléments Code_Pays_Ou_Territoire_Étranger peuvent être utilisés directement dans des documents XML, par exemple
§40.
<ex:pays> <ie:Code_Pays_Ou_Territoire_Étranger>99516</ie:Code_Pays_Ou_Territoire_Étranger> <ex:nom>ÉTATS FÉDÉRÉS DE MICRONÉSIE</ex:nom> </ex:pays>
La définition de l'attribut Code_Pays_Ou_Territoire_Étranger est la suivante :
§41.
<xs:attribute name="Code_Pays_Ou_Territoire_Étranger" type="ie:Code_Pays_Ou_Territoire_Étranger_stype"/>
Les attributs Code_Pays_Ou_Territoire_Étranger peuvent être utilisés directement dans des documents XML, par exemple
§42.
<ex:pays ie:Code_Pays_Ou_Territoire_Étranger="99131"> <ex:nom>ROYAUME DE BELGIQUE</ex:nom> </ex:pays>
Lorsque l'on souhaite accepter indifféremment un code commune ou un code pays ou territoire étranger, on pourra utiliser le type Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype qui accepte les deux.
§43.
<xs:simpleType name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype"> <xs:union memberTypes="ie:Code_Commune_stype ie:Code_Pays_Ou_Territoire_Étranger_stype"/> </xs:simpleType>
ce type peut être affecté dans un schéma pour définir des éléments ou attributs contenant ces codes, par exemple :
§44.
<xs:element name="mon-element-Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger" type="ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§45.
<ex:mon-element-Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger>34260</ex:mon-element-Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger> <ex:mon-element-Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger>99516</ex:mon-element-Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger>
La définition de l'élément Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger est la suivante :
§46.
<xs:element name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger" type="ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype"/>
Les éléments Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger peuvent être utilisés directement dans des documents XML, par exemple
§47.
<ex:lieu> <ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger>2B002</ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger> <ex:nom>Aghione</ex:nom> </ex:lieu>
La définition de l'attribut Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger est la suivante :
§48.
<xs:attribute name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger" type="ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype"/>
Les attributs Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger peuvent être utilisés directement dans des documents XML, par exemple
§49.
<ex:lieu ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger="97306"> <ex:nom>Mana</ex:nom> </ex:lieu>
L'utilisation des éléments et attributs définis dans ce schéma permet de se baser directement sur leur nom (et espace de noms) pour les identifier et les valider.
L'utilisation des types simples définis dans ce schéma permet au contraire d'utiliser des noms d'attributs et d'éléments quelconques (et appartenant à des espaces de noms quelconques).
L'attribution de types à ces éléments et attributs permet de les valider en suivant les définitions de ce schéma.
Ces attributions sont également transmises aux applications supportant W3C XML Schema et son "Post Schema Validation Infoset" (PSVI) qui peuvent reconnaître qu'il s'agit des données d'identification définies par ce schéma.
Les documents suivants sont disponibles pour téléchargement.
[Document]
§50.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ie="http://xml.insee.fr/schema/2004" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xml.insee.fr/schema/2004" version="1.0"> <xs:include schemaLocation="insee-commun.xsd"/> §1.Type Code_Région_stype §4.Élément Code_Région §6.Attribut Code_Région §8.Type Code_Département_stype §11.Élément Code_Département §13.Attribut Code_Département §15.Type Code_Arrondissement_stype §18.Élément Code_Arrondissement §20.Attribut Code_Arrondissement §22.Type Code_Canton_stype §25.Élément Code_Canton §27.Attribut Code_Canton §29.Type Code_Commune_stype §32.Élément Code_Commune §34.Attribut Code_Commune §36.Type Code_Pays_Ou_Territoire_Étranger_stype §39.Élément Code_Pays_Ou_Territoire_Étranger §41.Attribut Code_Pays_Ou_Territoire_Étranger §43.Type Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype §46.Élément Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger §48.Attribut Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger </xs:schema>
Schéma validant les exemples utilisant les définitions de types :
[Document]
§51.
<xs:schema xmlns:ex="http://dyomedea.com/ns/example" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ie="http://xml.insee.fr/schema/2004" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://dyomedea.com/ns/example" version="1.0"> <xs:import namespace="http://xml.insee.fr/schema/2004" schemaLocation="cog.xsd"/> §2.Type Code_Région_stype §9.Type Code_Département_stype §16.Type Code_Arrondissement_stype §23.Type Code_Canton_stype §30.Type Code_Commune_stype §37.Type Code_Pays_Ou_Territoire_Étranger_stype §44.Type Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype <xs:element name="exemples"> <xs:complexType> <xs:sequence> <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##targetNamespace" processContents="strict"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
Document XML regroupant les exemples utilisant les définitions de types simples et complexes :
[Document]
§52.
<ex:exemples xmlns:ex="http://dyomedea.com/ns/example" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://dyomedea.com/ns/example exemples-cog-types.xsd"> §3.Type Code_Région_stype §10.Type Code_Département_stype §17.Type Code_Arrondissement_stype §24.Type Code_Canton_stype §31.Type Code_Commune_stype §38.Type Code_Pays_Ou_Territoire_Étranger_stype §45.Type Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype </ex:exemples>
Document XML regroupant les exemples utilisant les éléments et attributs :
[Document]
§53.
<ex:exemples xmlns:ex="http://dyomedea.com/ns/example" xmlns:ie="http://xml.insee.fr/schema/2004"> §5.Élément Code_Région §7.Attribut Code_Région §12.Élément Code_Département §14.Attribut Code_Département §19.Élément Code_Arrondissement §21.Attribut Code_Arrondissement §26.Élément Code_Canton §28.Attribut Code_Canton §33.Élément Code_Commune §35.Attribut Code_Commune §40.Élément Code_Pays_Ou_Territoire_Étranger §42.Attribut Code_Pays_Ou_Territoire_Étranger §47.Élément Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger §49.Attribut Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger </ex:exemples>
Les documents et sites de référence suivants ont été utilisés pour la constitution de ce vocabulaire XML.
La section "Code officiel géographique 2007" du site de l'INSEE regroupe les définitions du Code officiel géographique.
Les ressources suivantes sont définies ou référencées dans ce document :