Wprowadzanie za pomocą kwerendy XPath (SQLXML 4.0)
Kwerendę XML ścieżka Language (XPath) może być określona jako część adresu URL lub w szablonie.Mapowanie schematu określa strukturę to wynikowego fragmentu, a są one pobierane z bazy danych.Ten proces jest pojęciowo podobne do tworzenia widoków przy użyciu CREATE VIEW instrukcja i pisania SQL kwerendy przed nimi.
Uwaga
Aby zrozumieć, w kwerendach XPath w wersji 4.0 SQLXML, należy zapoznać się z widoków XML i pojęć pokrewnych, takich jak szablony i mapowania schematów.Aby uzyskać więcej informacji zobacz Wprowadzenie do adnotacjami schematy XSD (SQLXML 4.0), a standard XPath zdefiniowane przez konsorcjum World Wide Web Consortium (W3C).
Dokument XML składa się z węzłów, na przykład element węzeł, węzeł atrybut, węzeł tekstu i tak dalej.Na przykład należy wziąć pod uwagę ten dokument 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 <Odbiorcy> jest węzłem elementu CID jest węzeł atrybut i "Ważne" jest węzłem tekstu.
Wyrażenie XPath jest językiem nawigacji wykresu umożliwia wybranie zestaw węzłów z dokumentu XML.Każdy operator XPath wybiera oparte na zestaw węzłów 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 7/14/1999.
Język XPath jest definiowany przez konsorcjum World Wide Web Consortium (W3C) jako język standardowych nawigacji.SQLXML 4.0 implementuje podzbiorem specyfikacji W3C XPath znajduje się w http://www.w3.org/TR/1999/PR-xpath-19991008.html.
Poniżej przedstawiono klucz różnice między wykonania W3C XPath i wykonania SQLXML 4.0.
Katalog główny kwerendy
SQLXML 4.0 nie obsługuje kwerendy katalogu głównego (/).Wszystkie kwerendy XPath muszą rozpoczynać najwyższego poziom <ElementType> w schemacie.
Raportowanie błędów
Specyfikacja konsorcjum W3C XPath definiuje nie warunki wystąpienia błędu.Kwerendy XPath, które się nie powieść, aby zaznaczyć wszystkie węzły zwraca pusty zestaw węzłów.W wersji 4.0 SQLXML kwerenda może zwracać wiele rodzajów komunikatów o błędach.
Kolejność dokumentów
W wersji 4.0 SQLXML kolejność dokumentu nie jest zawsze określona.W związku z tym predykaty liczbowych i osi, które przy użyciu dokumentu zamówienia (np. following) nie są implementowane.
Brak kolejności dokumentu oznacza również, że wartość ciąg węzła może przyjmować tylko wtedy, gdy ten węzeł jest mapowany na jedną kolumna w jednym wierszu.Element z elementami podrzędnymi lub węzeł IDREFS lub NMTOKENS nie można przekonwertować na ciąg.
Uwaga
W niektórych przypadkach key-fields Adnotacja lub kluczy z relationship adnotacja może spowodować kolejności deterministyczny dokumentu. Jednak nie jest to podstawowy wykorzystanie tych adnotacji do uzyskać więcej informacji, zobacz Identyfikowanie przy użyciu kolumny klucz sql:klucz-pól (SQLXML 4.0) i Określanie przy użyciu relacji sql:relationship (SQLXML 4.0).
Typy danych
SQLXML 4.0 ma ograniczenia przy wykonywaniu wyrażenie XPath string, number, a boolean typy danych. Aby uzyskać więcej informacji zobaczTypy danych XPath (SQLXML 4.0).
Produkt innej kwerendy
SQLXML 4.0 nie obsługuje kwerendy XPath iloczyn krzyżowy, takich jak Customers[Order/@OrderDate=Order/@ShipDate]. Ta kwerenda powoduje zaznaczenie wszystkich nabywców z dowolnego zamówienia, dla których DataZamówienia jest równe DataWysyłki wszystkie zlecenia.
Jednak program SQLXML 4.0 obsługuje kwerendy takie jak Customer[Order[@OrderDate=@ShippedDate]], które wybiera nabywców z dowolnego zamówienia, dla których DataZamówienia jest równa jego DataWysyłki.
Obsługa błędów i zabezpieczeń
W zależności od schematu i wyrażenie XPath kwerendy, które są używane Transact-SQL błędy mogą być udostępniane użytkownikom w określonych warunkach.
Tabele w następnych sekcjach zawierają szczegółowe informacje dotyczące sposobu wykonania kwerendy XPath w wersji 4.0 SQLXML różni się od Specyfikacja konsorcjum W3C w tych obszarach.
Obsługiwane funkcje
W poniższej tabela przedstawiono funkcje języka XPath, które są wykonywane w wersji 4.0 SQLXML.
Funkcja |
Element |
Łącze do przykładowe kwerendy |
|---|---|---|
Osie |
attribute, child, parent, a self osie |
|
logiczny-Wycenione predykaty 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) |
Funkcje konwersji jawne |
number(), string(), Boolean() |
Określanie jawne funkcje konwersji w kwerendach XPath (SQLXML 4.0) |
logiczny operatorów |
I, LUB |
Określanie operatorów logicznych w kwerendach XPath (SQLXML 4.0) |
Funkcje logiczne |
true(), false(), not() |
|
Zmienne XPath |
|
Określając wyrażenie XPath zmienne 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 w wersji 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łów |
ancestor, ancestor-or-self, descendant, descendant-or-self (//), following, following-sibling, namespace, preceding, preceding-sibling |
ciąg funkcji |
string(), concat(), starts-with(), contains(), substring-before(), substring-after(), substring(), string-length(), normalize(), translate() |
Funkcje logiczne |
lang() |
Funkcje liczbowe |
sum(), floor(), ceiling(), round() |
Operator |
| |
Po określeniu kwerendy XPath w szablonie, należy uwzględnić następujące zachowanie:
- Wyrażenie XPath może zawierać znaków takich jak < lub & mają specjalne znaczenie w języku XML (i jest szablon dokumentu XML). Należy wyjść z tych znaków przy użyciu XML &-kodowania lub określić wyrażenie XPath w adresie URL.