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

SQL:2003 и XML

Обработка неопределенных значений

Поскольку SQL-данные могут быть неопределенными значениями, необходимо решить, как представлять их в XML-документе. Неопределенные значения могут быть представлены либо как нуль, либо как отсутствие всякого значения. Если элемент столбца необходимо представить как неопределенное (нулевое) значение, то он будет иметь атрибут xsi:nil="true". Это может быть сделано следующим способом:

<row>
<FirstName>Bill</FirstName>
<LastName>Bailey</LastName>
<City xsi:nil="true" />
<AreaCode>714</AreaCode>
<Telephone>5 55-22 22</Telephone>
</row>

Если элемент столбца отсутствует, то выполните следующее:

<row>
<FirstName>Bill</FirstName>
<Las tName>Bailey</Las tName>
<AreaCode>714</AreaCode>
<Telephone>55 5-22 22</Telephone>
</row>

При выборе этой опции строка содержит неопределенное значение, которое "отсутствует". С ним нет связей.

Создание XML-схемы

При преобразовании данных из SQL в XML первый созданный документ содержит данные, а второй – информацию о схеме. В качестве примера рассмотрим схему для документа CUSTOMER (см. "Преобразование таблиц").

<xsd:schema>
<xsd:simpleType name="CHAR_15">
<xsd:restriction base="xsd:string">
<xsd:lenght value = "15"/>
</xsd;restriction>
</xsd:simpleType>
<xsd:simpleType name="CHAR_25">
<xsd:restriction base="xsd:string">
<xsd:lenght value = "25"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="CHAR_3">
<xsd:restriction base="xsd:string">
<xsd:lenght value = "3"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name-"CHAR_8">
<xsd:restriction base="xsd:string">
<xsd:lenght value = "8"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:sequence>
<xsd:element name="FirstName" type="CHAR_15"/>
<xsd:element name="LastName" type="CHAR_25"/>
<xsd:element
name="City" type="CHAR_25" nillable="true"/>
<xsd:element
name="AreaCode" type="CHAR_3" nillable="true"/>
<xsd:element
name="Telephon" type="CHAR_8" nillable="true"/>
<xsd:sequence>
</xsd:schema>

Эта схема подходит в том случае, если при обработке неопределенных значений используется опция "нуль". Опция "отсутствие" требует несколько иного определения элемента. Например:

<xsd:element
name="City" type="CHAR_25 minOccurs="0"/>
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.