Výrazy cesty (XQuery)
platí pro:SQL Server
Výrazy cesty XQuery vyhledá v dokumentu uzly, jako jsou element, atribut a textové uzly. Výsledek výrazu cesty vždy probíhá v pořadí dokumentu bez duplicitních uzlů ve výsledné sekvenci. Při zadávání cesty můžete použít buď neabbreviated, nebo zkrácenou syntaxi. Následující informace se zaměřují na neabbreviovanou syntaxi. Zkrácená syntaxe je popsána dále v tomto tématu.
Poznámka
Vzhledem k tomu, že ukázkové dotazy v tomto tématu jsou určeny pro sloupce typu xml, CatalogDescription a Pokyny, v tabulce ProductModel byste se měli seznámit s obsahem a strukturou dokumentů XML uložených v těchto sloupcích.
Výraz cesty může být relativní nebo absolutní. Následuje popis obou těchto:
Relativní výraz cesty se skládá z jednoho nebo více kroků oddělených jedním nebo dvěma lomítky (/ nebo //). Například
child::Features
je relativní výraz cesty, kdeChild
odkazuje pouze na podřízené uzly kontextového uzlu. Jedná se o uzel, který se právě zpracovává. Výraz načte podřízené prvky elementu <Features> uzel kontextu.Absolutní výraz cesty začíná jednou nebo dvěma značkami lomítka (/ nebo //), za kterým následuje volitelná relativní cesta. Například počáteční lomítko ve výrazu
/child::ProductDescription
označuje, že se jedná o absolutní výraz cesty. Vzhledem k tomu, že značka lomítka na začátku výrazu vrátí kořenový uzel dokumentu kontextového uzlu, vrátí výraz všechny <Kód ProductDescription> podřízené uzlu elementu kořenového adresáře dokumentu.Pokud absolutní cesta začíná jednou značkou lomítka, může nebo nemusí následovat relativní cesta. Pokud zadáte pouze jednu značku lomítka, vrátí výraz kořenový uzel kontextového uzlu. U datového typu XML se jedná o uzel dokumentu.
Typický výraz cesty se skládá z kroků. Například absolutní výraz cesty /child::ProductDescription/child::Summary
obsahuje dva kroky oddělené lomítkem.
První krok načte <Kód ProductDescription> podřízených prvků kořenového adresáře dokumentu.
Druhý krok načte podřízený uzel elementu <Summary> pro každý načtený uzel <ProductDescription> elementu, který se zase stane kontextový uzel.
Krokem ve výrazu cesty může být krok osy nebo obecný krok.
Krok osy
Krok osy ve výrazu cesty má následující části.
osy
Definuje směr pohybu. Krok osy ve výrazu cesty, který začíná na kontextovém uzlu, a přejde k těmto uzlům, které jsou dostupné ve směru určeném osou.
testovací uzlu
Určuje typ uzlu nebo názvy uzlů, které se mají vybrat.
Nulové nebo více volitelných predikátů
Vyfiltruje uzly tak, že vyberete některé a zahodíte ostatní.
Následující příklady používají osu ve výrazech cesty:
Absolutní výraz cesty,
/child::ProductDescription
, obsahuje pouze jeden krok. Určuje osu (child
) a test uzlu (ProductDescription
).Relativní výraz cesty
child::ProductDescription/child::Features
obsahuje dva kroky oddělené lomítkem. Oba kroky určují podřízenou osu. Kód ProductDescription a Funkce jsou testy uzlů.Relativní výraz cesty
child::root/child::Location[attribute::LocationID=10]
obsahuje dva kroky oddělené znaménkem lomítka. První krok určuje osu (child
) a test uzlu (root
). Druhý krok určuje všechny tři součásti kroku osy: osu (podřízenou), test uzlu (Location
) a predikát ([attribute::LocationID=10]
).
Další informace o komponentách kroku osy najdete v tématu Určení osy v kroku výrazu cesty, Určení testu uzlu v kroku výrazu cestya Určení predikátů v kroku výrazu cesty.
Obecný krok
Obecný krok je jen výraz, který se musí vyhodnotit jako posloupnost uzlů.
Implementace XQuery v SQL Serveru podporuje obecný krok jako první krok ve výrazu cesty. Následuje příklad výrazů cesty, které používají obecné kroky.
(/a, /b)/c
id(/a/b)
Další informace o funkci ID naleznete id Funkce (XQuery).
V této části
určení osy v kroku výrazu cesty
Popisuje práci s krokem osy ve výrazu cesty.
určení testu uzlu v kroku výrazu cesty
Popisuje práci s testy uzlů ve výrazu cesty.
určení predikátů v kroku výrazu cesty
Popisuje práci s predikáty ve výrazu cesty.
použití zkrácené syntaxe ve výrazu cesty
Popisuje práci se zkrácenou syntaxí ve výrazu cesty.