Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:programu SQL Server
Azure SQL Database
Poniższe przykłady pokazują, jak funkcje boolowskie są określane w zapytaniach XPath. Zapytania XPath w tych przykładach są określone względem schematu odwzorowania zawartego w SampleSchema1.xml. Aby uzyskać informacje o tym przykładowym schemacie, zobacz Przykładowy annotowany schemat XSD dla przykładów XPath (SQLXML 4.0).
Przykłady
A. Określmy funkcję boolowską not()
To zapytanie zwraca wszystkie <elementy potomne Klienta> węzła kontekstowego, które nie mają <elementów potomnych Order> :
/child::Customer[not(child::Order)]
Oś potomna jest domyślna. Dlatego zapytanie można określić jako:
/Customer[not(Order)]
Aby przetestować zapytanie XPath względem schematu mapowania
Skopiuj przykładowy kod schematu i wklej go do pliku tekstowego. Zapisz plik jako SampleSchema1.xml.
Stwórz następujący szablon (BooleanFunctionsA.xml) i zapisz go w katalogu, gdzie SampleSchema1.xml jest zapisany.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> Customer[not(Order)] </sql:xpath-query> </ROOT>Ścieżka katalogu określona dla schematu mapowania (SampleSchema1.xml) jest względna względem katalogu, w którym zapisany jest szablon. Można również określić ścieżkę bezwzględną, na przykład:
mapping-schema="C:\MyDir\SampleSchema1.xml"Utworzenie i użycie testowego skryptu SQLXML 4.0 (Sqlxml4test.vbs) do wykonania szablonu.
Aby uzyskać więcej informacji, zobacz Using ADO to Execute SQLXML 4.0 Queries (Używanie narzędzia ADO do wykonywania zapytań SQLXML 4.0).
Oto częściowy zestaw wyników wykonania szablonu:
<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>
B. Określmy funkcje boolowskie true() i false()
To zapytanie zwraca wszystkie <elementy elementów klienta> węzła kontekstowego, które nie mają <elementów potomnych Order> . W kategoriach relacyjnych, to zapytanie zwraca wszystkich klientów, którzy nie złożyli żadnych zamówień.
/child::Customer[child::Order=false()]
Oś potomna jest domyślna. Dlatego zapytanie można określić jako:
/Customer[Order=false()]
To zapytanie jest równoważne z następującymi elementami:
/Customer[not(Order)]
Następujące zapytanie zwraca wszystkich klientów, którzy złożyli przynajmniej jedno zamówienie:
/Customer[Order=true()]
To zapytanie jest równoważne temu:
/Customer[Order]
Aby przetestować zapytanie XPath względem schematu mapowania
Skopiuj przykładowy kod schematu i wklej go do pliku tekstowego. Zapisz plik jako SampleSchema1.xml.
Stwórz następujący szablon (BooleanFunctionsB.xml) i zapisz go w katalogu, gdzie SampleSchema1.xml jest zapisany.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="SampleSchema1.xml"> /Customer[Order=false()] </sql:xpath-query> </ROOT>Ścieżka katalogu określona dla schematu mapowania (SampleSchema1.xml) jest względna względem katalogu, w którym zapisany jest szablon. Można również określić ścieżkę bezwzględną, na przykład:
mapping-schema="C:\MyDir\SampleSchema1.xml"Utworzenie i użycie testowego skryptu SQLXML 4.0 (Sqlxml4test.vbs) do wykonania szablonu.
Aby uzyskać więcej informacji, zobacz Using ADO to Execute SQLXML 4.0 Queries (Używanie narzędzia ADO do wykonywania zapytań SQLXML 4.0).
Oto częściowy zestaw wyników wykonania szablonu:
<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>