Skip To Content

Service de catalogues

Dans cette rubrique

Service de catalogues du géoportail

Si le géoportail était une voiture, le service de catalogues du géoportail serait son moteur. Il serait chargé de contrôler les autres composants, de gérer les transactions et de fournir l’interface centralisée nécessaire à la découverte, la publication et la validation des métadonnées. Dans la version 9.3, le géoportail incluait une implémentation de la spécification d’interface CS-W (Catalog Service for the Web, service de catalogues pour le Web) 2.0.2 de l’OGC (Open Geospatial Consortium). Le lien menant à ce service suit généralement le format ci-dessous :

http://serverName:port/geoportal/csw?Request=GetCapabilities&Service=CSW&Version=2.0.2
  • serverName est le nom du serveur Web du géoportail
  • port est le numéro de port du géoportail
Le service CS-W du géoportail permet de prendre en charge les structures des métadonnées arbitraires sans pour autant rendre plus complexe le composant de recherche du géoportail. Lorsqu’un document de métadonnées est publié sur le géoportail, les métadonnées d’origine restent intactes et sont utilisées lors de l’édition des métadonnées dans le formulaire en ligne ou lors de l’affichage des métadonnées complètes dans le cadre des résultats de recherche. Dans le même temps, le géoportail est capable d’extraire des éléments à rechercher dans une structure uniforme, de normaliser les valeurs de domaine parmi les normes des métadonnées, de déterminer les codes de catégorie de rubrique ou les types de contenu du document de métadonnées, de sélectionner le contenu clé pour le connecter aux ressources en ligne et d’attribuer un identifiant unique à l’enregistrement. Les fonctionnalités de l’implémentation CS-W du géoportail vont être présentées et des exemples de requêtes et de réponses fournies dans les sections ci-dessous. Pour plus d’informations sur les fichiers de définition du service Web, reportez-vous à la rubrique Langage WSDL du géoportail.

Détails de l’interface CS-W

  1. OPERATIONS PRISES EN CHARGE : l’implémentation CS-W du géoportail prend en charge les requêtes CS-W obligatoires, ainsi que les requêtes GetRecordsById et Transaction facultatives. Les requêtes de transaction publient ou mettent à jour des documents entiers uniquement. La requête de transaction delete repose sur l’identificateur de fichier seul. Les autorisations de l’éditeur du géoportail pour exécuter les requêtes de transaction doivent être comprises dans l’en-tête HTTP de l’application cliente qui envoie la requête CS-W. L’en-tête de l’application cliente et les informations d’identification doivent respecter les normes d’autorisation HTTP. Les opérations GetDomain et Harvest ne sont pas prises en charge pour le moment.
    Remarque :

    Dans le tableau ci-dessous, la colonne Obligation indique si l’opération est obligatoire ou facultative. Les opérations obligatoires sont nécessaires pour que le service soit au minimum conforme à cette spécification CS-W. Les opérations facultatives ne sont pas exigées par la spécification CS-W.

    Tableau 1 - Opérations CS-W prises en charge

    Opération ObligationPrise en chargeLiaison

    GetCapabilities

    obligatoire

    oui

    KVP+POST+SOAP

    DescribeRecord

    obligatoire

    oui

    KVP+POST+SOAP

    GetRecords

    obligatoire

    oui

    KVP+POST+SOAP

    GetRecordById

    facultative

    oui

    KVP+POST+SOAP

    GetDomain

    facultative

    Non

    N/D

    Harvest

    facultative

    Non

    N/D

    Transaction

    facultative

    oui

    POST+SOAP

    Pour chacune des opérations prises en charge, l’implémentation CS-W du géoportail prend en charge les implémentations KVP, POST et SOAP.
  2. ESPACES DE NOMS : le tableau suivant répertorie les déclarations de préfixe des espaces de noms utilisées dans ce document, ainsi que la spécification et la version associées.

    Tableau 2 - Déclarations de préfixe des espaces de noms

    PréfixeURI de l’espace de nomsSpécification

    csw

    http://www.opengis.net/cat/csw/2.0.2

    OGC Catalogue Services 2.0.2, Corrigendum 2 Release, OGC 07-006r1

    ows

    http://www.opengis.net/ows

    OGC Common 1.0.0

    ogc

    http://www.opengis.net/ogc

    OGC Filter 1.1.0

    gml

    http://www.opengis.net/gml

    GML 3.0.0

    dc

    http://purl.org/dc/elements/1.1/

    Dublin Core

    dct

    http://purl.org/dc/terms

    Termes Dublin Core

    gmd

    http://www.isotc211.org/2005/gmd

    ISO 19115/19139

    SOAP-ENV

    http://schemas.xmlsoap.org/soap/envelope

    SOAP Version 1.1

    env

    http://www.w3.org/2003/05/soap-envelope/

    SOAP Version 1.2

  3. PRINCIPALES PROPRIETES INTERROGEABLES : l’implémentation CS-W du géoportail prend en charge les principales propriétés CS-W interrogeables, celles définies dans le profil de l’application ISO CSW ainsi que d’autres propriétés interrogeables (applicables aux métadonnées ISO uniquement). Le modèle d’informations du géoportail repose sur des documents XML et une base de données spatiales. Ses documents XML contiennent des éléments FGDC, ISO 19139, Dublin Core ou d’autres éléments et attributs XML. Le tableau ci-dessous permet d’associer les principales propriétés interrogeables du catalogue OGC à des éléments du modèle d’informations du géoportail. Les propriétés interrogeables restantes qui reposent sur des métadonnées ISO 19115 et ISO 19119 respectent scrupuleusement les noms et associations définies dans la spécification OpenGIS® Catalogue Services Specification 2.0.2 - ISO Metadata Application Profile et Technical Guidance to implement INSPIRE Discovery Services Technical Guidance Version 2.12.

    Tableau 3 - Description et association des principales propriétés interrogeables

    NomAliasDéfinitionType de données Filtres des propriétés de l’OGC autorisésAssociation avec le modèle d’informations

    dc:identifier

    fileIdentifier, fid, id, identifier, fileID

    Référence claire à la ressource dans un contexte donné.

    chaîne

    Tous *

    ISO 19139 : /gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString Dublin Core :/rdf:RDF/rdf:Description/dc:identifier FGDC : identifiant attribué par le système, car FGDC n’inclut pas de provision à cet effet.

    dct:modified

    modified, dc:date, date

    Date de la dernière modification de la ressource

    Chaîne au format de date (aaaa-mm-jj)

    Tous * sont autorisés, sauf pour ogc:PropertyIsLike

    Stockage dans la base de données. Prenez connaissance des informations concernant le système de fichiers.

    ows:BoundingBox

    geometry, envelope

    Emprise permettant d’identifier une zone d’intérêt géographique.

    gml:Envelope, gml:Point

    Ensemble d’opérateurs spatiaux (voir la section ci-dessous sur les requêtes spatiales)

    Les exemples portent sur "West", mais vous pouvez utiliser la même syntaxe pour East, North et South : ISO 19139 : /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal Dublin Core, deux options (east = UpperCorner, north = UpperCorner, south = LowerCorner) : /rdf:RDF/rdf:Description/ows:WGS84BoundingBox/westbc /rdf:RDF/rdf:Description/ows:WGS84BoundingBox/ows:LowerCorner FGDC : west: /metadata/idinfo/spdom/bounding/westbc

    anyText

    csw:anyText

    Cette propriété interrogeable représente l’entrée de catalogue dans son ensemble.

    chaîne

    ogc:PropertyIsLike

    Ces éléments sont signalés comme comportant une des significations suivantes : titre, résumé, mots-clés ou corps. Reportez-vous à la section "Fonctionnement de l’indexation Lucene" pour connaître les paramètres par défaut de ces significations et savoir comment les modifier.

    dc:title

    title

    Nom donné à la ressource

    chaîne

    Tous *

    ISO 19139 : /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString Dublin Core : /rdf:RDF/rdf:Description/dc:title FGDC : /metadata/idinfo/citation/citeinfo/title

    dc:abstract

    abstract

    Description générale de la ressource

    chaîne

    Tous *

    ISO 19139 : /gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract/gco:CharacterString Dublin Core : /rdf:RDF/rdf:Description/dc:description FGDC : /metadata/idinfo/descript/abstract

    dc:subject

    subject

    Sujet du contenu de la ressource. Controlled-list.

    chaîne

    ogc:PropertyIsEqualTo

    Les valeurs acceptées sont basées sur les codes de catégorie de rubrique ISO 19115 : farming biota boundaries climatologyMeteorologyAtmosphere economy elevation environment geoscientificInformation health imageryBaseMapsEarthCover intelligenceMilitary inlandWaters location oceans planningCadastre society structure transportation utilitiesCommunication ISO 19139:/gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode Dublin Core: /rdf:RDF/rdf:Description/dc:subject FGDC: /metadata/idinfo/keywords/theme[1]/themekey

    dc:type

    type, dc:format, format

    Manifestation physique ou numérique de la ressource.

    chaîne

    Tous * sont autorisés, mais seul "ogc:PropertyIsEqualTo" semble le plus logique.

    Les valeurs acceptées sont les suivantes : liveData downloadableData offlineData staticMapImage document application geographicService clearinghouse mapFiles geographicActivities ISO 19139 : choix entre les normes de contenu ISO19115 et ISO19119. Dublin Core : /rdf:RDF/rdf:Description/dc:type FGDC : /metadata/distinfo/resdesc

    Remarque :

    *"All" (Tous) implique tous les opérateurs de comparaison OGC :

    • ogc:PropertyIsEqualTo
    • ogc:PropertyIsNotEqualTo
    • ogc:PropertyIsLessThan
    • ogc:PropertyIsGreaterThan
    • ogc:PropertyIsLessThanOrEqualTo
    • ogc:PropertyIsGreaterThanOrEqualTo
    • ogc:PropertyIsLike

  4. REQUETES SPATIALES : les requêtes de type Envelope sont codées à l’aide des prédicats spatiaux du filtre de l’OGC. L’API CS-W du géoportail ne prend pas en charge tous les prédicats spatiaux disponibles dans la spécification du filtre.

    Tableau 4 - Prédicats spatiaux pris en charge

    Prédicat spatial du filtre de l’OGCPrédicat spatial CS-W du géoportail

    ogc:BBOX

    Overlaps

    ogc:Intersects

    Overlaps

    ogc:Within

    Winthin

    • overlaps - recherche les documents de métadonnées dans lesquels une partie ou l’intégralité de l’enveloppe des documents de métadonnées entre dans la zone de recherche spécifiée. Tout ce que touche la zone de recherche est trouvé.
    • within - recherche les documents de métadonnées dans lesquels l’enveloppe des documents de métadonnées entre entièrement dans la zone de recherche spécifiée. L’enveloppe spatiale des documents peut toucher la limite de la zone de recherche.
    • Les opérandes de géométrie pris en charge pour les requêtes spatiales sont les suivants :
      1. gml:Envelope
      2. gml:Point
  5. OPERATEURS DE COMPARAISON : les opérateurs de comparaison sont inclus dans une requête csw:GetRecord :
    • Between
    • EqualTo
    • GreaterThan
    • GreaterThanEqualTo
    • LessThan
    • LessthanEqualTo
    • Like
    • NotEqualTo
    • NullCheck
  6. PARAMETRES : le tableau suivant présente les paramètres appropriés à chaque opération prise en charge.

    Tableau 5 - Paramètres pris en charge

    Opération Paramètre Valeurs acceptées

    DescribeRecord

    typeName

    csw:Record, csw:SummaryRecord, csw:BriefRecord

    outputFormat

    text/xml, application/xml

    GetRecords

    typeNames

    csw:Record

    outputFormat

    text/xml, application/xml

    outputSchema

    http://www.opengis.net/cat/csw/2.0.2

    http://www.isotc211.org/2005/gmd

    resultType

    results, hits, validate

    ElementSetName

    summary, brief, full

    constraintLanguage

    Filter

    GetRecordById

    ElementSetName

    summary, brief, full

    outputFormat

    text/xml, application/xml

    outputSchema

    http://www.opengis.net/cat/csw/2.0.2

    http://www.isotc211.org/2005/gmd

    service

    CSW, http://www.opengis.net/cat/csw/2.0.2

    version

    2.0.2

    PostEncoding

    XML

  7. PROPRIETES POUVANT ETRE RENVOYEES :

    Pour la structure en sortie csw:Record, les enregistrements renvoyés contiennent une sélection des principales propriétés pouvant être renvoyées, dont le sous-ensemble dépend de l’ensemble des éléments. Lorsque request=GetRecordById, outputSchema=original et ElementSetName=full, l’interface CS-W du géoportail renvoie le document de métadonnées d’origine, tel qu’il a été publié dans le géoportail. Pour la structure en sortie gmd:MD_Metadata, les enregistrements renvoyés contiennent une sélection d’éléments de métadonnées ISO, dont le sous-ensemble dépend de l’ensemble des éléments, tel que défini dans le profil d’application ISO CSW de l’OGC.

    Tableau 6 - Propriétés pouvant être renvoyées

    Jeu d’élémentsPropriétés pouvant être renvoyées

    brief

    dc:identifier, dc:title, dc:type, ows:Envelope

    Summary

    dc:identifier, dc:title, dc:type, dc:format, ows:Envelope, dc:subject, dct:modified, dc:abstract

    Full

    dc:identifier, dc:title, dc:type, ows:Envelope, dc:subject, dct:modified, dc:abstract, dct:references

Requêtes d’exemple

Cette section propose des requêtes d’exemple.

  1. GetCapabilities : les requêtes KVP, POST et SOAP sont prises en charge par le service CS-W du géoportail.

    KVP

    ?REQUEST=GetCapabilities&SERVICE=CSW&version=2.0.2

    POST

    <?xml version="1.0" encoding="UTF-8"?> <csw:GetCapabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" xmlns="http://www.opengis.net/ows"> </csw:GetCapabilities>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetCapabilities xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" service="CSW" xmlns="http://www.opengis.net/ows"> </csw:GetCapabilities> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  2. DescribeRecord

    KVP

    ?REQUEST=DescribeRecord&service=CSW&version=2.0.0

    POST

    <csw:DescribeRecord service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"></csw:DescribeRecord>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:DescribeRecord service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"> </csw:DescribeRecord> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  3. GetRecords : une requête GetRecords nécessite une langue de contrainte, et comme le service CS-W du géoportail ne prend pas en charge le langage CQL (Common Query Language), seules les requêtes de filtre XML avec le style POST sont prises en charge.

    AnyText

    KVP

    N/D

    POST

    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:And> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyName>AnyText</ogc:PropertyName> <ogc:Literal>data</ogc:Literal> </ogc:PropertyIsLike> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:type</ogc:PropertyName> <ogc:Literal>liveData</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:PropertyName> <ogc:Literal>imageryBaseMapsEarthCover</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowerCorner> <gml:upperCorner>-87.1 45.2</gml:upperCorner> </gml:Envelope> </ogc:BBOX> </ogc:And> </ogc:Filter> </csw:Constraint> </csw:Query> </csw:GetRecords>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:And> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyName>AnyText</ogc:PropertyName> <ogc:Literal>data</ogc:Literal> </ogc:PropertyIsLike> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:type</ogc:PropertyName> <ogc:Literal>liveData</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:PropertyName> <ogc:Literal>imageryBaseMapsEarthCover</ogc:Literal> </ogc:PropertyIsEqualTo> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowerCorner> <gml:upperCorner>-87.1 45.2</gml:upperCorner> </gml:Envelope> </ogc:BBOX> </ogc:And> </ogc:Filter> </csw:Constraint> </csw:Query> </csw:GetRecords> </SOAP-ENV:Body> </SOAP-ENV:Envelope >

    Title

    KVP

    N/D

    POST

    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:Literal>Sample Document</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords>

    SOAP

    <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsLike wildCard="*" escape="\" singleChar="?"> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:Literal>Sample Document</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

    Subject

    KVP

    N/D

    POST

    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:PropertyName> <ogc:Literal>imageryBaseMapsEarthCover</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords>

    SOAP

    <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:subject</ogc:PropertyName> <ogc:Literal>imageryBaseMapsEarthCover</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

    Modified

    KVP

    N/D

    POST

    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>dct:modified</ogc:PropertyName> <ogc:Literal>2000-01-01</ogc:Literal> </ogc:PropertyIsGreaterThan> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords>

    SOAP

    <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:PropertyIsGreaterThan> <ogc:PropertyName>dct:modified</ogc:PropertyName> <ogc:Literal>2000-01-01</ogc:Literal> </ogc:PropertyIsGreaterThan> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

    Envelope

    KVP

    N/D

    POST

    <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowerCorner> <gml:upperCorner>-87.1 45.2</gml:upperCorner> </gml:Envelope> </ogc:BBOX> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecords xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW" resultType="results" startPosition="1" maxRecords="10"> <csw:Query typeNames="csw:Record" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml"> <csw:ElementSetName>full</csw:ElementSetName> <csw:Constraint version="1.1.0"> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>ows:BoundingBox</ogc:PropertyName> <gml:Envelope> <gml:lowerCorner>-118.3 32.1</gml:lowerCorner> <gml:upperCorner>-87.1 45.2</gml:upperCorner> </gml:Envelope> </ogc:BBOX> </ogc:Filter> </csw:Constraint> <ogc:SortBy> <ogc:SortProperty> <ogc:PropertyName>dc:title</ogc:PropertyName> <ogc:SortOrder>ASC</ogc:SortOrder> </ogc:SortProperty> </ogc:SortBy> </csw:Query> </csw:GetRecords> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  4. GetRecordById

    KVP

    ?REQUEST=GetRecordById&service=CSW&version=2.0.2&Id=B6A0EC8C-826D-11D8-BADF-080020ECC953

    POST

    <<csw:GetRecordById xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" version="2.0.2" service="CSW"> <csw:Id>B6A0EC8C-826D-11D8-BADF-080020ECC953</csw:Id></csw:GetRecordById>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:GetRecordById xmlns:csw=http://www.opengis.net/cat/csw/2.0.2 version="2.0.2" service="CSW"> <csw:Id>B6A0EC8C-826D-11D8-BADF-080020ECC953</csw:Id> </csw:GetRecordById> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  5. Transaction d’insertion :

    POST

    <?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" > <csw:Insert> … le document de métadonnées est inséré ici sans prologue xml… </csw:Insert> </csw:Transaction>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" > <csw:Insert> … le document de métadonnées est inséré ici sans prologue xml… </csw:Insert> </csw:Transaction> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  6. Transaction de mise à jour : la requête de mise à jour permet de remplacer des documents entiers uniquement.

    POST

    <?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" > <csw:Update> … le document de métadonnées est inséré ici sans prologue xml… </csw:Update> </csw:Transaction>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" > <csw:Update> … le document de métadonnées est inséré ici sans prologue xml… </csw:Update> </csw:Transaction> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

  7. Transaction de suppression : la requête de suppression permet de supprimer des documents entiers uniquement en fonction de l’identifiant. Les identifiant sont renvoyés dans la réponse GetRecords. L’objectif du workflow est de trouver les enregistrements qui répondent à certains critères à l’aide de la requête GetRecords, puis de supprimer les enregistrements renvoyés en fonction de l’identifiant dc:identifier.

    POST

    <?xml version="1.0" encoding="UTF-8"?> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:ogc="http://www.opengis.net/ogc"> <csw:Delete> <csw:Constraint version="2.0.2"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:identifier</ogc:PropertyName> <ogc:Literal>A0522EE9-8C45-4399-8B73-7CCFC2BB9F60</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> </csw:Delete> </csw:Transaction>

    SOAP

    <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xmlns:xsd="http://www.w3.org/1999/XMLSchema"> <SOAP-ENV:Body> <csw:Transaction service="CSW" version="2.0.2" xmlns:csw="http://www.opengis.net/cat/csw/2.0.2" xmlns:dc="http://www.purl.org/dc/elements/1.1/" xmlns:ogc="http://www.opengis.net/ogc"> <csw:Delete> <csw:Constraint version="2.0.2"> <ogc:Filter> <ogc:PropertyIsEqualTo> <ogc:PropertyName>dc:identifier</ogc:PropertyName> <ogc:Literal>A0522EE9-8C45-4399-8B73-7CCFC2BB9F60</ogc:Literal> </ogc:PropertyIsEqualTo> </ogc:Filter> </csw:Constraint> </csw:Delete> </csw:Transaction> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Langage WSDL du géoportail

Le langage wsdl associé aux extrémités SOAP CS-W du géoportail repose sur l’exemple de l’OGC qui se trouve à l’emplacement http://schemas.opengis.net/csw/2.0.2/examples/wsdl/2.0.2/. Les fichiers wsdl du géoportail associés à ses extrémités SOAP CS-W se trouvent dans http://<hôte>:<port>/geoportal/csw/service-wsdl.jsp, où <hôte> correspond au serveur hôte du géoportail et <port> désigne le numéro de port. Ils sont stockés dans le répertoire . Il s’agit des fichiers suivants :

  • http-binding.wsdl
  • kvp-binding.wsdl
  • responses.wsdl
  • service-wsdl.jsp
  • soap-binding.wsdl
  • xml-interfaces.wsdl