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.
![Примечание Примечание](rsrc/note.png)
Если до этого вы использовали 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-документа.
![Внимание Внимание](rsrc/caution.png)
Не изменяйте ни одну из указанных таблиц с использованием 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 и системные таблицы, используемые для слежения за ней. Пунктирные линии указывают на неявные отношения; сплошные линии указывают на явные отношения между таблицами.
![]() |
![Примечание Примечание](rsrc/note.png)
По умолчанию XML-документы хранятся в XML-столбце базы геоданных в DB2, текстовые индексы, связанные со столбцом не обновляются автоматически для добавления текста из новых документов. До обновления текстовых индексов XML-документы, которые не были проиндексированы, не могут быть найдены с использованием поиска.
ArcSDE не предоставляет утилиты, которые могут использоваться для ручного обновления текстовых индексов XML-столбцов ArcSDE.
XML-столбцы в XML-документе
Вы не можете выполнить экспорт таблицы, содержащей XML-столбец, в рабочую область XML-документа. Вы можете выполнить его экспорт в документ набора записей XML, но в документе нет ничего, отличающего столбец как XML-столбец.