XML-столбцы в базе геоданных в DB2
XML – это открытый формат определения элементов данных в документах. Для хранения XML-данных в базе данных IBM DB2 вы можете использовать XML-столбцы ArcSDE или собственные типы XML-данных IBM DB2 (PureXML).
Вы можете хранить пользовательские XML-документы в любом типе XML. Используемый тип XML определяется параметром XML_COLUMN_STORAGE DBTUNE. По умолчанию данный параметр равен DB_XML. Поэтому, по умолчанию используется тип данных PureXML.
Для использования ArcSDE данных типа XML вам необходимо установить DB2 Text Search Extender.
Если до этого вы использовали Net Search Extender, то вам необходимо перейти на Text Search Extender. Подробную информацию см. в информационном центре DB2 (http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.admin.ts.doc/doc/c0053115.html).
XML-столбцы в ArcGIS for Desktop
В базы геоданных XML-столбцы поддерживаются не полностью. Поэтому верно следующее:
- Вы не можете выполнять просмотр содержимого XML-столбца таблицы в ArcCatalog. Столбец будет пустым или будет содержать нечитаемые символы.
- В закладке Поля (Fields) диалогового окна Свойства (Properties) для XML-столбца тип данных не отображается.
- Вы не можете копировать и вставить таблицу, содержащую XML-столбец из одной базы геоданных в другую.
- Если вы импортируете или экспортируете таблицу с использованием инструментов геообработки, то XML-столбец необходимо исключить.
- Вы не можете зарегистрировать таблицу с XML-столбцом как версионную с использованием ArcCatalog.
- Если вы откроете таблицу, содержащую XML-столбец в ArcMap, то он будет пустым.
- Для редактирования таблицы с XML-столбцом в ArcMap вы можете использовать неверсионный сеанс редактирования. Однако вы не можете редактировать сам XML-столбец, только другие поля таблицы.
XML-столбцы в СУБД DB2
Если вы используете исходную DB2 PureXML, то в ней нет дополнительных системных таблиц базы геоданных для отслеживания; отслеживание производится в системных таблицах DB2. Дополнительную информацию о DB2 PureXML см. в документации IBM DB2.
Вы можете использовать два различных типа XML-столбцов: ArcSDE XML или DB2 PureXML. Столбец, который вы используете в наборе данных, созданном вами в базе геоданных, управляется параметром XML_STORAGE таблицы DBTUNE.
Для ArcSDE XML существует три системные таблицы базы геоданных ArcSDE, используемые для управления XML-столбцами: SDE_XML_COLUMNS, SDE_XML_INDEX_TAGS и SDE_XML_INDEXES. Данные таблицы принадлежат администратору базы геоданных. Существует еще две дополнительные таблицы для каждого XML-столбца, используемые для хранения и индексирования XML-документов: SDE_XML_DOC<COLUMN_ID> и SDE_XML_IDX_<COLUMN_ID>. Данные таблицы принадлежат пользователю, который является владельцем бизнес-таблицы, содержащей XML-столбец.
Следующие таблицы создаются при использовании ArcSDE XML. Эти таблицы используются для хранения и индексирования XML-документа.
Не изменяйте ни одну из указанных таблиц с использованием SQL.
SDE_XML_COLUMNS
При добавлении XML-столбца ArcSDE в бизнес-таблицу в таблицу SDE_XML_COLUMNS добавляется строка. Данная таблица используется один раз для каждой базы данных ArcSDE.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
COLUMN_ID |
INTEGER |
Идентификатор XML-столбца и первичного ключа для таблицы Данное значение присваивается ArcSDE при каждом создании XML-столбца ArcSDE. |
NOT NULL |
REGISTRATION_ID |
INTEGER |
Идентификатор бизнес-таблицы, содержащий XML-столбец ArcSDE и внешний ключ для системной таблицы TABLE_REGISTRY. |
NOT NULL |
COLUMN_NAME |
VARCHAR(32) |
Имя XML-столбца ArcSDE в бизнес-таблице. |
NOT NULL |
INDEX_ID |
INTEGER |
Идентификатор индекса XPath, связанный с XML-столбцом ArcSDE (если имеется), и внешний ключ для таблицы SDE_XML_INDEXES. |
|
MINIMUM_ID |
INTEGER |
Значение исходного номера, используемое в XML-столбце ArcSDE бизнес-таблицы, для идентификации отдельных XML-документов. |
|
CONFIG_KEYWORD |
VARCHAR(32) |
Ключевое слово конфигурации DBTUNE, для которого параметры определяет способ создания XML-документа, таблиц индекса XML XPath, а также текстовых индексов таблиц в базе данных Дополнительную информацию о ключевых словах DBTUNE и их параметрах см. в разделах Что представляют собой ключевые слова конфигурации DBTUNE и их параметры? и Параметры конфигурации DBTUNE для DB2. |
|
XFLAGS |
INTEGER |
Значение, указывающее на то, как сохранены исходные документы в таблице XML-документе: в сжатом или несжатом виде По умолчанию документы сжимаются; сжатые документы обеспечивают лучшую производительность. |
SDE_XML_INDEXES
Данная таблица используется один раз для каждой базы геоданных. Она содержит одну строку для каждого XML-столбца ArcSDE, имеющего индекс XPath.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
INDEX_ID |
INTEGER |
Идентификатор индекса XPath и первичного ключа для таблицы |
NOT NULL |
INDEX_NAME |
VARCHAR(32) |
Имя индекса XPath |
NOT NULL |
OWNER |
VARCHAR(32) |
Пользователь базы данных, владеющий XML-столбцом ArcSDE |
NOT NULL |
INDEX_TYPE |
INTEGER |
Значение, указывающее на тип индекса XPath Для ArcSDE версии 9.1 и позднее значение равно 2 для типа индекса SE_XML_INDEX_DEFINITION и 1 для типа индекса SE_XML_INDEX_TEMPLATE. |
NOT NULL |
DESCRIPTION |
VARCHAR(64) |
Текст, идентифицирующий индекс XPath Если для создания индекса использовался файл определения индекса, то описание индекса может быть указано в верхней части файла. |
SDE_XML_INDEX_TAGS
XML-столбец ArcSDE может иметь дополнительный индекс XPath, который позволяет вам выполнять поиск содержимого отдельно XML-элемента или атрибута в каждом документе. Определение элементов и атрибутов, которые включены в каждый индекс XPath или исключены из него приведены в данной таблице.
Данная таблица используется один раз для каждой базы геоданных. Она содержит одну строку для каждого XPath, связанного с индексом XPath XML-столбца ArcSDE.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
INDEX_ID |
INTEGER |
Идентификатор индекса XPath, связанный с XML-столбцом ArcSDE (если имеется), и внешний ключ для таблицы SDE_XML_INDEXES. |
NOT NULL |
TAG_ID |
INTEGER |
Идентификатор XPath или тега |
NOT NULL |
TAG_NAME |
VARCHAR(1024) |
Абсолютное значение XPath, определяющее XML-элемент или атрибут, содержащийся в XML-документе Например, /metadata/mdDateSt определяют XML-элемент, а /metadata/dataIdInfo/tpCat/TopicCatCd/@value определяют XML-атрибут. Данные XPath не должны содержать символа звездочка (*) для ссылки на группу XML-элементов или атрибутов — каждый элемент определяется точно с использованием XPath, указанных в данной таблице. Элементы не могут иметь имя * в корректном XML-документе. |
NOT NULL |
DATA_TYPE |
INTEGER |
Значение, указывающее на то, имеет ли XML-элемент или атрибут индекс числа, varchar или текста Значение 1 указывает на то, что содержимое тега проиндексировано как тест; значение 2 указывает на то, что содержимое тега проиндексировано как число; значение 3 указывает на то, что содержимое тега проиндексировано как varchar. |
NOT NULL |
TAG_ALIAS |
INTEGER |
Число, которое может быть использовано для идентификации XPath Например, протокол связи Z39.50 использует числовые коды для ссылки на содержимое, по которому может выполнятся поиск. |
|
DESCRIPTION |
VARCHAR(64) |
Текст, определяющий содержимое, которое должно содержаться в XML-элементе или атрибуте |
|
IS_EXCLUDED |
INTEGER |
Значение, указывающее на то, включен ли XML-элемент в индекс XPath или исключен из него
|
NOT NULL |
SDE_XML_DOC<COLUMN_ID>
В таблице SDE_XML_DOC<COLUMN_ID> хранится XML-документ и поддерживается полнотекстовый индекс содержимого XML-документа. База геоданных содержит одну из этих таблиц для каждого XML-столбца ArcSDE. Число в имени таблицы является идентификатором XML-столбца ArcSDE. Данная таблица содержит одну строку для каждого XML-документа, сохраненного в XML-столбце ArcSDE.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
SDE_XML_ID |
INTEGER |
Идентификатор XML-документа, хранящегося в XML-столбце ArcSDE и первичного ключа для таблицы |
NOT NULL |
DOC_PROPERTY |
INTEGER |
Значение, указывающее на наличие конфликтов при добавлении содержимого XML-документа в индекс XPath 1 = найден конфликт, например, когда предполагалось, что элемент имеет цифровое индексирование, а документ содержит строку в данном элементе. Значение NULL = при индексации документа проблемы не обнаружены. |
|
XML_DOC |
BLOB |
XML-документ |
NOT NULL |
XML_DOC_VAL |
BLOB |
Содержимое полного XML-документа со всеми XML-тегами и другие пометки удалены По умолчанию на данном столбце построен текстовый индекс; данный индекс используется для ответа на полнотекстовые запросы. |
SDE_XML_IDX<COLUMN_ID>
Таблица SDE_XML_IDX<COLUMN_ID> создается для XML-столбцов ArcSDE и имеет текстовый индекс XPath. В данной таблице хранится текстовое или числовое содержимое для каждого индексированного XPath.
ID в имени таблицы является внутренним регистрационным номером XML-столбца ArcSDE.
Имя поля |
Тип поля |
Описание |
Null? |
---|---|---|---|
XML_KEY_COLUMN |
INTEGER |
Идентификатор для индексированного значения и первичного ключа для таблицы |
NOT NULL |
SDE_XML_ID |
INTEGER |
Идентификатор XML-документа, содержащего индексированное значение |
NOT NULL |
TAG_ID |
INTEGER |
Идентификатор для тега, связанного с индексом XPath XML-столбца ArcSDE, который определяет место хранения значения в документе. |
NOT NULL |
DOUBLE_TAG |
FLOAT |
Индексированное значение, когда тег определяется как DOUBLE в определении индекса XPath |
|
STRING_TAG |
VARCHAR2(256) |
Индексированное значение, когда тег определяется как VARCHAR в определении индекса XPath |
|
TEXT_TAG |
CLOB |
Индексированное значение, когда тег определяется как STRING в определении индекса XPath |
Далее приведена схема таблицы с XML-столбцом ArcSDE и системные таблицы, используемые для слежения за ней. Пунктирные линии указывают на неявные отношения; сплошные линии указывают на явные отношения между таблицами.
По умолчанию XML-документы хранятся в XML-столбце базы геоданных в DB2, текстовые индексы, связанные со столбцом не обновляются автоматически для добавления текста из новых документов. До обновления текстовых индексов XML-документы, которые не были проиндексированы, не могут быть найдены с использованием поиска.
ArcSDE не предоставляет утилиты, которые могут использоваться для ручного обновления текстовых индексов XML-столбцов ArcSDE.
XML-столбцы в XML-документе
Вы не можете выполнить экспорт таблицы, содержащей XML-столбец, в рабочую область XML-документа. Вы можете выполнить его экспорт в документ набора записей XML, но в документе нет ничего, отличающего столбец как XML-столбец.