Определение значений по умолчанию для атрибутов в схеме XDR (схема XDR)
Важно! |
|---|
Этот раздел включен в документацию в качестве справочника по приложениям прежних версий. Дальнейшая разработка этой функции проводиться не будет. Рекомендуется избегать использования данной функции в новых разработках. Вместо этого для создания XML-представлений пользуйтесь схемами XSD с заметками. Дополнительные сведения см. в разделе Введение в схемы XSD с заметками (SQLXML 4.0). Можно преобразовать существующие схемы XDR с заметками в схемы XSD. Дополнительные сведения см. в разделе Преобразование схем XDR с заметками в эквивалентные схемы XSD (SQLXML 4.0). |
В столбцах базы данных могут быть заданы значения по умолчанию. Аналогично в схеме XDR значения по умолчанию могут быть заданы для атрибутов (в схеме XDR нельзя задать значения по умолчанию для элементов). Схема XDR позволяет задать спецификацию атрибута default для элемента <AttributeType>.
Если значение столбца, связанное с атрибутом, равно NULL, этот атрибут не возвращается для этого экземпляра элемента. Но если для элемента <AttributeType> указан атрибут default, атрибут возвращается с указанным значением по умолчанию.
Например, если при получении данных из базы данных в XML-документ отсутствует одно из значений атрибута, используется значение по умолчанию этого атрибута в схеме XDR.
Примечание |
|---|
Значение по умолчанию может не отображаться в возвращенном документе, но использоваться проверяющим средством синтаксического анализа при отсутствии атрибута. |
Примечание |
|---|
Значение по умолчанию используется, если используемое средство синтаксического анализа применяет схему. То есть для средства синтаксического анализа MSXML флаг resolveExternals необходимо установить в значение TRUE (по умолчанию), средство синтаксического анализа выбирает схемы. После синтаксического анализа отдельные экземпляры имеют атрибуты (для которых указаны значения по умолчанию) независимо от того, включен ли атрибут в XML-документ. Модель DOM предоставляет значение по умолчанию. |
Примеры
Чтобы создать рабочие образцы на основе следующих примеров, необходимо выполнить определенные требования. Дополнительные сведения см. в разделе Требования к запуску примеров SQLXML.
А. Указание значения атрибута по умолчанию в схеме XDR
В этом примере атрибуту Title присвоено значение по умолчанию «XYZ». Когда контактные записи получены, значение по умолчанию назначается контактам, у которых нет названия.
<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes"
xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ElementType name="Person.Person" >
<AttributeType name="CID" />
<AttributeType name="FirstName" />
<AttributeType name="LastName" />
<AttributeType name="Title" default="XYZ"/>
<attribute type="CID" sql:field="BusinessEntityID" />
<attribute type="FirstName" />
<attribute type="LastName" />
<attribute type="Title" />
</ElementType>
</Schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл с именем DefaultValueXdr.xml.
Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл под именем DefaultValueXdrT.xml в том же каталоге, где был сохранен файл DefaultValueXdr.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="DefaultValueXdr.xml"> /Person.Person[@CID > 1000 and @CID < 1006] </sql:xpath-query> </ROOT>Путь к каталогу схемы сопоставления (файл DefaultValueXdr.xml) задается относительно каталога, в котором сохранен шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\MyDir\DefaultValueXdr.xml"Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.
Полученный результирующий набор показан ниже.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Person.Person CID="1001" FirstName="Terri" LastName="Duffy" />
<Person.Person CID="1002" FirstName="Roberto" LastName="Tamburello" />
<Person.Person CID="1003" FirstName="Michael" LastName="Sullivan" />
<Person.Person CID="1004" FirstName="Sharon" LastName="Salavaria" />
<Person.Person CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." />
</ROOT>
Важно!
Примечание