Editar metadatos para muchos elementos de ArcGIS
Una vez creados los metadatos, inevitablemente, parte de la información que contienen cambiará con el tiempo. Si la información es específica de un elemento de ArcGIS, puede editar sus metadatos para cambiar la información. Sin embargo, si la información que cambió está incluida en los metadatos para muchos elementos de ArcGIS, el proceso de editar manualmente los metadatos para todos los elementos afectados es muy tedioso.
El mejor enfoque para controlar esta situación es crear una hoja de estilos XSLT que pueda realizar las ediciones por usted. Utilice un modelo que edite los metadatos con la herramienta Transformación XSLT y, a continuación, importe de nuevo la información revisada en el elemento de ArcGIS utilizando la herramienta Importador de metadatos, tal y como se muestra a continuación.
Crear una hoja de estilos XSLT para actualizar metadatos
Hay muchos recursos disponibles en Internet que pueden ayudarle a obtener información sobre cómo crear hojas de estilos XSLT. No obstante, los ejemplos siguientes le ayudarán a empezar. Muestran cómo cambiar la información de contacto de una organización.
Suponga que los metadatos originales incluyeran un contacto de metadatos como se muestra a continuación, donde
- El nombre individual es Recepción
- El nombre de la organización es Esri Learning Center
- La dirección es 380 New York St.
- La ciudad es Redlands
- El estado es California, CA
- El código postal es 92373
- El país es Estados Unidos de América, US
- La dirección de correo electrónico es info@esri.com
- El número de teléfono es 909-793-2853
- El número de fax es 909-793-4801
- La función especificada para este contacto es editor, 010
Un extracto de un documento XML de metadatos donde se debe actualizar la información de contacto de una organización.
<?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>
Parte de esta información de contacto se debe editar de la manera siguiente:
- Quite el nombre individual de la información de contacto.
- Cambie el código postal a 92373-8100.
- Cambie la dirección de correo electrónico a LearnGIS@esri.com.
- Cambie el número de teléfono a 888-377-4575 x.1-3204.
- Agregue la ubicación de una página Web donde puede encontrar información en Internet, http://www.esri.com/training.
- Agregue información sobre cuándo ponerse en contacto con la organización, 8:00 a.m. a 5:00 p.m., hora del Pacífico.
El resto de la información de contacto se quedará igual.
La siguiente hoja de estilos XSLT realizará estas ediciones. El elemento de metadatos del nombre individual se eliminará. La dirección completa, con todos sus elementos de metadatos individuales, se actualiza de una vez. El número de teléfono se actualiza por separado del resto de la información telefónica. Para agregar la página Web y las horas de disponibilidad, se debe copiar toda la información de contacto existente para que no se pierda antes de agregar la nueva información.
Una hoja de estilos XSLT que edita información de contacto para una organización y copia el resto del contenido de metadatos.
<?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>
Cuando se utiliza este XSLT para editar los metadatos de ejemplo antes mostrados utilizando la herramienta Transformación XSLT, se creará el archivo XML de salida siguiente. Utilice la herramienta Importador de metadatos para guardar estos cambios con el elemento de ArcGIS original.
Un extracto de los metadatos actualizados producidos por la hoja de estilos XSLT anterior.
<?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>
Con ArcGIS for Desktop se proporcionan varias hojas de estilos XSLT para admitir los modelos de geoprocesamiento de metadatos en la caja de herramientas Conversión, en la carpeta <Ubicación de instalación de ArcGIS>\Metadata\Stylesheets\gpTools. Utilícelas como ejemplos.
Al crear hojas de estilos propias, es útil entender el formato XML con el que se está trabajando. En la carpeta <Ubicación de instalación de ArcGIS>\Metadata\Translator\Rules se proporciona un DTD XML que describe el formato XML de metadatos de ArcGIS.