Преобразование XSLT (XSLT Transformation) (Конвертация)
Краткая информация
Использует программное обеспечение .NET 3.5 XML для трансформации метаданных элемента ArcGIS или любого файла XML с использованием таблицы стилей XSLT 1.0 и для сохранения результатов в файл XML.
Шаблоны XSLT могут использоваться для выполнения разнообразных изменений метаданных ArcGIS или файлов XML. Некоторые стили XSLT предоставлены в ArcGIS for Desktop. Их можно найти в папке <Место установки ArcGIS>\Metadata\Stylesheets. Эти стили описаны в приведенной ниже таблице.
Следующие стили применяются для создания документов HTML, используемые для отображения информации об элементе на вкладке вкладка Описание. Они извлекают содержимое метаданных объекта и добавляют к нему инструкции по HTML-форматированию. Эти стили импортируют различные шаблоны XSLT из других файлов в папку ArcGIS_Imports; импортированные шаблоны служат для выполнения большинства операций. Если вы заинтересованы в создании пользовательских стилей отображения, дополнительные сведения об этих стилях можно получить в документации, предоставляемой вместе с ArcGIS Metadata Toolkit.
ArcGIS.xsl | Отображает все содержимое метаданных элемента. На него ссылаются все стили метаданных, кроме стиля по умолчанию Описание элемента (Item Description). |
ArcGIS_ItemDescription.xsl | Отображает только краткое описание элемента. На него ссылается стиль метаданных Описание элемента (Item Description). |
Следующие стили, содержащиеся в папке <Место установки ArcGIS>\Metadata\Stylesheets\gpTools, принимают метаданные элемента, обрабатывают их и сохраняют получившийся XML-документ в новый XML-файл. Целью этой операции является фильтрация метаданных элемента до их использования за пределами ArcGIS. Целью также может быть изменение метаданных элемента. В этом случае полученный XML-файл можно сохранить обратно в исходный элемент в качестве метаданных последнего, используя для этого инструмент Импортер метаданных (Metadata Importer). Можно создать модель или скрипт, который сначала будет запускать этот инструмент с использованием стиля для обновления содержимого метаданных и тут же сохранять это содержимое обратно в элементе. Следующие стили предоставлены в ArcGIS for Desktop для выполнения некоторых строго определенных задач по обработке метаданных.
add unique identifier.xslt | Служит для добавления или изменения уникального идентификатора, хранящегося в метаданных элемента. Идентификатор, измененный этим стилем, сохраняется в элементе метаданных Esri PublishedDocID и используется для идентификации документа в каталоге метаданных, таком как Сервис метаданных ArcIMS (ArcIMS Metadata Service) или Geoportal. |
exact copy of.xslt | Создает точную копию метаданных элемента в качестве XML-файла. Например, этот стиль можно использовать для сохранения копии метаданных элемента базы геоданных в локальном файле для последующего изучения. |
generate metadata template.xslt | Копирует содержимое метаданных ArcGIS в новый XML-файл, который может быть импортирован в другие элементы в качестве шаблона метаданных. Синхронизированное содержимое метаданных исключается из шаблона, и удаляются любые пустые элементы. |
remove empty elements.xslt | Удаляет пустые XML-элементы. После использования других стилей для удаления ненужного содержимого метаданных, пустые XML-элементы могут быть оставлены. Пустые XML-элементы могут привести к возникновению проблем, если впоследствии попытаться проверить метаданные элемента. Например, если элемент является необязательным и в то же время пустым, будет часто возникать сообщение об ошибке, так как этот элемент не имеет заданного значения, однако метаданные останутся допустимыми, если этот элемент будет удален. |
remove entries from FGDC lineage.xslt | Удаляет шаги процедуры, добавленные в данные приложения формата FGDC приложением ArcGIS for Desktop 9.3.1. Шаги процедуры были добавлены в данные происхождения формата FGDC при импорте метаданных в элемент, а также при копировании элемента в новое местоположение. Эта информация не добавляется в данные происхождения элемента с помощью текущей версии ArcGIS и не обновляется до формата метаданных ArcGIS вместе с остальными данными происхождения элемента. |
remove FGDC required hints.xslt | Удаляет любые элементы метаданных формата FGDC, содержащие текст REQUIRED. Эти текстовые строки были добавлены в ArcGIS for Desktop 9.3.1, когда были созданы метаданные формата FGDC, для определения элементов метаданных, необходимых для создания допустимых метаданных FGDC CSDGM. Однако эти строки могут привести к возникновению проблем, если впоследствии попытаться проверить метаданные элемента. При наличии текста по умолчанию элемент будет считаться допустимым, так как содержит текст, даже если этот текст не включает какой-либо информации об элементе. Текстовые строки по умолчанию не добавляются текущей версией ArcGIS и не обновляются до формата метаданных ArcGIS вместе с остальным содержимым метаданных элемента. |
remove geoprocessing history.xslt | Удаляет историю геообработки элемента. Хотя все остальные инструменты геообработки метаданных предназначены для сохранения истории геообработки элемента, со временем эта история может разрастись до таких размеров, что метаданные элемента станет трудно обрабатывать в виде XML-документа. В таких случаях может понадобиться удалить историю геообработки элемента. |
remove local storage info.xslt | Удаляет любые имена компьютеров, которые могут быть включены в метаданные элемента. В зависимости от местоположения имени компьютера элемент метаданных, содержащий информацию, может быть удален, или имя компьютера может быть удалено из пути UNC, или значение элемента может быть обновлено для идентификации местоположения в качестве исключенного. |
remove pre94 metadata elements.xslt | Удаляет любые XML-элементы формата ESRI-ISO и формата FGDC CSDGM из метаданных элемента, которые не включены в формат метаданных ArcGIS. |
remove synchronized elements.xslt | Удаляет любые сведения, которые были добавлены в метаданные элемента в процессе синхронизации метаданных ArcGIS. |
remove thumbnail.xslt | Удаляет образец элемента. Хотя все инструменты геообработки метаданных предназначены для сохранения эскиза элемента, в некоторых случаях может понадобиться удалить эскиз элемента. Можно удалить эскиз элемента при редактировании метаданных этого элемента на вкладке Описание (Description). С помощью этого скрипта можно запустить пакетный процесс для удаления эскизов нескольких элементов. |
remove unique identifiers.xslt | Удаляет все уникальные идентификаторы из метаданных элемента, включая все идентификаторы, которые могли быть добавлены ArcGIS, и элементы, предоставленные с помощью редактора метаданных. Идентификаторы никогда не должны копироваться в другой элемент. |
_MPXML2.xsl | Извлекает XML-элементы формата FGDC CSDGM из метаданных элемента, если таковые существуют, и упорядочивает их надлежащим образом. Информация, извлеченная этим стилем, является содержимым, которое отображается под заголовком Метаданные FGDC (только для чтения) (FGDC Metadata (read-only)) на вкладке вкладка Описание. |
Некоторые стили, предоставляемые в ArcGIS for Desktop, используются в инструментах геообработки метаданных для выполнения частей процессов импорта, экспорта и обновления:
- _MPXML2.xsl
- merge imported metadata with existing.xslt
- merge upgraded FGDC with existing.xslt
- prep metadata for export.xslt
- remove empty elements.xslt
- remove FGDC required hints.xslt
- remove synchronized elements.xslt
- remove unique identifiers.xslt
- upgrade ESRI-ISO to ArcGIS94.xslt
Вы можете создать свои собственные шаблоны XSLT для выполнения задач с помощью предоставленных в качестве примеров шаблонов. Например, вы можете записать шаблон, чтобы:
- Обновить адреса или телефонные номера. Создайте модель, которая запускает этот процесс, затем использует инструмент Импортер метаданных (Metadata Importer) для сохранения обновленных метаданных в исходный элемент ArcGIS.
- Удалите информацию, которая не должна быть доступна всем, до экспорта или публикации метаданных. Создайте модель, затем запустить этот процесс до запуска инструментов Экспорт метаданных (Export Metadata) или Издатель метаданных (Metadata Publisher).
- Экспортируйте информацию в HTML-файл, чтобы ее можно было использовать на веб-сайте. Создайте скрипт, периодически запускающий этот процесс.
Шаблоны XSLT, которые изменяют метаданные ArcGIS, не должны удалять информацию в элементах метаданных Esri и Binary, кроме тех случаев, когда выходные XML будут использоваться вне ArcGIS.
Использование
-
Выходной файл, созданный шаблоном XSLT, может быть отформатирован как XML, HTML или текст, например. Имя выходного файла по умолчанию, которое будет предоставлено этим инструментом, будет иметь расширение .xml. Если шаблон XSLT, который вы используете, не производит файл XML, вам необходимо предоставить имя файла с более подходящим расширением файла.
Этот инструмент не может обрабатывать метаданные элемента ArcGIS или автономный файл метаданных XML с помощью шаблона XSL, предоставленного ArcGIS Desktop 9.3.1 и более ранних версий, т.к. они не используют технологию XSLT 1.0. Они используют более позднюю технологию, которая не поддерживается .NET 3.5 Framework. Эти шаблоны XSL также не могут использоваться с помощью редактора метаданных ArcGIS.
-
Параметр XSLT (XSLT Parameter) не может использоваться для передачи строки или имени файла XML в шаблон XSLT, который затем может использовать его для изменения метаданных элемента. Например, шаблон XSLT может принять номер телефона, переданный в виде строки, и обновить все номера телефонов в метаданных. Если файл XML передан с этим параметром, шаблон XSLT может объединить информацию, которую содержит, с исходными метаданными.
Обратитесь к файлу add unique identifier.xslt, предоставленному ArcGIS, за примером того, как передать значение, и merge upgraded FGDC with existing. для примера объединения информации в отдельный файл XML с метаданными элемента ArcGIS.
Если вы хотите создать пользовательский шаблон XSLT для отображения или экспорта метаданных или файлов XML в ArcGIS, обратитесь к документации Microsoft за .NET 3.5 Framework, чтобы получить полный перечень элементов, функций и синтаксиса XSLT и XPath, которые он поддерживает. В дополнение к некоторым стандартным функциям XSLT доступны некоторые функции, относящиеся к .NET.
Если вы хотите использовать пользовательский шаблон и внутри и вне ArcGIS, вы будете иметь больше шансов на успех, если ограничите себя до использования элементов, функций и синтаксиса XSLT 1.0 и XPath 1.0. Приложения, созданные не корпорацией Microsoft, скорее всего не будут поддерживать какие-либо функции XSLT или XPath, относящиеся к .NET.
Шаблоны XSLT, которые используются исключительно с этим инструментом геообработки и редактором метаданных ArcGIS, могут применять некоторые пользовательские функции XSLT, предоставленные ArcGIS для улучшения обработки и отображения метаданных. Чтобы использовать эти функции, шаблон XSLT должен ссылаться на URI пространства имен функции ArcGIS XSLT http://www.esri.com/metadata/. Например, <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:esri="http://www.esri.com/metadata/">.
Функции ArcGIS XSLT должны начинаться с префикса, присвоенного пространству имен функции ArcGIS XSLT. Если пространству имен функции ArcGIS XSLT присваивается префикс esri, как в примере выше, функция GuidGen() будет использоваться следующим образом: <xsl:value-of select="esri:GuidGen()" />.
- GuidGen() — возвращает новое значение глобального уникального идентификатора (GUID), который не включает фигурные скобки ({ и }). Например, GUID может быть включен в метаданные, чтобы уникально идентифицировать документ метаданных или источник, который он описывает. Пример см. в файле add unique identifier.xslt, предоставленном вместе с ArcGIS.
- decodenodeset() — если XML-элемент содержит XHTML или XML, эта функция возвратит набор узлов, который может использоваться вместе с функцией msxsl:node-set для обработки отдельных элементов, которые ранее не учитывались. См. файлы ESRIISO2.xslt и ItemDescription.xslt, предоставленный в ArcGIS в качестве примеров. Например, свойства пространственной привязки элемента автоматически сохраняются в метаданных элемента в качестве извлеченных XML-данных. Резюме и содержимое об ограничении использования, которое может быть помечено в редакторе метаданных во время подготовки к публикации в ArcGIS Online, сохранено в качестве извлеченного XHTML.
- splitcoords() — список пар координат x,y, разделенных запятыми, преобразуется в список, разделенный пробелами. Пример см. в файле upgrade ESRI-ISO to ArcGIS94.xslt, предоставленном вместе с ArcGIS.
- strtoupper() — изменяет входную текстовую строку, в которой будут использоваться только заглавные буквы. Пример см. в файле add unique identifier.xslt, предоставленном вместе с ArcGIS.
- striphtml() — если элемент XML содержит извлеченный код XHTML или XML, эта функция возвратит текст, содержащийся в элементе, удалив предварительно все пометки. То есть весь текст между двумя знаками меньше (<) или больше (>) будет восприниматься как пометка и будет удален. В качестве примеров см. файлы ESRIISO2.xslt, ItemDescription.xslt и prep metadata for export.xslt, предоставленные вместе с ArcGIS. Например, при подготовке к экспорту содержимого резюме и использования элементов ограничения для стандартного формата метаданных любые существующие пометки XHTML, будут удалены из содержимого метаданных.
- strtolower() — изменяет входную строку текста для использования только строчных букв. Примеры см. в файлах auxCountries.xslt, auxLanguages.xslt и auxUCUM.xslt, предоставляемых вместе с ArcGIS.
-
Параметр Источник метаданных (Source Metadata) имеет сложный тип данных. Если вы используете этот инструмент в модели, создайте переменную для параметра Источник метаданных (Source Metadata) в ModelBuilde. Для этого щелкните правой кнопкой инструмент и выберите Создать переменную (Make Variable) > Из параметра (From Parameter) > Источник метаданных (Source Metadata).
-
Если элемент ArcGIS имеет метаданные, которые были созданы в ArcGIS for Desktop 9.3.1 или более ранних версиях с помощью редактора метаданных FGDC или в текущей версии ArcGIS for Desktop с помощью надстройки редактора метаданных FGDC и метаданные элемента были обновлены до метаданных ArcGIS, метаданные ArcGIS все еще будут включать исходные элементы XML метаданных FGDC. Метаданные также будут включать другие элементы метаданных ArcGIS.
Можно экспортировать элементы исходных метаданных FGDC с помощью этого инструмента и файла _MPXML2.xsl, предоставленного вместе с ArcGIS. В приведенном выше примере этот файл будет только экспортировать исходное содержимое метаданных формата FGDC. Информация, отображаемая под заголовком Метаданные FGDC (только для чтения) (FGDC Metadata (read-only)) на вкладке вкладка Описание. Элементы FGDC будут расположены в корректном порядке в выходном файле XML.
Экспортированный файл может быть проверен с помощью Схемы FGDC XML или DTD, или утилиты метаданных USGS, которая известна как mp. Переводчик метаданных USGS MP (USGS MP Metadata Translator) выполняет эту операцию внутренне перед обработкой содержимого метаданных элемента формата FGDC.
-
Метаданные, которые опубликованы на внутреннем сайте в формате HTML, будут проиндексированы с помощью такой системы поиска в Интернете, как Google, если на сайте правильно раскрыто его содержание.
Синтаксис
Параметр | Объяснение | Тип данных |
source |
Элемент, метаданные которого будут конвертированы, или отдельный файл XML, который будет конвертирован. | Data Element; Layer |
xslt |
Файл стиля XSLT 1.0, совместимый с W3C, который определяет выполняемую трансформацию. Вместе с ArcGIS предоставляется несколько стилей, доступных в папке <Место установки ArcGIS>\Metadata\Stylesheets. | File |
output |
Создаваемый файл, содержащий конвертированные метаданные. Тип файла, созданого в зависимости от выходного метода, указанного в шаблоне XSLT. | File |
xsltparam (дополнительно) |
Файл XML или строка, которая будет перенесена в шаблон XSLT. Чтобы вызвать этот параметр в стиле XSLT, добавьте <xsl:param name="gpparam" /> в верхнюю часть стиля XSLT после элемента xsl:output, но до элемента first xsl:template. Пример см. в файле add unique identifier.xslt. | File; String |
Пример кода
Использует стиль XSLT ArcGIS.xsl, предоставленный вместе с ArcGIS, для экспорта метаданных в файл HTML, чтобы использовать его на веб-сайте.
import arcpy
from arcpy import env
env.workspace = "C:/data"
#set local variables
dir = arcpy.GetInstallInfo("desktop")["InstallDir"]
xslt = dir + "Metadata/Stylesheets/ArcGIS.xsl"
arcpy.XSLTransform_conversion("vegetation", xslt, "vegetation.html", "#")