Поделиться через


Определение значений по умолчанию для атрибутов в схеме XDR (схема XDR)

Важное примечаниеВажно!

Этот раздел включен в документацию в качестве справочника по приложениям прежних версий. Дальнейшая разработка этой функции проводиться не будет. Рекомендуется избегать использования данной функции в новых разработках. Вместо этого для создания XML-представлений пользуйтесь схемами XSD с заметками. Дополнительные сведения см. в разделе Введение в схемы XSD с заметками (SQLXML 4.0). Можно преобразовать существующие схемы XDR с заметками в схемы XSD. Дополнительные сведения см. в разделе Преобразование схем XDR с заметками в эквивалентные схемы XSD (SQLXML 4.0).

В столбцах базы данных могут быть назначены значения по умолчанию. Аналогично, в XDR-схеме значения по умолчанию могут быть установлены для атрибутов (в XDR-схеме нельзя назначить значения по умолчанию для элементов). XDR-схема обеспечивает спецификацию атрибута default на <AttributeType>.

Если значение столбца, связанное с атрибутом, равно NULL, этот атрибут не возвращается для этого экземпляра элемента. Но если атрибут default задан на <AttributeType>, то атрибут возвращается с заданным значением по умолчанию.

Например, если при извлечении данных из базы данных в 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.Contact" >    <AttributeType name="CID" />    <AttributeType name="FirstName" />    <AttributeType name="LastName" />    <AttributeType name="Title" default="XYZ"/>    <attribute type="CID" sql:field="ContactID" />    <attribute type="FirstName" />    <attribute type="LastName" />    <attribute type="Title"  /></ElementType></Schema>

Проверка образца запроса XPath к схеме

  1. Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл с именем DefaultValueXdr.xml.

  2. Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл под именем DefaultValueXdrT.xml в том же каталоге, где был сохранен файл DefaultValueXdr.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  <sql:xpath-query mapping-schema="DefaultValueXdr.xml">    /Person.Contact[@CID &gt; 1000 and @CID &lt; 1006]  </sql:xpath-query></ROOT>
    

    Путь к каталогу схемы сопоставления (файл DefaultValueXdr.xml) задается относительно каталога, в котором сохранен шаблон. Можно также задать абсолютный путь, например:

    mapping-schema="C:\MyDir\DefaultValueXdr.xml"
    
  3. Создайте и запустите тестовый сценарий SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.

    Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.

Полученный результирующий набор показан ниже.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  <Person.Contact CID="1001" FirstName="Terri" LastName="Duffy" />   <Person.Contact CID="1002" FirstName="Roberto" LastName="Tamburello" />   <Person.Contact CID="1003" FirstName="Michael" LastName="Sullivan" />   <Person.Contact CID="1004" FirstName="Sharon" LastName="Salavaria" />   <Person.Contact CID="1005" FirstName="Gail" LastName="Erickson" Title="Ms." /> </ROOT>