Udostępnij przez


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

Określanie osie w kwerendach XPath (SQLXML 4.0)

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()

Określanie funkcje logiczne w kwerendach XPath (SQLXML 4.0)

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.