Modification des métadonnées de plusieurs éléments ArcGIS

Une fois les métadonnées créées, certaines des informations qu'elles contiennent changeront inévitablement au fil du temps. Si les informations sont spécifiques à un élément ArcGIS, vous pouvez mettre à jour ses métadonnées pour modifier les informations. Toutefois, si les informations qui ne sont plus pertinentes sont comprises dans les métadonnées d'un grand nombre d'éléments ArcGIS, le processus de modification manuelle des métadonnées pour tous les éléments concernés peut s'avérer fastidieux.

La meilleure approche, dans ce cas, consiste à créer une feuille de style XSLT qui peut effectuer les modifications pour vous. Utilisez un modèle qui modifie les métadonnées avec l'outil Transformation XSLT, puis importe à nouveau les informations modifiées dans l'élément ArcGIS, à l'aide de l'outil Importateur de métadonnées, comme illustré ci-dessous.

Modèle de géotraitement pour la mise à jour de métadonnées avec une feuille de style XSLT.

Création d'une feuille de style XSLT pour mettre à jour des métadonnées

Il existe beaucoup de ressources disponibles sur Internet qui pourront vous aider à créer des feuilles de style XSLT. Toutefois, les exemples suivants vous aideront à démarrer. Ils illustrent la manière de modifier les informations de contact d'une organisation.

Supposons que les métadonnées d'origine comprennent des informations de contact pour les métadonnées, comme indiqué ci-dessous, où

Extrait d'un document de métadonnées XML où les informations de contact d'une organisation doivent être mises à jour.

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <mdContact>
    <rpIndName>Reception</rpIndName>
    <rpOrgName>Esri Learning Center</rpOrgName>
    <rpCntInfo>
      <cntAddress>
        <delPoint>380 New York St.</delPoint>
        <city>Redlands</city>
        <adminArea>CA</adminArea>
        <postCode>92373</postCode>
        <country>US</country>
        <eMailAdd>info@esri.com</eMailAdd>
      </cntAddress>
      <cntPhone>
        <voiceNum>909-793-2853</voiceNum>
        <faxNum>909-793-4801</faxNum>
      </cntPhone>
    </rpCntInfo>
    <role>
      <RoleCd value="010"/>
    </role>
  </mdContact>
  ...
</metadata>

Certaines de ces informations de contact doivent être modifiées comme suit :

Le reste des informations de contact restera inchangé.

La feuille de style XSLT suivante effectuera ces modifications. L'élément de métadonnées de nom du contact sera supprimé. L'adresse entière, ainsi que tous les éléments de métadonnées associés, est mise à jour immédiatement. Le numéro de téléphone est mis à jour séparément du reste des informations téléphoniques. Pour ajouter la page Web et les heures de disponibilité, toutes les autres informations de contact existantes doivent être copiées avant que les nouvelles informations soient ajoutées, pour prévenir tout risque de perte de données.

Feuille de style XSLT qui modifie les informations de contact pour une organisation et copie tout autre contenu de métadonnées.

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" omit-xml-declaration="no" />

  <!-- process the metadata using the templates below -->
  <xsl:template match="/">
    <xsl:apply-templates select="node() | @*" />
  </xsl:template>

  <!-- copy all metadata conent -->
  <xsl:template match="node() | @*" priority="0">
    <xsl:copy>
      <xsl:apply-templates select="node() | @*" />
    </xsl:copy>
  </xsl:template>

  <!-- all metadata XSLT stylesheets used to update metadata should be identical to this example up to this point -->
  <!-- add the templates you'll use to update the metadata below -->

  <!-- remove the individual name from the contact information for the organization name Esri Learning Center -->
  <xsl:template match="rpIndName[../rpOrgName = 'Esri Learning Center']" priority="1" >
  </xsl:template>
  
  <!-- edit the address for any contact with the organization name Esri Learning Center -->
  <xsl:variable name="newAddress" >
    <cntAddress>
      <delPoint>380 New York St.</delPoint>
      <city>Redlands</city>
      <adminArea>CA</adminArea>
      <postCode>92373-8100</postCode>
      <country>US</country>
      <eMailAdd>LearnGIS@esri.com</eMailAdd>
    </cntAddress>
  </xsl:variable> 
  <xsl:template match="cntAddress[../../rpOrgName = 'Esri Learning Center']" priority="1" >
    <xsl:copy-of select="$newAddress" />
  </xsl:template>

  <!-- edit all contacts with the organization name Esri Learning Center to have a new phone number -->
  <xsl:variable name="newPhone">888-377-4575 x.1-3204</xsl:variable> 
  <xsl:template match="voiceNum[../../../rpOrgName = 'Esri Learning Center']" priority="1" >
    <voiceNum><xsl:value-of select="$newPhone" /></voiceNum>
  </xsl:template>
  
  <!-- add hours of availability for the organization name Esri Learning Center -->
  <xsl:template match="rpCntInfo[../rpOrgName = 'Esri Learning Center']" priority="1" >
    <xsl:copy>
      <xsl:apply-templates select="node() | @*" />
      <cntOnlineRes>
        <linkage>http://www.esri.com/training</linkage>
      </cntOnlineRes>
      <cntHours>8:00am to 5:00pm Pacific Time</cntHours>
    </xsl:copy>
  </xsl:template>
  
</xsl:stylesheet>

Lorsque cette feuille de style XSLT est utilisée pour modifier les métadonnées exemple mentionnées plus haut à l'aide de l'outil Transformation XSLT, le fichier XML ci-dessous est créé en sortie. Utilisez l'outil Importateur de métadonnées pour enregistrer ces modifications dans l'élément ArcGIS d'origine.

Extrait des métadonnées mises à jour produit par la feuille de style XSLT précitée.

<?xml version="1.0" encoding="UTF-8"?>
<metadata>
  <mdContact>
    <rpOrgName>Esri Learning Center</rpOrgName>
    <rpCntInfo>
      <cntAddress>
        <delPoint>380 New York St.</delPoint>
        <city>Redlands</city>
        <adminArea>CA</adminArea>
        <postCode>92373-8100</postCode>
        <country>US</country>
        <eMailAdd>LearnGIS@esri.com</eMailAdd>
      </cntAddress>
      <cntPhone>
        <voiceNum>888-377-4575 x.1-3204</voiceNum>
        <faxNum>909-793-4801</faxNum>
      </cntPhone>
      <cntOnlineRes>
        <linkage>http://www.esri.com/training</linkage>
      </cntOnlineRes>
      <cntHours>8:00am to 5:00pm Pacific Time</cntHours>
    </rpCntInfo>
    <role>
      <RoleCd value="010"/>
    </role>
  </mdContact>
  ...
</metadata>

Plusieurs feuilles de style XSLT sont fournies avec ArcGIS Desktop pour prendre en charge les modèles de géotraitement de métadonnées de la boîte à outils Conversion, dans le dossier<ArcGIS Desktop Install Location>\Metadata\Stylesheets\gpTools. Utilisez les comme exemples.

Lorsque vous créerez vos propres feuilles de style, ils vous aideront répondre aux questions relatives au format XML que vous pourrez vous poser. Une DTD XML qui décrit le format XML des métadonnées ArcGIS est fournie dans le dossier <ArcGIS Desktop Install Location>\Metadata\Translator\Rules.

Rubriques connexes


7/10/2012