Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующих примерах показано, как логические функции указаны в запросах XPath. Запросы XPath в этих примерах указываются в схеме сопоставления, содержащейся в SampleSchema1.xml. Дополнительные сведения об этой схеме см. в примере аннотированной схемы XSD для примеров XPath (SQLXML 4.0).
Примеры
А. Укажите логическую функцию not()
Этот запрос возвращает все дочерние <элементы customer> узла контекста, у которых нет <дочерних элементов Order> :
/child::Customer[not(child::Order)]
child
Ось — это по умолчанию. Таким образом, запрос можно указать следующим образом:
/Customer[not(Order)]
Тестирование запроса XPath на схему сопоставления
Скопируйте пример кода схемы и вставьте его в текстовый файл. Сохраните файл как SampleSchema1.xml.
Создайте следующий шаблон (BooleanFunctionsA.xml) и сохраните его в каталоге, где сохранены SampleSchema1.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> Customer[not(Order)] </sql:xpath-query> </ROOT>
Путь к каталогу, указанный для схемы сопоставления (SampleSchema1.xml), относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\MyDir\SampleSchema1.xml"
Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Ниже приведен частичный результирующий набор выполнения шаблона:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />
<Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />
<Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />
...
</ROOT>
В. Укажите логические функции true() и false()
Этот запрос возвращает все <дочерние элементы Customer> узла контекста, у которых нет <дочерних элементов Order> . В реляционных терминах этот запрос возвращает всех клиентов, которые не размещали никаких заказов.
/child::Customer[child::Order=false()]
child
Ось — это по умолчанию. Таким образом, запрос можно указать следующим образом:
/Customer[Order=false()]
Этот запрос эквивалентен следующему:
/Customer[not(Order)]
Следующий запрос возвращает всех клиентов, которые поместили по крайней мере один заказ:
/Customer[Order=true()]
Этот запрос эквивалентен этому:
/Customer[Order]
Тестирование запроса XPath на схему сопоставления
Скопируйте пример кода схемы и вставьте его в текстовый файл. Сохраните файл как SampleSchema1.xml.
Создайте следующий шаблон (BooleanFunctionsB.xml) и сохраните его в каталоге, где сохранены SampleSchema1.xml.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer[Order=false()] </sql:xpath-query> </ROOT>
Путь к каталогу, указанный для схемы сопоставления (SampleSchema1.xml), относится к каталогу, в котором сохраняется шаблон. Можно также задать абсолютный путь, например:
mapping-schema="C:\MyDir\SampleSchema1.xml"
Создайте и запустите тестовый скрипт SQLXML 4.0 (Sqlxml4test.vbs), чтобы выполнить шаблон.
Дополнительные сведения см. в разделе "Использование ADO для выполнения запросов SQLXML 4.0".
Ниже приведен частичный результирующий набор выполнения шаблона:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<Customer CustomerID="13" SalesPersonID="286" TerritoryID="7" AccountNumber="13" CustomerType="S" />
<Customer CustomerID="32" SalesPersonID="289" TerritoryID="8" AccountNumber="32" CustomerType="S" />
<Customer CustomerID="35" SalesPersonID="275" TerritoryID="2" AccountNumber="35" CustomerType="S" />
...
</ROOT>