Określanie Test węzłów w ścieżce lokalizacji (SQLXML 4.0)
Test węzłów określa typ węzła zaznaczony krok lokalizacji.Każdej oś (child, parent, attribute, lub self) ma typ węzła głównego.Dla attribute oś, typ węzła głównego jest <atrybut>.Dla parent, child, i self osi, typ węzła głównego jest <elementu>.
Ostrzeżenie
Test węzłów symbol wieloznaczny * (na przykład child::*) nie jest obsługiwany.
Test węzłów: Przykład 1
Ścieżka lokalizacji child::Customer wybiera <klienta> elementy podrzędne elementu Węzeł kontekstu.
W tym przykładzie child jest oś i Customer jest rozgrzanych węzłaTyp węzła głównego dla child oś jest <elementu>.Dlatego badanie węzeł ma wartość PRAWDA, jeśli <klienta> węzeł jest <elementu> węzła.Jeśli węzeł kontekstu nie ma <klienta> dzieci, zwracany jest pusty zestaw węzłów.
Test węzłów: Przykład 2
Ścieżka lokalizacji attribute::CustomerID wybiera IDklienta atrybut węzeł kontekstu.
W przykładzie attribute jest oś i CustomerID jest rozgrzanych węzłaTyp węzła głównego attribute oś jest <atrybut>.Dlatego badanie węzeł ma wartość PRAWDA, jeśli IDklienta jest <atrybut> węzła.Jeśli węzeł kontekstu nie ma IDklienta, zwracany jest pusty zestaw węzłów.
Ostrzeżenie
W tej implementacji XPath, jeśli lokalizacja kroku odnosi się do <elementu> lub <atrybut> typu, które nie są zadeklarowane w schemacie, zostanie wygenerowany błąd.To różni się od implementacji XPath w MSXML, która zwraca zestaw węzłów puste.
Skrócona składnia dla osi
Jest obsługiwana poniższa składnia skróconej ścieżka lokalizacji:
attribute::mogą być skracane do @.
Ścieżka lokalizacji Customer[@CustomerID="ALFKI"] jest taka sama jak child::Customer[attribute::CustomerID="ALFKI"].
child:: można pominąć krok lokalizacji.
W ten sposób child jest domyślnie oś.Ścieżka lokalizacji Customer/Order jest taka sama jak child::Customer/child::Order.
self::node()może zostać skrócona do jednej kropki (.), i parent::node() może zostać skrócona do dwóch kropek (.).