mardi, septembre 9 2008, 16:46
Mise en ligne de données avec TapirLink
Par Jean-Pascal MILCENT - Informatique et Systématique - Lien permanent
Utilisation de TapirLink pour mettre à disposition sous forme de service web les données publiques des projets Chorologie Départementale et Carnet en Ligne.
Préparation des données à mettre en ligne
Concernant le projet de Chorologie Départementale (chorodep), nous avons essayé de connecter la base eFlore avec TapirLink. Malheureusement, il n'est pas possible d'établir de liaison entre deux tables sur des clés primaires comprenant plusieurs champs. L'idée suivante a été de connecter les tables entre elles via une vue directement dans la base Mysql. Malheureusement, le nombre d'enregistrement (250 000) et le nombre de table, à connecter entre elles, étaient trop important. Nous avons donc produit une table sur mesure pour TapirLink à partir des données d'origine grâce au programme d'intégration. Dans le futur, nous chercherons à dénormaliser la base de données eFlore afin de pouvoir créer une vue pour TapirLink...
Pour le projet Carnet en Ligne (CEL), la mise en ligne des données a été facilitée par la possibilité de réaliser une vue dans Mysql. Dans ce modèle, il y avait seulement deux tables à lier mais avec une clé primaire multiple.
Dans les deux cas, nous avons liés les données aux standard DarwinCore 1.4 et ABCD 2.06. Toutes les données sont accessibles en ligne et interrogeables via l'interface client.
L'outil "TapirLink XML Client"
L'outil "TapirLink XML Client" permet d'interroger les ressources (chorodep et cel dans notre cas). Il est possible de réaliser dessus plusieurs actions :
- Ping permet de savoir si le service est actif ;
- Capabilities permet de connaitre pour chaque ressources les standards disponible et les types de données interrogeables. Cela permet d'interroger correctement le service ;
- Metadata fournit toutes les méta-données sur la ressources ;
- Inventory permet de compter le nombre d'enregistrement différent pour chaque concept d'un standard. Par exemple, le nombre de noms latins différents et le nombre d'occurence pour chacun d'entre eux.
- Search permet de réaliser une requête sur les données de la ressource.
Pour chacune de ces opérations, c'est une requête au format XML qui va permettre de récupérer l'information. Le protocole TAPIR décrit le format de requête et de réponse pour chaque opération. Il offre beaucoup de souplesse au niveau de la réponse, puisqu'il est possible de définir soi même son XML grâce à XML Schema. Vous trouverez ci-dessous plusieurs exemples de requêtes pour nos deux services pour le standard DarwinCore 1.4 et ABCD 2.06.
Notes du 25 septembre 2009 : Si on dépose, le dossier tapirlink directement dans son espace www sur son serveur, il est intéressant de mettre un fichier .htaccess effectuant des réécritures d'urls suivante :
RewriteEngine On # Redirection vers les services TapirLink RewriteRule ^tapir(.*)$ www/tapir$1 [QSA,L] RewriteRule ^$ www/index.php [QSA,L]
Sous Windows, pour le .htaccess, il est nécessaire de passer en ligne de commande : Démarrer > Executer : cmd.
Ensuite, rendez vous (avec la commande cd) dans le dossier contenant un fichier htaccess.txt que vous renommerez avec la commande : ren htaccess.txt .htaccess.
Quelques requêtes types :
Standard ABCD 2.06
Il est possible d'avoir des infos sur les concepts de ce standard via un "Schema Viewer". Il en facilite l'accès en offrant une interface sous forme d'arbre hiérarchique des concepts. Par contre, il ne s'agit peut être pas de la dernière version du standard. À vérifier...
Tous les champs rempli, utilisation avancée de XML Schéma
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="DataSet">
<xs:complexType>
<xs:sequence>
<xs:element name="Head">
<xs:complexType>
<xs:sequence>
<xs:element name="TechnicalContacts.TechnicalContact">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ContentContacts.ContentContact">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Email" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Metadata">
<xs:complexType>
<xs:sequence>
<xs:element name="Description.Representation.Title" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="RevisionData.DateModified" type="xs:dateTime"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Units">
<xs:complexType>
<xs:sequence>
<xs:element name="Unit" minOccurs="0" maxOccurs="unbounded" type="unitType"/>
</xs:sequence>
<xs:attribute name="SourceID" type="xs:string" use="required"/>
<xs:attribute name="SourceInstitutionID" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="Identifications.Identification.Result.TaxonIdentified.ScientificName.FullScientificNameString" type="xs:string"/>
<xs:element name="Gathering.Country.Name" type="xs:string">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:string" use="required"/>
<xs:attribute name="ISO3166Code" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Gathering.NamedAreas.NamedArea" type="xs:string">
<xs:complexType>
<xs:sequence>
<xs:element name="AreaClass" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="AreaName" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="language" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="AreaCode" >
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="AreaCodeStandard" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="DataSource" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="UnitID" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/DataSet/Units/Unit"/>
<mapping>
<node path="/DataSet/Head/ContentContacts.ContentContact/Name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/ContentContacts/ContentContact/Name"/>
</node>
<node path="/DataSet/Head/ContentContacts.ContentContact/Email">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/ContentContacts/ContentContact/Email"/>
</node>
<node path="/DataSet/Head/TechnicalContacts.TechnicalContact/Name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/TechnicalContacts/TechnicalContact/Name"/>
</node>
<node path="/DataSet/Head/TechnicalContacts.TechnicalContact/Email">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/TechnicalContacts/TechnicalContact/Email"/>
</node>
<node path="/DataSet/Head/Metadata/Description.Representation.Title">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Metadata/Description/Representation/Title"/>
</node>
<node path="/DataSet/Head/Metadata/Description.Representation.Title/@language">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Metadata/Description/Representation/@language"/>
</node>
<node path="/DataSet/Head/Metadata/RevisionData.DateModified">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Metadata/RevisionData/DateModified"/>
</node>
<node path="/DataSet/Units/@SourceID">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/SourceID"/>
</node>
<node path="/DataSet/Units/@SourceInstitutionID">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/SourceInstitutionID"/>
</node>
<node path="/DataSet/Units/Unit/@UnitID">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/UnitID"/>
</node>
<node path="/DataSet/Units/Unit/Identifications.Identification.Result.TaxonIdentified.ScientificName.FullScientificNameString">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.Country.Name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/Country/Name"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.Country.Name/@ISO3166Code">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/Country/ISO3166Code"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.Country.Name/@language">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/Country/Name/@language"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaClass">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaClass/@language">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaClass/@language"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaName">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaName/@language">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName/@language"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaCode">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaCode"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/AreaCode/@AreaCodeStandard">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaCodeStandard"/>
</node>
<node path="/DataSet/Units/Unit/Gathering.NamedAreas.NamedArea/DataSource">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/DataSource"/>
</node>
</mapping>
</outputModel>
<filter>
<like>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
<literal value="Acer"/>
</like>
</filter>
<orderBy>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
</orderBy>
</search>
</request>
Tous les occurences des plantes dont le nom contient Quercus
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="area_name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="unit_id" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/record/@unit_id">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/UnitID"/>
</node>
<node path="/records/record/name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</node>
<node path="/records/record/area_name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
<literal value=" ["/>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaCode"/>
<literal value="]"/>
</node>
</mapping>
</outputModel>
<filter>
<like>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
<literal value="Quercus"/>
</like>
</filter>
<orderBy>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</orderBy>
</search>
</request>
Toutes les occurences de la plante dont le nom correspond exactement à "Acer monspessulanum L."
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:element name="head" type="unitHead"/>
</xs:complexType>
<xs:complexType name="unitHead">
<xs:sequence>
<xs:element name="ContactName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="area_name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="unit_id" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/head/ContactName">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/ContentContacts/ContentContact/Name"/>
</node>
<node path="/records/record/@unit_id">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/UnitID"/>
</node>
<node path="/records/record/name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</node>
<node path="/records/record/area_name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
<literal value=" ["/>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaCode"/>
<literal value="]"/>
</node>
</mapping>
</outputModel>
<filter>
<equals>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
<literal value="Acer monspessulanum L."/>
</equals>
</filter>
<orderBy>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
</orderBy>
</search>
</request>
Tous les plantes présentes dans le Gard
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="area_name" type="xs:string"/>
</xs:sequence>
<xs:attribute name="unit_id" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/record/@unit_id">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/UnitID"/>
</node>
<node path="/records/record/name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</node>
<node path="/records/record/area_name">
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
</node>
</mapping>
</outputModel>
<filter>
<equals>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Gathering/NamedAreas/NamedArea/AreaName"/>
<literal value="Gard"/>
</equals>
</filter>
<orderBy>
<concept id="http://www.tdwg.org/schemas/abcd/2.06/DataSets/DataSet/Units/Unit/Identifications/Identification/Result/TaxonIdentified/ScientificName/FullScientificNameString"/>
</orderBy>
</search>
</request>
Standard DarwinCore 1.4
Tous les occurences des plantes dont le nom contient Quercus
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="county" type="xs:string"/>
</xs:sequence>
<xs:attribute name="catnum" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/record/@catnum">
<concept id="http://rs.tdwg.org/dwc/dwcore/CatalogNumber"/>
</node>
<node path="/records/record/name">
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</node>
<node path="/records/record/county">
<concept id="http://rs.tdwg.org/dwc/dwcore/County"/>
</node>
</mapping>
</outputModel>
<filter>
<like>
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
<literal value="Quercus"/>
</like>
</filter>
<orderBy>
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</orderBy>
</search>
</request>
Toutes les occurences de la plante dont le nom correspond exactement à "Acer monspessulanum L."
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="county" type="xs:string"/>
</xs:sequence>
<xs:attribute name="catnum" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/record/@catnum">
<concept id="http://rs.tdwg.org/dwc/dwcore/CatalogNumber"/>
</node>
<node path="/records/record/name">
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</node>
<node path="/records/record/county">
<concept id="http://rs.tdwg.org/dwc/dwcore/County"/>
</node>
</mapping>
</outputModel>
<filter>
<equals>
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
<literal value="Acer monspessulanum L."/>
</equals>
</filter>
<orderBy>
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</orderBy>
</search>
</request>
Tous les plantes présentes dans le Gard
<?xml version="1.0" encoding="UTF-8" ?>
<request
xmlns="http://rs.tdwg.org/tapir/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://rs.tdwg.org/tapir/1.0
http://rs.tdwg.org/tapir/1.0/schema/tapir.xsd">
<header>
<source sendtime="2005-11-11T12:23:56.023+01:00">
<software name="tapir_client.php" version="1.0"/>
</source>
</header>
<search count="true" start="0" limit="20" envelope="true">
<outputModel>
<structure>
<xs:schema targetNamespace="http://example.net/simple_specimen" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.w3.org/2001/XMLSchema http://www.w3.org/2001/XMLSchema.xsd">
<xs:element name="records">
<xs:complexType>
<xs:sequence>
<xs:element name="record" minOccurs="0" maxOccurs="unbounded" type="unitType">
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="unitType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="county" type="xs:string"/>
</xs:sequence>
<xs:attribute name="catnum" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
</structure>
<indexingElement path="/records/record"/>
<mapping>
<node path="/records/record/@catnum">
<concept id="http://rs.tdwg.org/dwc/dwcore/CatalogNumber"/>
</node>
<node path="/records/record/name">
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</node>
<node path="/records/record/county">
<concept id="http://rs.tdwg.org/dwc/dwcore/County"/>
</node>
</mapping>
</outputModel>
<filter>
<equals>
<concept id="http://rs.tdwg.org/dwc/dwcore/County"/>
<literal value="Gard"/>
</equals>
</filter>
<orderBy>
<concept id="http://rs.tdwg.org/dwc/dwcore/ScientificName"/>
</orderBy>
</search>
</request>
aucun commentaire