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

SQL:2003 и XML

Домены

Для того чтобы преобразовать SQL-домен в XML, вначале этот домен необходимо создать. Для создания домена воспользуемся оператором CREATE DOMAIN:

CREATE DOMAIN WestCoast AS CHAR (2)
CHECK (State IN ('CA\ 'OR1, ' WA', ' AK '));

Теперь создадим таблицу, которая использует этот домен:

CREATE TABLE WestRegion (
ClientName Character (20) NOT NULL,
State WestCoast NOT NULL
);

Ниже приведена XML-схема преобразования домена в XML.

<xsd:simpleType>
Name='DOMAIN.SalesWestCoast'>
<xsd:annotation> <xsd:appinfo>
<sqlxml:sqltype kind='DOMAIN'
schemaName='Sales'
typeName='WestCoast'
mappedType='CHAR_2'
finals'true'/>
<xsd:appinfo>
</xsd:annotation>
<xsd:restriction base='CHAR_2'/>
</xsd:simpleType>

После применения этого преобразования вы получите XML-документ примерно следующего содержания:

<WestRegion>
<row>
.
.
.
State>AK</State>
.
.
.
</row>
.
.
.
</WestRegion>

Отдельные UDT-типы

С отдельными UDT-типами вы можете делать то же самое, что и с доменами, однако здесь необходим более строгий подход к определению типа. Например:

CREATE TYPE WestCoast AS Character (2) FINAL;

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

<xsd:simpleType>
Name='UDT.SalesWestCoast'>
<xsd:annotation>
<xsd:appinfo>
<sqlxml:sqltype kind='DISTINCT'
schemaName='Sales'
typeName='WestCoast'
mappedType='CHAR_2'
final='true'/>
<xsd:appinfo>
</xsd:annotation>
<xsd:restriction base='CHAR_2'/>
</xsd:simpleType>

В результате создается элемент, похожий на созданный для домена, описанного нами ранее.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.