Иллюстрированный самоучитель по SQL для начинающих

SQL:2003 и XML

Строки

Тип ROW позволяет поместить целую строку с ценной информацией в одно лишь отдельное поле строки таблицы. Тип ROW создается как часть описания таблицы следующим образом:

CREATE TABLE CONTACTINFO (
Name CHARACTER (30)
Phone ROW (Home CHAR (13), Work CHAR (13))

Теперь воспользуемся следующей XML-схемой для преобразования этого типа:

<xsd:complexType Name='ROW.1'>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind='ROW'
<sqlxml:field name='Home'
mappedType='CHAR_13'/>
<sqlxml:field name='Work'
mappedType='CHAR_13'/>
</sqlxml:sqltype>
<xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element Name='Home' nillable='true'
Type='CHAR_13'/>
<xsd:element Name='Work' nillable='true'
Type='CHAR_13'/>
</xsd:sequence>
</xsd:complexType>

Такое преобразование создает для столбца следующий XML-тип:

<Phone>
<Home>(888)555-llll</Home>
<Work>(888)555-1212</Work>
</Phone>

Массивы

Если вы хотите поместить в одно поле больше одного элемента, вместо типа ROW воспользуйтесь типом Array. Для этого примера в таблице CONTACTINFO объявим столбец Phone как массив, а затем создадим XML-схему, которая будет преобразовывать массив в XML:

Например:

CREATE TABLE CONTACTINFO (
Name CHARACTER (30)
Phone CHARACTER (13) ARRAY [4]
);
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.