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>
В результате создается элемент, похожий на созданный для домена, описанного нами ранее.