Определение значений по умолчанию для атрибутов в схеме 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 к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл с именем DefaultValueXdr.xml.
Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл под именем DefaultValueXdrT.xml в том же каталоге, где был сохранен файл DefaultValueXdr.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="DefaultValueXdr.xml"> /Person.Contact[@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.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>