Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В схеме XSD с заметками, когда атрибут (или элемент) сопоставляется со столбцом BLOB в Microsoft SQL Server, данные внутри XML возвращаются в формате Base 64.
Если требуется возвратить ссылку на эти данные (идентификатор URI), которую впоследствии можно будет использовать для получения данных BLOB в двоичном формате, укажите заметку sql:encode. Заметку sql:encode можно указывать для атрибута или элемента простого типа.
Задайте заметку sql:encode, чтобы указать, что необходимо вернуть URL-адрес поля вместо значения поля. При формировании одноэлементного выбора в URL-адресе заметка sql:encode зависит от первичного ключа. Первичный ключ можно указать при помощи заметки sql:key-fields.
Заметке sql:encode можно назначить значение «url» или «default». Значение «default» возвращает данные в формате Base 64.
Заметку sql:encode нельзя использовать с sql:use-cdata или для типов атрибутов ID, IDREF, IDREFS, NMTOKEN и NMTOKENS. Ее также нельзя использовать с атрибутом XSD fixed.
Примечание |
|---|
Столбцы типа BLOB невозможно использовать, как часть ключа или внешнего ключа. |
Примеры
Чтобы создать рабочие образцы на основе следующих примеров, необходимо выполнить определенные требования. Дополнительные сведения см. в разделе Требования к запуску примеров SQLXML.
А.Указание заметки sql:encode для получения URL-ссылки на данные BLOB
В этом примере схема сопоставления указывает заметку sql:encode для атрибута LargePhoto, чтобы получить URI-ссылку на фотографию определенного продукта (а не получать двоичные данные в формате Base 64).
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="ProductPhoto" sql:relation="Production.ProductPhoto"
sql:key-fields="ProductPhotoID" >
<xsd:complexType>
<xsd:attribute name="ProductPhotoID" type="xsd:int" />
<xsd:attribute name="LargePhoto" type="xsd:string" sql:encode="url" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл с именем sqlEncode.xml.
Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл под именем sqlEncodeT.xml в том же каталоге, где был сохранен файл sqlEncode.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlEncode.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>Путь к каталогу схемы сопоставления (файл sqlEncode.xml) задается относительно каталога, в котором сохранен шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\sqlEncode.xml"Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе Использование ADO для выполнения запросов SQLXML 4.0.
Результат:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>
Примечание