Samouczek XPath i XQuery dla specjalistów od SQL (wideo)

Przed rozpoczęciem pracy w firmie Altova nie miałem żadnego doświadczenia z XPath ani XQuery. Moim pierwszym zadaniem było jak najszybsze zapoznanie się z oboma językami zapytań i stworzenie krótkiego filmu, który miałby służyć jako Samouczek XPath i samouczek XQuery. Było ważne, aby dogłębnie zrozumieć ich funkcje i możliwości, ponieważ oba języki są kluczowe dla tworzenia aplikacji w środowisku MobileTogether oraz dla odpytywania danych w programie XMLSpy. Zacząłem od solidnej wiedzy z zakresu SQL, a następnie nauczyłem się XPath i XQuery, najpierw tworząc zapytania w SQL, a potem analizując, jak można je zaimplementować w obu językach zapytań.

Podstawowe szkolenie z XPath i XQuery

Firma Altova oferuje obszerną, bezpłatną bibliotekę materiałów szkoleniowych, która obejmuje XPath i XQuery. Okazało się, że mogę zdobyć solidną wiedzę na temat obu tych języków zapytań, po prostu czytając te materiały szkoleniowe i stosując podstawowe koncepcje do przykładowych plików XML dołączonych do programu XMLSpy. Byłem pod wrażeniem, jak intuicyjne było natychmiastowe przeszukiwanie dużych plików XML za pomocą samego XPath. Jednak, gdy zacząłem tworzyć bardziej zaawansowane przykłady dla tutoriala dotyczącego XPath, zacząłem rozumieć, że zapytania tworzone za pomocą XQuery są niemal zawsze bardziej zwięzłe i łatwiejsze do odczytania/debugowania.

Czytając dalej materiały szkoleniowe firmy Altova, zauważyłem, że składnia wyrażenia FLWOR w XQuery jest zaskakująco podobna do składni zapytania SQL. Zarówno XPath, jak i XQuery, w swojej podstawowej funkcji, przekształcają zbiór danych w mniejsze tabele. Oba te języki pozwalają na filtrowanie danych za pomocą złożonych warunków i funkcji transformacyjnych. Ponadto, oba języki umożliwiają pobieranie danych z wielu źródeł, które są łączone w celu uzyskania zestawów wyników opartych na danych z wielu znormalizowanych źródeł. Biorąc pod uwagę podobieństwa między tymi językami, stało się dla mnie jasne, że najprostszym sposobem na naukę XPath i XQuery jest rozpoczęcie od znajomości SQL. Uzbrojony w tę wiedzę, zabrałem się do pracy.

Podsumowując

MobileTogether zawiera przykładową aplikację mobilną o nazwie MyCar, która stanowi doskonałą podstawę do nauki języka XQuery. Ta aplikacja demonstruje, jak zadawać użytkownikowi pytania dotyczące jego wymarzonego samochodu. Dane są dostarczane przez zestaw parametrów zdefiniowanych w bazie danych; były idealne do pracy, ponieważ zawierały wiele rekordów, z których każdy miał kilka pól danych. Zbiór danych jest dostarczany w formacie pliku MDB, który otworzyłem za pomocą programu DatabaseSpy i wyeksportowałem do formatu XML. Modyfikowałem wyeksportowany plik, zmieniając niektóre pola, aby poprawić czytelność zapytań, które zamierzałem tworzyć.

Ponieważ oba zestawy danych były identyczne, udało mi się stworzyć wyrażenia SQL, XQuery i XPath, które dawały identyczne wyniki. Dzięki temu bardzo szybko mogłem się zapoznać z tymi technologiami i nauczyć się zarówno XPath, jak i XQuery. Zauważyłem, że w ciągu kilku godzin potrafiłem tworzyć złożone zapytania. Ostatecznie postanowiłem stworzyć poniższy film. Film ten omawia osiem typowych scenariuszy zapytań, prezentując równoważne zapytania we wszystkich trzech językach.

Film instruktażowy dotyczący XPath i XQuery

Poniżej znajduje się link do zbioru przykładowych zapytań i zestawów danych, które zostały wykorzystane w filmie. Jeśli chcieliby Państwo przetestować je w wbudowanym oknie edycji XPath/XQuery, który działa zarówno z plikami XML, jak i JSON, mogą Państwo skorzystać z bezpłatnej wersji próbnej XMLSpy.

Przykładowe dane i zapytania