Столбцы XML в базе геоданных, хранящейся в PostgreSQL

XML - это открытый стандарт для определения элементов данных в документах. Для хранения данных XML в базе данных PostgreSQL можно использовать столбцы ArcSDE XML или PostgreSQL XML.

Пользовательские XML документы можно хранить в любом типе XML. Параметр XML_COLUMN_STORAGE sde_dbtune управляет типом использующегося XML. По умолчанию, используется тип данных PostgreSQL XML.

XML-столбцы в ArcGIS for Desktop

В базы геоданных XML-столбцы поддерживаются не полностью. Поэтому верно следующее:

Столбцы, содержащие документы XML, в СУБД PostgreSQL

Существует два различных типа столбцов XML, которые вы можете использовать: ArcSDE XML или собственный XML тип PostgreSQL. Тип, который используется в создаваемом вами наборе данных, задается параметром XML_STORAGE в таблице sde_dbtune.

Если вы используете собственный PostgreSQL тип XML, дополнительные системные таблицы в базе геоданных не требуются, они отслеживаются с помощью системных таблиц PostgreSQL.

В ArcSDE XML, для управления столбцами XML используются три системные таблицы базы геоданных: sde_xml_columns , sde_xml_index_tags и sde_xml_indexes. Эти таблицы принадлежат администратору ArcSDE. ArcSDE создает также для каждого столбца XML две дополнительные таблицы, используемые для хранения и индексирования XML-документов: sde_xml_doc<column_id> и sde_xml_idx_<column_id>. Эти таблицы принадлежат пользователю - владельцу бизнес-таблицы, содержащей документ XML.

ArcGIS создает следующие таблицы, использующиеся для хранения и индексирования документов XML.

ВниманиеВнимание:

Не изменяйте ни одну из указанных таблиц с использованием SQL.

sde_xml_columns

При добавлении столбца в бизнес-таблицу для хранения XML документов, в таблице столбцов XML появляется новая строка. Эта таблица есть в каждой базе геоданных ArcSDE.

Имя поля

Тип поля

Описание

Null?

column_id

целое

Идентификатор столбца XML и первичный ключ таблицы

ArcSDE присваивает его в момент создания столбца XML.

NOT NULL

registration_id

целое

Идентификатор бизнес-таблицы, содержащей столбец XML и внешний ключ системной таблицы table_registry

NOT NULL

column_name

varchar(32)

Имя столбца, являющегося столбцом XML в бизнес-таблице

NOT NULL

index_id

целое

Идентификатор индекса XPath, связанного со столбцом XML (если есть) и внешним ключом таблицы sde_xml_indexes

minimum_id

целое

Значение начального числа, использующегося в столбце XML бизнес-таблицы для идентификации отдельных XML документов.

config_keyword

varchar(32)

Ключевое слово конфигурации DBTUNE, параметры которого определяют, как XML документ, индексные таблицы XML XPath и текстовые индексы, созданные в этих таблицах, задаются в базе данных.

xflags

целое

Значение, показывающее, хранятся ли документы в таблицах документов XML в сжатом или в несжатом виде

По умолчанию, документы хранятся в сжатом виде, поскольку это повышает производительность.

NOT NULL

sde_xml_indexes

Эта таблица есть в каждой базе данных ArcSDE. Она содержит строку для каждого столбца, имеющего индекс XPath.

Имя поля

Тип поля

Описание

Null?

index_id

целое

Идентификатор индекса XPath и первичный ключ таблицы

NOT NULL

index_name

varchar(32)

Имя индекса XPath

NOT NULL

владелец

varchar(32)

Пользователь базы данных, которому принадлежит столбец XML

NOT NULL

index_type

целое

Значение, указывающее тип индекса XPath

Тип индекса SE_XML_INDEX_DEFINITION обозначается цифрой 2, тип SE_XML_INDEX_TEMPLATE - цифрой 1.

NOT NULL

описание

varchar(64)

Текст, определяющий индекс XPath

Если для создания индекса используется файл определения индекса, описание индекса можно ввести вверху этого файла.

sde_xml_index_tags

Столбец, содержащий XML документ может дополнительно иметь индекс XPath, который позволяет выполнять поиск по содержимому определенного элемента XML или по атрибуту в каждом документе. В эту таблицу записывается определение каждого элемента, который включается, или исключается, из каждого индекса XPath.

Эта таблица есть в каждой базе данных ArcSDE. Она содержит строку для каждого XPath, связанного с индексом XPath столбца.

Имя поля

Тип поля

Описание

Null?

index_id

целое

Идентификатор индекса XPath, связанного со столбцом XML (если есть) и внешним ключом таблицы sde_xml_indexes

NOT NULL

tag_id

целое

Идентификатор XPath или тег

NOT NULL

tag_name

varchar(1024)

Абсолютный XPath, идентифицирующий элемент XML или атрибут, который может находится в документе XML

Например, /metadata/mdDateSt идентифицирует элемент XML, а /metadata/dataIdInfo/tpCat/TopicCatCd/@value определяет XML атрибут. Пути XPath не могут использовать знак звездочки (*) для ссылки на группу XML элементов или атрибутов - каждый элемент или атрибут должен указываться точно, в соответствии с XPaths, заданным в этой таблице. Имена элементов в документе XML не могут содержать знак звездочки (*).

NOT NULL

Тип данных (data_type)

целое

Значение, определяющее тип индексации элемента XML или атрибута: 1 - содержание тега будет индексировано как текст; 2 - содержание тега будет индексировано как число; 3 - содержание тега будет индексировано как строка переменной длины (varchar).

NOT NULL

tag_alias

целое

Число, использующееся для идентификации XPath

Например, протокол коммуникации Z39.50 использует числовые коды для ссылок на содержимое, в котором может выполняться поиск.

описание

varchar(64)

Текст, определяющий содержимое элемента или атрибута XML

is_excluded

целое

Значение, показывающее, входит или нет элемент XML в индекс XPath; 0 = входит в XPath, 1 = не входит в XPath.

NOT NULL

sde_xml_doc<column_id>

В таблице sde_xml_doc<column_id> хранится XML документ и полнотекстовый индекс его содержимого. В базе данных ArcSDE находится одна из этих таблиц для каждого столбца, содержащего документ XML. Число в имени таблицы является идентификатором столбца. Эта таблица содержит одну строку для каждого XML-документа, хранящегося в столбце.

Имя поля

Тип поля

Описание

Null?

sde_xml_id

целое

Идентификатор XML-документа, хранящегося в столбце XML, и первичный ключ для таблицы.

NOT NULL

doc_property

целое

Значение, показывающее наличие конфликтов при добавлении содержимого документа XML в индекс XPath; 1 = найден конфликт; например, предполагается, что элемент должен индексироваться в числовом виде, но элемент документа содержит строку.

xml_doc

bytea

XML-документ

NOT NULL

xml_doc_val

bytea

Cодержание XML-документа, включая все XML-теги и другую разметку, полностью удалено

Текстовой индекс этого столбца создается по умолчанию; этот индекс используется для ответа на полнотекстовые запросы.

sde_xml_idx<column_id>

Для столбцов, имеющих текстовой индекс XPath, создается таблица sde_xml_idx<column_id>. В этой таблице хранится числовое или текстовое содержание каждого проиндексированного XPath.

Идентификационный номер в имени таблицы является внутренним регистрационным номером столбца, содержащего документ XML.

Имя поля

Тип поля

Описание

Null?

xml_key_column

целое

Идентификатор индексированного значения и первичный ключ таблицы

NOT NULL

sde_xml_id

целое

Идентификатор XML-документа, который содержит индексированное значение

NOT NULL

tag_id

целое

Идентификатор тега, связанного с индексом XPath столбца XML, который определяет, где именно в документе находится значение

NOT NULL

double_tag

двойная точность

Индексированное значение, используется, когда в определении индекса XPath тег задан в виде числа с двойной точностью

string_tag

varchar(256)

Индексированное значение, используется, когда в определении индекса XPath тег задан в виде строки переменной длины (varchar)

text_tag

текст

Индексированное значение, используется, когда в определении индекса XPath тег задан в виде STRING

Ниже показана диаграмма таблицы со столбцом, содержащим XML документ, и системными таблицами, использующимися для хранения информации о нем. Пунктирными линиями показаны неявные отношения; сплошной линией обозначены явно заданные отношения между таблицами.

Назначает бизнес-таблицу и связанные системные таблицы для отслеживания столбца XML в PostgreSQL

Столбцы, содержащие документ XML в XML-документе рабочей области

Экспортировать таблицу, содержащую столбец с документом XML, в XML-документ рабочей области нельзя. Вы можете экспортировать ее в документ набора записей XML.

Связанные темы

9/11/2013