Wprowadzenie do korzystania z kwerend XPath (SQLXML 4.0)
Kwerenda XML Path Language (XPath) może być określona jako część adresu URL lub w szablonie.Mapowanie schematu określa strukturę tego fragmentu Wynikowe i wartości są pobierane z bazy danych.Ten proces jest koncepcyjnie podobna do tworzenia widoków przy użyciu kwerendy SQL CREATE VIEW instrukcja i pisanie przed nimi.
Ostrzeżenie
Aby zrozumieć kwerend XPath 4.0 SQLXML, muszą być zaznajomieni z widoków XML i pojęcia pokrewne, takie jak szablony i mapowanie schematu.Aby uzyskać więcej informacji, zobacz Wprowadzenie do adnotacjami schematów XSD (SQLXML 4.0)i standard XPath zdefiniowane przez World Wide Web Consortium (W3C).
Dokument XML zawiera węzły węzeł elementu, węzeł atrybut, węzeł tekstu i tak dalej.Rozważmy na przykład tego dokumentu XML:
<root>
<Customer cid= "C1" name="Janine" city="Issaquah">
<Order oid="O1" date="1/20/1996" amount="3.5" />
<Order oid="O2" date="4/30/1997" amount="13.4">Customer was
very satisfied</Order>
</Customer>
<Customer cid="C2" name="Ursula" city="Oelde" >
<Order oid="O3" date="7/14/1999" amount="100" note="Wrap it blue white red">
<Urgency>Important</Urgency>
</Order>
<Order oid="O4" date="1/20/1996" amount="10000"/>
</Customer>
</root>
W tym dokumencie <klienta> jest węzeł elementu cid jest węzłem atrybut i "Ważne" jest węzłem tekstowym.
Wyrażenie XPath jest język nawigacji wykresu zaznacz zestaw węzłów z dokumentu XML.Każdy operator XPath wybiera oparte na zestaw węzłów wybranych przez poprzednie operator XPath zestaw węzłów.For example, given a set of <Customer> nodes, XPath can select all <Order> nodes with the date attribute value of "7/14/1999".Wynikowy zestaw węzłów zawiera wszystkie zamówienia z zamówienia, data 14-7/1999.
Język XPath jest określany przez World Wide Web Consortium (W3C) jako język standardowy nawigacji.Implementuje SQLXML 4.0 podzbiór specyfikacji W3C XPath znajduje się w http://www.w3.org/TR/1999/PR-xpath-19991008.html.
Oto klucz różnice między W3C XPath wdrożenia i wykonania SQLXML 4.0.
Główny kwerend
SQLXML 4.0 nie obsługuje kwerendy główny (/).Każda kwerenda XPath muszą rozpoczynać się od najwyższego poziom <element ElementType> w schemacie.
Raportowanie błędów
Specyfikacja W3C XPath definiuje warunki nie błędów.Kwerendy XPath, które nie zaznaczać żadnych węzłów zwraca pusty zestaw węzłów.SQLXML 4.0 Kwerenda może zwracać wiele typów komunikatów o błędach.
Porządek dokumentu
SQLXML 4.0 kolejność dokumentu nie jest zawsze określona.Dlatego predykaty liczbowych i osi kolejności użycia dokumentu (takich jak following) nie są implementowane.
Brak kolejności dokumentu oznacza również, że wartość ciąg węzeł może przyjmować tylko wtedy, gdy węzeł mapuje pojedynczej kolumna w jednym wierszu.Element z podrzędność elementów lub IDREFS lub NMTOKENS węzła nie można przekonwertować ciąg.
Ostrzeżenie
W niektórych przypadkach key-fields adnotacji lub kluczy z relationship adnotacji może skutkować zamówienia deterministic dokumentu.Jednakże nie jest podstawowym zastosowaniem tych adnotacji, aby uzyskać więcej informacji, zobacz Identyfikowanie przy użyciu kolumn klucz sql:klucz-pól (SQLXML 4.0) i Określanie za pomocą relacji sql:relationship (SQLXML 4.0).
typy danych
SQLXML 4.0 ma ograniczenia we wdrażaniu XPath string, number, i boolean typów danych.Aby uzyskać więcej informacji, zobacz Typy danych XPath (SQLXML 4.0).
Kwerendy krzyżowe produktu
SQLXML 4.0 nie obsługuje takich jak iloczyn krzyżowy kwerend XPath, Customers[Order/@OrderDate=Order/@ShipDate].Ta kwerenda wybiera wszystkich klientów z dowolnego zamówienia, dla której DataZamówienia ma wartość formantu DataWysyłki dowolnego zamówienia.
Jednak SQLXML 4.0 obsługuje kwerendy takie jak Customer[Order[@OrderDate=@ShippedDate]], który wybiera klienci z dowolnego zamówienia, dla którego jest równe DataZamówienia DataWysyłki.
Obsługa błędów i zabezpieczeń
W zależności od schematu i wyrażenie kwerendy XPath, które są używane Transact-SQL błędów może narażeni użytkownicy, pod pewnymi warunkami.
Tabele w następnych sekcjach zawierają szczegółowe informacje dotyczące sposobu wykonywania kwerend XPath SQLXML 4.0 różni się ze specyfikacji W3C w tych obszarach.
Obsługiwana funkcjonalność
W poniższej tabela przedstawiono funkcje języka XPath, które są implementowane w SQLXML 4.0.
Funkcja |
Element |
Łącze do kwerendy przykładowe |
|---|---|---|
Osie |
attribute, child, parent, and self axes |
|
Predykaty wycenione wartość logiczna tym predykaty kolejnych i zagnieżdżonych |
|
Określanie operatory arytmetyczne w kwerendach XPath (SQLXML 4.0) |
Wszystkie operatory relacyjne |
=, !=, <, <=, >, >= |
Określanie operatory relacyjne w kwerendach XPath (SQLXML 4.0) |
Operatory arytmetyczne |
+,-, *, div |
Określanie operatory arytmetyczne w kwerendach XPath (SQLXML 4.0) |
Konwersji jawnej |
number(), string(), Boolean() |
Określanie funkcje konwersji jawnej w kwerendach XPath (SQLXML 4.0) |
wartość logicznaOperatory |
I, LUB |
Określanie wartość logiczna operatorów w kwerendach XPath (SQLXML 4.0) |
wartość logicznaFunkcje |
true(), false(), not() |
Określanie wartość logiczna funkcji w kwerendach XPath (SQLXML 4.0) |
Zmienne XPath |
|
Określając wyrażenie XPath zmiennych w kwerendach XPath (SQLXML 4.0) |
Nieobsługiwane funkcje
W poniższej tabela przedstawiono funkcje języka XPath, które nie zostały zaimplementowane w SQLXML 4.0.
Funkcja |
Element |
|---|---|
Osie |
ancestor, ancestor-or-self, descendant, descendant-or-self (//), following, following-sibling, namespace, preceding, preceding-sibling |
Predykaty wartości liczbowe |
|
Operatory arytmetyczne |
MOD |
Funkcje węzła |
ancestor, ancestor-or-self, descendant, descendant-or-self (//), following, following-sibling, namespace, preceding, preceding-sibling |
Funkcje tekstowe |
string(), concat(), starts-with(), contains(), substring-before(), substring-after(), substring(), string-length(), normalize(), translate() |
wartość logicznaFunkcje |
lang() |
Funkcje liczbowe |
sum(), floor(), ceiling(), round() |
Union operator |
| |
Po określeniu kwerend XPath w szablonie, należy zwrócić uwagę na następujące zachowanie:
- Wyrażenie XPath może zawierać znaki takie jak < lub & , mają specjalne znaczenie w języku XML (i jest szablon dokumentu XML).Musi escape tych znaków przy użyciu XML &-kodowania lub określ wyrażenie XPath w adresu URL.