Określanie test węzła w ścieżce lokalizacji (SQLXML 4.0)
Test węzła Określa typ węzła zaznaczony krok lokalizacji.(oś) cochild, parent, attribute, lub self) ma określony typ węzła głównego. Dla attribute oś, jest typu główny węzeł <atrybut>. Dla parent, child, a self osie, jest typu główny węzeł <element>.
Uwaga
Test węzła symbol wieloznaczny * (na przykład child::*) nie jest obsługiwana.
Test węzła: Przykład 1
Ścieżka lokalizacji child::Customer Wybiera <Odbiorcy> elementy podrzędne elementu węzła kontekstu.
W tym przykładzie child jest na oś i Customer jest to test węzła. Typ węzła głównego child oś jest <element>. W związku z tym test węzła jest PRAWDA, jeśli <Odbiorcy> węzeł jest <element> węzeł. Jeśli zdefiniowano węzeł kontekstu <Odbiorcy> dzieci, zwracana jest pustego zestaw węzłów.
Test węzła: Przykład 2
Ścieżka lokalizacji attribute::CustomerID Wybiera Identyfikator klientaatrybut w węźle kontekstu.
W przykładzie attribute jest na oś i CustomerID jest to test węzła. Typ węzła głównego attribute oś jest <atrybut>. W związku z tym test węzła jest PRAWDA, jeśli Identyfikator klienta is an <atrybut> węzeł. Jeśli zdefiniowano węzeł kontekstu Identyfikator klienta, zwracana jest pustego zestaw węzłów.
Uwaga
W tej implementacji XPath, jeśli kroku lokalizacji odwołuje się do <element> lub <atrybut> Typ, które nie są zadeklarowane w schemacie, błąd jest generowany. To różni się od wykonania wyrażenie XPath w MSXML, która zwraca zestaw węzłów puste.
Skróconej składni dla osi
Jest obsługiwana poniższa składnia skrócona do ścieżka lokalizacji:
attribute:: może zostać skrócona do @.
Ścieżka lokalizacji Customer[@CustomerID="ALFKI"] jest taka sama, jak child::Customer[attribute::CustomerID="ALFKI"].
child:: można pominąć od kroku lokalizacji.
W ten sposób child to domyślne oś. Ścieżka lokalizacji Customer/Order jest taka sama, jak child::Customer/child::Order.
self::node() może zostać skrócona do jednej kropki (.), a parent::node() może zostać skrócona do dwóch kropek (.).