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.
Certains objets présentés ici ont été introduits dans la première version de l'espace de noms, et obéissent à des règles de nommage qui ont été depuis abandonnées. Ils ont été remplacés par des types équivalents respectant les nouvelles règles et sont indiqués ci-dessous comme d'usage déconseillé. Ils seront supprimés dans les prochaines versions de l'espace de noms.
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
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="CodeRegionType"> <xs:restriction base="ie:ChaineNumeriqueType"> <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-region" type="ie:CodeRegionType"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple
§3.
<ex:mon-element-code-region>74</ex:mon-element-code-region>
La définition de l'élément CodeRegion est la suivante :
§4.
<xs:element name="CodeRegion" type="ie:CodeRegionType"/>
Les éléments CodeRegion peuvent être utilisés directement dans des documents XML, par exemple :
§5.
<ex:région> <ie:CodeRegion>41</ie:CodeRegion> <ex:nom>Lorraine</ex:nom> </ex:région>
La définition de l'attribut codeRegion est la suivante :
§6.
<xs:attribute name="codeRegion" type="ie:CodeRegionType"/>
Les attributs codeRegion peuvent être utilisés directement dans des documents XML, par exemple
§7.
<ex:région ie:codeRegion="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="CodeDepartementType"> <xs:restriction base="ie:ChaineNumeriqueEtAsciiMajusculeType"> <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-departement" type="ie:CodeDepartementType"/>
Les éléments ou attributs ainsi définis peuvent ensuite être utilisés dans des documents XML, par exemple :
§10.
<ex:mon-element-code-departement>74</ex:mon-element-code-departement>
La définition de l'élément CodeDepartement est la suivante :
§11.
<xs:element name="CodeDepartement" type="ie:CodeDepartementType"/>
Les éléments CodeDepartement peuvent être utilisés directement dans des documents XML, par exemple :
§12.
<ex:département> <ie:CodeDepartement>2A</ie:CodeDepartement> <ex:nom>Corse-du-Sud</ex:nom> </ex:département>
La définition de l'attribut codeDepartement est la suivante :
§13.
<xs:attribute name="codeDepartement" type="ie:CodeDepartementType"/>
Les attributs codeDepartement peuvent être utilisés directement dans des documents XML, par exemple :
§14.
<ex:département ie:codeDepartement="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="CodeArrondissementType"> <xs:restriction base="ie:ChaineNumeriqueEtAsciiMajusculeType"> <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:CodeArrondissementType"/>
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 CodeArrondissement est la suivante :
§18.
<xs:element name="CodeArrondissement" type="ie:CodeArrondissementType"/>
Les éléments CodeArrondissement peuvent être utilisés directement dans des documents XML, par exemple :
§19.
<ex:arrondissement> <ie:CodeArrondissement>2B5</ie:CodeArrondissement> <ex:nom>Calvi</ex:nom> </ex:arrondissement>
La définition de l'attribut codeArrondissement est la suivante :
§20.
<xs:attribute name="codeArrondissement" type="ie:CodeArrondissementType"/>
Les attributs codeArrondissement peuvent être utilisés directement dans des documents XML, par exemple :
§21.
<ex:arrondissement ie:codeArrondissement="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="CodeCantonType"> <xs:restriction base="ie:ChaineNumeriqueEtAsciiMajusculeType"> <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:CodeCantonType"/>
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 CodeCanton est la suivante :
§25.
<xs:element name="CodeCanton" type="ie:CodeCantonType"/>
Les éléments CodeCanton peuvent être utilisés directement dans des documents XML, par exemple :
§26.
<ex:canton> <ie:CodeCanton>2A62</ie:CodeCanton> <ex:nom>Zicavo</ex:nom> </ex:canton>
La définition de l'attribut codeCanton est la suivante :
§27.
<xs:attribute name="codeCanton" type="ie:CodeCantonType"/>
Les attributs codeCanton peuvent être utilisés directement dans des documents XML, par exemple :
§28.
<ex:canton ie:codeCanton="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="CodeCommuneType"> <xs:restriction base="ie:ChaineNumeriqueEtAsciiMajusculeType"> <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:CodeCommuneType"/>
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 CodeCommune est la suivante :
§32.
<xs:element name="CodeCommune" type="ie:CodeCommuneType"/>
Les éléments CodeCommune peuvent être utilisés directement dans des documents XML, par exemple :
§33.
<ex:commune> <ie:CodeCommune>2B002</ie:CodeCommune> <ex:nom>Aghione</ex:nom> </ex:commune>
La définition de l'attribut codeCommune est la suivante :
§34.
<xs:attribute name="codeCommune" type="ie:CodeCommuneType"/>
Les attributs codeCommune peuvent être utilisés directement dans des documents XML, par exemple :
§35.
<ex:commune ie:codeCommune="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="CodePaysOuTerritoireEtrangerType"> <xs:restriction base="ie:ChaineNumeriqueType"> <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-etranger" type="ie:CodePaysOuTerritoireEtrangerType"/>
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-etranger>99259</ex:mon-element-code-pays-ou-territoire-etranger>
La définition de l'élément CodePaysOuTerritoireEtranger est la suivante :
§39.
<xs:element name="CodePaysOuTerritoireEtranger" type="ie:CodePaysOuTerritoireEtrangerType"/>
Les éléments CodePaysOuTerritoireEtranger peuvent être utilisés directement dans des documents XML, par exemple :
§40.
<ex:pays> <ie:CodePaysOuTerritoireEtranger>99516</ie:CodePaysOuTerritoireEtranger> <ex:nom>ÉTATS FÉDÉRÉS DE MICRONÉSIE</ex:nom> </ex:pays>
La définition de l'attribut codePaysOuTerritoireEtranger est la suivante :
§41.
<xs:attribute name="codePaysOuTerritoireEtranger" type="ie:CodePaysOuTerritoireEtrangerType"/>
Les attributs codePaysOuTerritoireEtranger peuvent être utilisés directement dans des documents XML, par exemple :
§42.
<ex:pays ie:codePaysOuTerritoireEtranger="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 CodeCommuneOuPaysOuTerritoireEtrangerType qui accepte les deux.
§43.
<xs:simpleType name="CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType"> <xs:union memberTypes="ie:CodeCommuneType ie:CodePaysOuTerritoireEtrangerType"/> </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-francaise-ou-pays-ou-territoire-etranger" type="ie:CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType"/>
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-francaise-ou-pays-ou-territoire-etranger>34260</ex:mon-element-code-commune-francaise-ou-pays-ou-territoire-etranger> <ex:mon-element-code-commune-francaise-ou-pays-ou-territoire-etranger>99516</ex:mon-element-code-commune-francaise-ou-pays-ou-territoire-etranger>
La définition de l'élément CodeFrancaiseCommuneOuPaysOuTerritoireEtranger est la suivante :
§46.
<xs:element name="CodeCommuneFrancaiseOuPaysOuTerritoireEtranger" type="ie:CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType"/>
Les éléments CodeCommuneFrancaiseOuPaysOuTerritoireEtranger peuvent être utilisés directement dans des documents XML, par exemple :
§47.
<ex:lieu> <ie:CodeCommuneFrancaiseOuPaysOuTerritoireEtranger>2B002</ie:CodeCommuneFrancaiseOuPaysOuTerritoireEtranger> <ex:nom>Aghione</ex:nom> </ex:lieu>
La définition de l'attribut codeCommuneFrancaiseOuPaysOuTerritoireEtranger est la suivante :
§48.
<xs:attribute name="codeCommuneFrancaiseOuPaysOuTerritoireEtranger" type="ie:CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType"/>
Les attributs codeCommuneFrancaiseOuPaysOuTerritoireEtranger peuvent être utilisés directement dans des documents XML, par exemple :
§49.
<ex:lieu ie:codeCommuneFrancaiseOuPaysOuTerritoireEtranger="97306"> <ex:nom>Mana</ex:nom> </ex:lieu>
§50.
<xs:simpleType name="Code_Région_stype" ie:obsolete="true"> <xs:restriction base="ie:Chaîne_Numérique_stype"> <xs:length value="2"/> </xs:restriction> </xs:simpleType>
§51.
<xs:element name="Code_Région" type="ie:Code_Région_stype" ie:obsolete="true"/>
§52.
<xs:attribute name="Code_Région" type="ie:Code_Région_stype" ie:obsolete="true"/>
§53.
<xs:simpleType name="Code_Département_stype" ie:obsolete="true"> <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>
§54.
<xs:element name="Code_Département" type="ie:Code_Département_stype" ie:obsolete="true"/>
§55.
<xs:attribute name="Code_Département" type="ie:Code_Département_stype" ie:obsolete="true"/>
§56.
<xs:simpleType name="Code_Arrondissement_stype" ie:obsolete="true"> <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>
§57.
<xs:element name="Code_Arrondissement" type="ie:Code_Arrondissement_stype" ie:obsolete="true"/>
§58.
<xs:attribute name="Code_Arrondissement" type="ie:Code_Arrondissement_stype" ie:obsolete="true"/>
§59.
<xs:simpleType name="Code_Canton_stype" ie:obsolete="true"> <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>
§60.
<xs:element name="Code_Canton" type="ie:Code_Canton_stype" ie:obsolete="true"/>
§61.
<xs:attribute name="Code_Canton" type="ie:Code_Canton_stype" ie:obsolete="true"/>
§62.
<xs:simpleType name="Code_Commune_stype" ie:obsolete="true"> <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>
§63.
<xs:element name="Code_Commune" type="ie:Code_Commune_stype" ie:obsolete="true"/>
§64.
<xs:attribute name="Code_Commune" type="ie:Code_Commune_stype" ie:obsolete="true"/>
§65.
<xs:simpleType name="Code_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"> <xs:restriction base="ie:Chaîne_Numérique_stype"> <xs:length value="5"/> <xs:pattern value="99[0-9]{3}"/> </xs:restriction> </xs:simpleType>
§66.
<xs:element name="Code_Pays_Ou_Territoire_Étranger" type="ie:Code_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"/>
§67.
<xs:attribute name="Code_Pays_Ou_Territoire_Étranger" type="ie:Code_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"/>
§68.
<xs:simpleType name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"> <xs:union memberTypes="ie:Code_Commune_stype ie:Code_Pays_Ou_Territoire_Étranger_stype"/> </xs:simpleType>
§69.
<xs:element name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger" type="ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"/>
§70.
<xs:attribute name="Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger" type="ie:Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype" ie:obsolete="true"/>
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]
§71.
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ie="http://xml.insee.fr/schema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://xml.insee.fr/schema" version="2.0"> <xs:include schemaLocation="insee-commun.xsd"/> §1.Type CodeRegionType §4.Élément CodeRegion §6.Attribut codeRegion §8.Type CodeDepartementType §11.Élément CodeDepartement §13.Attribut codeDepartement §15.Type CodeArrondissementType §18.Élément CodeArrondissement §20.Attribut codeArrondissement §22.Type CodeCantonType §25.Élément CodeCanton §27.Attribut codeCanton §29.Type CodeCommuneType §32.Élément CodeCommune §34.Attribut codeCommune §36.Type CodePaysOuTerritoireEtrangerType §39.Élément CodePaysOuTerritoireEtranger §43.Type CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType §46.Élément CodeCommuneFrancaiseOuPaysOuTerritoireEtranger §48.Attribut codeCommuneFrancaiseOuPaysOuTerritoireEtranger §41.Attribut codePaysOuTerritoireEtranger <xs:annotation ie:obsolete="true"> <xs:documentation> Les objets qui suivent sont obsolètes et seront supprimés dans les prochaines versions.</xs:documentation> </xs:annotation> §50.Type Code_Région_stype §51.Élément Code_Région §52.Attribut Code_Région §53.Type Code_Département_stype §54.Élément Code_Département §55.Attribut Code_Département §56.Type Code_Arrondissement_stype §57.Élément Code_Arrondissement §58.Attribut Code_Arrondissement §59.Type Code_Canton_stype §60.Élément Code_Canton §61.Attribut Code_Canton §62.Type Code_Commune_stype §63.Élément Code_Commune §64.Attribut Code_Commune §65.Type Code_Pays_Ou_Territoire_Étranger_stype §66.Élément Code_Pays_Ou_Territoire_Étranger §67.Attribut Code_Pays_Ou_Territoire_Étranger §68.Type Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger_stype §69.Élément Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger §70.Attribut Code_Commune_Française_Ou_Pays_Ou_Territoire_Étranger </xs:schema>
Schéma validant les exemples utilisant les définitions de types :
[Document]
§72.
<xs:schema xmlns:ex="http://dyomedea.com/ns/example" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ie="http://xml.insee.fr/schema" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://dyomedea.com/ns/example" version="2.0"> <xs:import namespace="http://xml.insee.fr/schema" schemaLocation="cog.xsd"/> §2.Type CodeRegionType §9.Type CodeDepartementType §16.Type CodeArrondissementType §23.Type CodeCantonType §30.Type CodeCommuneType §37.Type CodePaysOuTerritoireEtrangerType §44.Type CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType <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]
§73.
<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 CodeRegionType §10.Type CodeDepartementType §17.Type CodeArrondissementType §24.Type CodeCantonType §31.Type CodeCommuneType §38.Type CodePaysOuTerritoireEtrangerType §45.Type CodeCommuneFrancaiseOuPaysOuTerritoireEtrangerType </ex:exemples>
Document XML regroupant les exemples utilisant les éléments et attributs :
[Document]
§74.
<ex:exemples xmlns:ex="http://dyomedea.com/ns/example" xmlns:ie="http://xml.insee.fr/schema"> §5.Élément CodeRegion §7.Attribut codeRegion §12.Élément CodeDepartement §14.Attribut codeDepartement §19.Élément CodeArrondissement §21.Attribut codeArrondissement §26.Élément CodeCanton §28.Attribut codeCanton §33.Élément CodeCommune §35.Attribut codeCommune §40.Élément CodePaysOuTerritoireEtranger §42.Attribut codePaysOuTerritoireEtranger §47.Élément CodeCommuneFrancaiseOuPaysOuTerritoireEtranger §49.Attribut codeCommuneFrancaiseOuPaysOuTerritoireEtranger </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 :