Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В XML разделы CDATA используются для escape-блоков текста, содержащих символы, которые в противном случае распознаются как символы разметки.
База данных в Microsoft SQL Server иногда может содержать символы, которые рассматриваются как символы разметки средства синтаксического анализа XML; например, угловые скобки (< и >), символы меньше или равно символа (<=), а амперсанды (&) обрабатываются как символы разметки. Однако этот тип специальных символов можно упаковать в раздел CDATA, чтобы предотвратить их обработку как символы разметки. Текст в разделе CDATA обрабатывается средством синтаксического анализа XML как обычный текст.
Заметка sql:use-cdata используется для указания того, что данные, возвращаемые SQL Server, должны быть упакованы в раздел CDATA (то есть указывает, должно ли значение из столбца, указанного в sql:field разделе CDATA). Заметку sql:use-cdata можно указать только в элементах, сопоставленных с столбцом базы данных.
Заметка sql:use-cdata принимает логическое значение (0 = false, 1 = true). Допустимые значения: 0, 1, true и false.
Эту заметку нельзя использовать с sql:url-encode типами атрибутов IDREF, IDREFS, NMTOKEN и NMTOKENS или IDTOKENS.
Примеры
Чтобы создать рабочие образцы на основе следующих примеров, необходимо выполнить определенные требования. Дополнительные сведения см. в разделе "Требования к выполнению примеров SQLXML".
А. Указание sql:use-cdata в элементе
В следующей схеме sql:use-cdata установлено значение 1 (True) для <AddressLine1> в элементе <Address> . В результате данные возвращаются в разделе CDATA.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="Address"
sql:relation="Person.Address"
sql:key-fields="AddressID" >
<xsd:complexType>
<xsd:sequence>
<xsd:element name="AddressID" type="xsd:string" />
<xsd:element name="AddressLine1" type="xsd:string"
sql:use-cdata="1" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Проверка образца запроса XPath к схеме
Скопируйте приведенный выше код схемы и вставьте его в текстовый файл. Сохраните файл как UseCData.xml.
Скопируйте следующий шаблон и вставьте его в текстовый файл. Сохраните файл как UseCDataT.xml в том же каталоге, где вы сохранили UseCData.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="UseCData.xml"> /Address[AddressID < 11] </sql:xpath-query> </ROOT>Путь к каталогу, указанный для схемы сопоставления (UseCData.xml), относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\SqlXmlTest\UseCData.xml"Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Это частичный результирующий набор:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Address>
<AddressID>1</CustomerID>
<AddressLine1>
<![CDATA[ 1970 Napa Ct. ]]>
</AddressLine1>
</Address>
<Address>
<AddressLine1>
<![CDATA[ 9833 Mt. Dias Blv. ]]>
</AddressLine1>
</Address>
...
</ROOT>