Wstęp
Rozważ prosty przykład pliku XML (ex01.xml).
Jeśli otworzymy ten plik w przeglądarce Internet Explorer, zobaczymy ten sam tekst, co powyżej, wraz ze wszystkimi tagami i informacjami o usłudze. Ale nie potrzebujemy tagów i informacji serwisowych! Chcemy widzieć tylko te informacje, które są istotne, a za pomocą tagów kontrolujemy wygląd tych informacji. To zadanie można rozwiązać łatwo i prosto: musisz dodać szablon transformacji - plik XSL - do pliku XML.
Ten element „adresu” jest prostym typem z ograniczeniem. Ten przykład definiuje również element o nazwie „adres”. Wartość musi mieć dokładnie osiem znaków. Ten przykład definiuje inny element o nazwie „hasło”. Ten element „hasło” jest prostym typem z ograniczeniem. Wartość musi mieć co najmniej pięć i nie więcej niż osiem znaków.
Ograniczenia dotyczące typów danych
Co to jest złożony element
Istnieją cztery rodzaje elementów złożonych. Puste elementy elementów, które zawierają tylko inne elementy, które zawierają tylko elementy tekstowe, które zawierają zarówno inne elementy, jak i tekst. Notatka. Każdy z tych elementów może również zawierać atrybuty!Przepiszmy nasz plik XML w następującej postaci (ex01-1.xml).
Jak zdefiniować złożony element
Jeśli użyjesz powyższej metody, wiele elementów może odnosić się do tego samego typu złożonego, np. Możesz również utworzyć element typu złożonego w istniejącym typie złożonym i dodać kilka elementów. Pusty element złożony może zawierać atrybuty; Ale między tagami otwierającymi i zamykającymi nie może być żadnej treści.
Definiowanie złożonych typów dla pustych elementów
Powyższy element „product” nie zawiera treści. Aby zdefiniować typ bez zawartości, musimy zdefiniować typ, który dopuszcza tylko elementy w swojej zawartości, ale nie deklarujemy żadnego elementu, np. W ten sposób można jednak zadeklarować, że element produktu będzie bardziej zwarty.
Utwórzmy plik XSL ex01-2.xsl . Tekst pliku pokazano poniżej.
Jeśli teraz otworzymy plik ex01-2.xsl w przeglądarka internetowa Odkrywco, wynik będzie inny.
Leonow Igor Wasiliewicz
Złożone typy składające się tylko z elementów
Typ złożony zawierający tylko element zawiera element, który zawiera tylko inne elementy.
Zdefiniuj typy złożone za pomocą samych elementów
Oznacza to, że pewne elementy muszą pojawić się w tej kolejności w elemencie „osoba”. Złożone elementy tekstowe. Złożony element tekstowy może zawierać zarówno atrybuty, jak i tekst.Ustaw złożony element tekstowy
Mieszane typy z mieszaną zawartością
Mieszany element typu złożonego może zawierać atrybuty, elementy i tekst. Zdefiniuj typy złożone z mieszaną zawartością. Poniższy schemat deklaruje element „litera”. Wskaźniki typu złożonego. Mamy siedem rodzajów wskaźników.„Uwagi dotyczące XSL”
Zwróćmy teraz uwagę na punkt, który jest kluczowy dla twórców baz danych. Informacje na stronie XML zwykle pojawiają się w wyniku zapytania do bazy danych. Wysyłanie zapytań do bazy danych w środowisku wielu użytkowników jest bardzo kosztowną operacją. Załóżmy teraz, że nie mamy XML i generujemy standardowe statyczne strony HTML. W tym przypadku, aby rozwiązać problem prostej transformacji zewnętrznej reprezentacji informacji, na przykład zmienić sortowanie, mamy dwa sposoby rozwiązania problemu: wykonanie zapytania i zapisanie wyników w jakimś tymczasowym buforze na serwerze lub za każdym razem, gdy zmienia się reprezentacja zewnętrzna, wykonaj nowe zapytanie i odbuduj stronę HTML.
Wskaźniki kolejności służą do określenia kolejności, w jakiej występują pozycje. Wskaźnik domyślnie wskazuje, że elementy podrzędne mogą być wyświetlane w dowolnej kolejności i każdy z nich musi wystąpić tylko raz. Za pomocą wskaźnika można określić, że wskaźnik ma wartość 0 lub 1 i może wynosić tylko 1. Wskaźnik wskazuje, że może wystąpić element potomny lub inny.
Wskaźnik wskazuje, że elementy podrzędne powinny być wyświetlane w określonej kolejności. Wskaźniki występowania służą do wskazywania, jak często dany element może wystąpić. Wskaźnik wskazuje maksymalną liczbę razy, jaką może mieć element.
Pierwsza metoda wymaga czasochłonnego programowania, druga metoda znacząco zwiększa obciążenie serwera bazodanowego, którego wydajność jest często wąskim gardłem systemu - użytkownik zawsze chce szybciej uzyskać wyniki.
XML i XSL to kompletne rozwiązanie opisanego powyżej problemu. W rzeczywistości strona XML jest tymczasowym buforem wyników zapytania. Tylko zamiast niestandardowego i czasochłonnego programowania stosujemy teraz standardowy mechanizm XSL.
Powyższy przykład określa, że element „filename” może wystąpić co najmniej raz i nie więcej niż dziesięć razy w elemencie „person”. Wskaźnik określa minimalną liczbę wystąpień elementu. W ramach tego elementu zdefiniowano kilka elementów „prywatnych”.
Wskaźniki grupowe służą do definiowania grup powiązane przedmioty. Elementy grupy definiuje się deklaracją grupy, np. Po zdefiniowaniu grupy można odnieść się do niej np. w definicji innej grupy lub typu złożonego.
Jest jeszcze jedna uwaga, która może być ważna dla programistów baz danych. Większość nowoczesnych DBMS może sformatować wyniki zapytania do bazy danych jako plik XML. Oznacza to, że budując interfejs użytkownika w ramach technologii XML i XSL, uzyskujemy pewną niezależność od dostawcy DBMS. W zakresie organizacji wyjścia - prawie całkowita samodzielność. A ta część jest bardzo duża w większości systemów aplikacji zorientowanych na bazy danych. Oczywiście oprócz danych wyjściowych jest też przetwarzanie danych wejściowych i logiki biznesowej po stronie serwera, ale tutaj trzeba będzie poszukać innych rozwiązań.
Po zdefiniowaniu grupy atrybutów można odnieść się do niej na przykład w definicji innej grupy lub typu złożonego. W tym przypadku możemy to zrobić, nawet jeśli autor powyższego schematu nigdy nie zadeklarował elementu „children”! W takim przypadku możemy to zrobić, nawet jeśli autor powyższego schematu nigdy nie zadeklarował żadnego atrybutu „płeć”! Załóżmy, że mamy dwóch użytkowników różnych krajów: Anglia i Norwegia.
Blokowanie elementów
Najpierw deklarujemy element klucz, a następnie deklarujemy inne elementy, które są zamiennikami elementu klucza. Aby zapobiec nakładaniu się innych elementów na określony element, użyj bloku. Wyszukaj typ elementu, aby zobaczyć ten sam lub pochodzący z typu elementu kluczowego. Jeśli typ elementu zastępczego jest taki sam jak typ elementu, nie musisz określać.
Pierwsze kroki
Przeanalizujmy teraz bardziej szczegółowo pierwszy przykład. Zapamiętajmy tekst.
Pierwsza linia informuje przeglądarkę, że plik jest w formacie XML. Atrybut wersji jest wymagany. Atrybut kodowania jest opcjonalny, ale jeśli masz w tekście rosyjskie litery, musisz wstawić ten atrybut, w przeciwnym razie plik XML po prostu nie zostanie przetworzony - otrzymasz komunikat o błędzie.
XML to darmowy, rozszerzalny język znaczników
Elementy globalne to te, które są bezpośrednimi dziećmi elementu „schemat”! Elementy lokalne to elementy zagnieżdżone w innych elementach! Dowiesz się również, że schemat można napisać na wiele różnych sposobów. Ten element posiada atrybut i zawiera inne elementy, dlatego traktujemy go jako typ złożony. Uwaga: Deklaracje atrybutów zawsze muszą się kończyć.
Tworzenie dokumentu XML
Poprzednia metoda projektowania jest bardzo prosta, ale bardzo trudna do odczytania i utrzymania, gdy dokumenty są złożone! Oto nowy widok pliku schematu. Trzecia metoda projektowania definiuje klasy i typy, co pozwala nam na ponowne wykorzystanie definicji elementów.
Poniższe wiersze stanowią treść pliku XML. Składa się z elementów, które razem tworzą strukturę drzewiastą. Elementy są identyfikowane za pomocą tagów i mogą być zagnieżdżane w sobie.
Elementy mogą posiadać atrybuty, których wartości również mogą być przetwarzane zgodnie z szablonem.
Na najwyższym poziomie pliku XML zawsze znajduje się jeden element. To znaczy plik widoku
Oto nowa forma pliku schematu. Wskazuje, że wartość elementu lub atrybutu jest ciągiem. Element ograniczenia jest często używany do nakładania ograniczeń na elementy. Zwróć uwagę na następujące linie z powyższego diagramu. Oznacza to, że wartość elementu lub atrybutu musi być ciągiem i musi mieć dokładnie sześć znaków, a każdy znak musi być liczbą z zakresu od 0 do .
Zacznij tworzyć plik XML
Typy danych typu String są używane dla wartości zawierających łańcuchy. Typ danych ciągu może zawierać znaki, podziały wierszy, powrót karetki i znaki tabulacji. Poniżej znajduje się przykład deklarowania ciągu w schemacie. Element w twoim dokumencie może wyglądać tak.
nie będą przetwarzane przez przeglądarkę. Aby przekonwertować do prawidłowego pliku XML, musisz dodać tagi elementów najwyższego poziomu, na przykład
Ograniczenia dotyczące typów danych łańcuchowych
Typ danych tokenu jest również pochodną typu danych ciągu. Poniżej znajduje się przykład deklaracji znacznika w schemacie. Ograniczenia, których można używać z typami danych typu string. Typy danych Data i godzina są używane dla wartości zawierających datę i godzinę.
Typ danych data służy do określenia daty. Poniżej znajduje się przykład deklarowania daty w schemacie. Typ danych czas jest używany do wskazania czasu. Wszystkie komponenty są wymagane! Poniżej znajduje się przykład instrukcji polecenia na diagramie. Typ danych czasu trwania służy do wskazywania przedziału czasu.
Pamiętaj, że w nazwach tagów rozróżniana jest wielkość liter. Możesz przeczytać więcej na ten temat w każdej książce o XML - elementom i atrybutom w tych książkach poświęca się sporo uwagi.
XSL+XSLT
Przejdźmy teraz do szablonu transformacji - do pliku XSL. Zadaniem pliku XSL jest przekształcenie drzewa pliku XML w inne drzewo, które na przykład będzie odpowiadać formatowi HTML i może być wyświetlane na ekranie przeglądarki z uwzględnieniem formatowania, wyboru czcionki itp.
Dobrze uformowane dane
Poniżej znajduje się przykład instrukcji czasu trwania w schemacie. Powyższy przykład określa okres pięciu lat. Powyższy przykład określa okres pięciu lat, dwóch miesięcy i dziesięciu dni. Powyższy przykład określa okres pięciu lat, dwóch miesięcy, dziesięciu dni i 15 godzin.
Ograniczenia typu danych
W powyższym przykładzie określono okres 15 godzin. Powyższy przykład określa okres krótszy niż 10 dni. Ograniczenia, których można używać z typami danych dat. Do przechowywania liczb używane są dziesiętne typy danych. Typ danych dziesiętnych jest używany do wskazania wartości liczbowej.
Aby przeglądarka wykonała niezbędne przekształcenie, musisz w pliku XML podać łącze do pliku XSL
Rozważ teraz tekst pliku XSL
Pierwszy wiersz pliku zawiera znacznik elementu xsl:stylesheet. Atrybuty elementu to numer wersji i odwołanie do przestrzeni nazw. Te atrybuty elementu xsl:stylesheet są wymagane. W naszym przypadku przestrzeń nazw to wszystkie nazwy elementów i ich atrybuty, których można użyć w pliku XSL. W przypadku plików XSL odniesienie do przestrzeni nazw jest standardowe.
Poniższy przykład to deklaracja dziesiętna w schemacie. Maksymalna liczba cyfr dziesiętnych, jaką możesz określić, to 18! Typ danych całkowitych służy do wskazywania wartości liczbowej bez składnika ułamkowego. Poniższy przykład to instrukcja typu integer w schemacie.
Ograniczenia dotyczące numerycznych typów danych
Element w twoim dokumencie może wyglądać tak. Ograniczenia, których można używać z liczbowymi typami danych. Poniższy przykład to instrukcja bramki logicznej w obwodzie. Dane binarne służą do wyrażania danych binarnych. Mamy dwa rodzaje danych binarnych.
Zauważ, że plik XSL jest typem pliku XML. Nie zawiera danych użytkownika, ale jego format jest taki sam. Plik zawiera element xsl:stylesheet najwyższego poziomu, po którym następuje drzewo reguł transformacji.
W tym dokumencie nie wyjaśnimy szczegółowo, co oznacza każdy element pliku XSL. Podamy różne przykłady i pokażemy wynik w każdym przykładzie. Czytelnik będzie mógł samodzielnie odwzorować różne elementy pliku XSL oraz przekształcenia źródłowego pliku XML zainicjowane przez te elementy z informacjami o użytkowniku.
Ograniczenia dotyczące różnych typów danych
Ograniczenia, których można używać z innymi typami danych. To język: oznacza to, że ten format pliku ma przekazywać informacje. To język znaczników: oznacza to, że dane są powiązane z „tagami”, które pasują do ich zawartości. Na przykład u Emile Zola „Emile” byłoby podane jako imię i „Zola” jako nazwisko. To język rozszerzalny: oznacza dwie rzeczy.
Zgodnie z jego potrzebami można definiować i wykorzystywać „etykiety”, które, jak sobie życzysz, po zdefiniowaniu zestawu etykiet, nawet przez kogoś innego, można rozszerzyć dodając własne kreacje. Przyjrzymy się jego różnym składnikom. Ta pierwsza linia to plik prologu.
W przyszłości teksty w plikach XML i XSL będą prezentowane w czerni i bieli. Zawsze możesz otworzyć prawdziwy plik i zobaczyć wszystko w kolorze. W razie potrzeby skomentuj łącze do pliku XSL. Składnia komentarza jest następująca: . Symbole — nie można wstawiać do tekstu komentarza.
W pierwszym przykładzie zobaczyliśmy, jak element xsl:value-of może zostać użyty do wyświetlenia zawartości elementu (tekstu zawartego między tagami) w formacie HTML. Teraz zobaczymy, jak możemy użyć tego samego elementu do wywnioskowania wartości atrybutu elementu.
Tutaj zajmujemy się skrótami, o których mówiliśmy we wstępie. To elementy i atrybuty pozwalają zakwalifikować dane i nadać im znaczenie.
- Niepusty element zaczyna się od otwartego znacznika, a kończy znacznikiem końcowym.
- Pusty element zawiera tylko jeden tag, zwany tagiem „samozamykającym się”.
- To jest przykład elementu identyfikacyjnego: charakteryzuje się tagiem.
Rozważ następujący plik XML ex02-1.xml
W tym pliku informacje są przechowywane nie w treści elementów, ale w postaci wartości atrybutów. Wygląda na to plik ex02-1.xsl
Ta hierarchiczna struktura tworzy strukturę drzewa. Oto element naukowy. Kiedy chcesz określić, co zawiera element, możesz umieścić atrybut w otwierającym znaczniku. Na przykład element date ma dwa atrybuty o nazwach narodziny i śmierć. Atrybut ma nazwę i wartość. Na przykład atrybutem imienia drugiego naukowca jest Izaak.
Wreszcie, kolejność, w jakiej atrybuty są zapisywane w znaczniku otwierającym, nie ma znaczenia: atrybuty ostatniego wyuczonego elementu są odwrócone w stosunku do pierwszych dwóch, ale te dwie formy są ściśle równoważne. Na przykład ostatnie dwa obiekty mogą być użyte w wartościach atrybutów.
Zwróć uwagę na składnię odwołania do atrybutu elementu - //pies /@ nazwać . Nazwa elementu i nazwa atrybutu są oddzielone parą znaków „/@ ”. Pozostała składnia jest taka sama, jak w przypadku odwoływania się do zawartości elementu.
Gdy treść może zawierać wiele obiektów, pisanie ich może być żmudne. Te zasady są następujące. Element główny musi być unikalny. . Ponadto może być pożądane propagowanie typu dokumentu lub równoległa praca nad danym dokumentem. Z tych powodów konieczne jest ustalenie ogólnych reguł, które precyzyjnie definiują atrybuty i atrybuty, a także ich hierarchię, czyli reguły „gramatyczne”. Są na to trzy główne metody. taka gramatyka i wskazuje, że mówi się, że jest „prawidłowa”.
Wynik wygląda tak:
Pies:Piłka. 18 kg, czerwona z czarnymi znaczeniami.
Zwróćmy teraz naszą uwagę na następny punkt. W pliku XSL nie użyliśmy w żaden sposób elementu tutoriala. W rzeczywistości możesz użyć pełnej ścieżki. Przepiszmy nasz plik XML, zwiększając głębokość drzewa (ex02-2.xml)
Do tego pliku został dodany szablon transformacji ex03-1.xsl.
Przyjrzyjmy się bliżej temu wzorowi. Oto jego tekst.
Pierwsze dwie linie szablonu są już znajome. Następne sześć wierszy to wiersz zawierający nagłówki kolumn tabeli. Konstrukcja do wyodrębniania tekstu nagłówków tabel jest Ci już znana. Ale dziewiąta linia jest nowa:
Ten element szablonu pozwala wybrać i wyświetlić wszystkie grupy informacji, do których pełna ścieżka jest określona przez listę znaczników „tutorial/zwierzęta/psy/pies” . Należy pamiętać, że ścieżka jest ustawiona całkowicie, żaden z tagów nie może zostać pominięty. Ponadto informacje o naszych psach znajdują się w komórkach tabeli. W przeciwieństwie do pierwszych przykładów, ścieżka do odpowiednich informacji jest również całkowicie określona. Spróbujmy na przykład nieco inaczej umieścić informację o nicku ex03-2.xml :
Jeśli umieścimy link w odpowiednim pliku XSL
Przezwisko |
Kolor |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
czerwony z czarnymi plamami |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biały z czarnymi plamami |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
biało-szary |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ciekawsze wyniki uzyskamy, jeśli spróbujemy posortować tabelę według kolumny „Waga”. Najpierw spróbujmy zrobić to analogicznie do poprzedniego przykładu - zamienimy atrybut order-by="dogName" na order-by="dogWeight" . Wynik jest pokazany poniżej (ex03-4.xml , ex03-4.xsl).
Tabela jest rzeczywiście posortowana według kolumny "waga", ale nie jest to sortowanie numeryczne, ale sortowanie łańcuchowe! Aby przeglądarka postrzegała wartości jako liczby, należy jej o tym powiedzieć - zamiast order-by="dogWeight" należy wpisać order-by="number(dogWeight)" . Teraz otrzymaliśmy poprawny wynik (ex03-5.xml , ex03-5.xsl).
Podajmy teraz przykład sortowania według kilku kolumn. Poszczególne elementy w atrybucie order-by muszą być oddzielone znakiem „;” - order-by="liczba(waga psa); nazwa psa"(ex03-6.xml , ex03-6.xsl). Tabela jest pokazana poniżej.
Poniższy przykład działa tylko pod parserem XML w wersji 3. Sortuje wiersze według jednej kolumny, nazwy psa. Ten przykład został już podany powyżej, ale teraz używamy nowej składni (ex03-7.xml , ex03-7.xsl). Zwróćmy uwagę na różnicę. Podczas korzystania z nowej składni używane jest odwołanie do innej przestrzeni nazw < xsl : stylesheet version ="1.0" xmlns : xsl =" http :// www . w 3. org /1999/ XSL / Transform "> To bardzo ważna kwestia i nigdy nie należy jej pomijać. Usunęliśmy również atrybut order-by z elementu xsl:for-each i dodaliśmy kolejny element Jeśli element xsl:sort jest obecny w elemencie xsl:for-each, musi zawsze pojawić się bezpośrednio po elemencie xsl:for-each. Składnia elementu xsl:sort jest dość oczywista. Wykorzystuje dwa atrybuty: atrybut order - sposób sortowania (w porządku rosnącym lub malejącym) oraz atrybut select - nazwę pola, według którego ma być sortowane. Jeśli musimy sortować według pierwszego elementu, jak w tym przykładzie, to zamiast "dogName" możemy wstawić kropkę - ".", dla pozostałych elementów należy podać jego nazwę, np. "dogColor", jeśli trzeba posortować rekordy według koloru psa. W rzeczywistości może istnieć pięć atrybutów - select , lang , data-type , order i case-order , ale nie będziemy tutaj brać pod uwagę wszystkich tych atrybutów, ponieważ tutaj nie dążymy do pełnego opisu wszystkich użytych elementów w XSL i ich atrybuty.
Używając nowej składni, łatwo jest przejść z sortowania rosnącego na malejące (ex03-8.xml , ex03-8.xsl Różnica tkwi w jednej linii Zmieniliśmy wartość atrybutu order - wartość rosnąco została zastąpiona malejąco . Tabela wyników jest pokazana poniżej.
Pokażemy teraz sortowanie według kilku pól (ex03-9.xml , ex03-9.xsl). Ten przykład działa tylko pod parserem XML w wersji 3. W tym przykładzie mamy dwie linie z elementem xsl:sort.
Rzędy są sortowane najpierw według wagi psa, a następnie według ich imion w kolejności alfabetycznej. Należy pamiętać, że aby sortowanie odbywało się w kolejności numerycznej, dodaliśmy atrybut data-type do elementu xsl:sort. Tabela wyników jest pokazana poniżej.
Zamieniając wartość kolejności według atrybutu na malejący , możemy łatwo pogrupować wpisy dotyczące psów o tej samej wadze tak, aby nazwy były w odwrotnej kolejności alfabetycznej. Możesz łatwo sam zbudować odpowiedni przykład.
Dynamiczne tworzenie atrybutów na przykładzie parametrów linku w taguZałóżmy teraz, że w każdym wierszu tabeli musimy zrobić link do jakiejś strony i przekazać do tej strony dwa parametry - imię i wagę psa. Oczywiste jest, że dla każdej linii parametry te są inne i nie można ich zapisać wprost w pliku XSL. Jednak zadanie to można łatwo wykonać za pomocą elementu xsl:attribute. Nie będziemy tu budować specjalnego przykładu, ograniczymy się do odpowiedniego fragmentu pliku XSL. W tym przykładzie w komórce tabeli umieszczamy link do strony ze szczegółowymi opisami. Link jest określony w atrybucie href tagu . Ponieważ do strony przekazywane są dwa parametry, których wartości pobierane są z pliku XML, atrybut ten jest generowany dynamicznie. Należy również zauważyć, że znak & (ampersand) oddzielający przekazane parametry jest zapisany w pliku XSL jako & . W drugim atrybucie potrzebujemy podpowiedzi (atrybutu tytułu), który pojawia się po najechaniu myszą na link. Tekst tej podpowiedzi również zmienia się dynamicznie. Na koniec umieściliśmy statyczny atrybut target bezpośrednio w tagu . I wreszcie zapoznaliśmy się z komentarzami w plikach XSL. To jest druga linia powyższego fragmentu.
To kończy naszą dyskusję na temat czystych możliwości XSLT i przechodzi do ostatniego akapitu tego dokumentu, dynamicznie zmieniając zawartość strony sieci Web za pomocą funkcji JavaScript i XML/XSLT bez dodatkowych wywołań bazy danych. |
Dzisiaj zaczniemy rozważać bardzo popularny i wygodny język znaczników. XML. Ponieważ ten język reprezentacji danych jest bardzo elastyczny i wszechstronny i może być używany prawie wszędzie, mam na myśli coś wstyd, więc początkujący programista prędzej czy później będzie miał do czynienia z tym językiem i nie ma znaczenia, co dokładnie robisz , niezależnie od tego, czy chodzi o programowanie stron internetowych, czy administrację bazami danych, ponieważ każdy używa XML, a Ty też wykorzystasz go przy realizacji potrzebnych Ci zadań.
Zaczniemy jak zwykle od teorii, zastanowimy się, jaki to język, dlaczego jest dobry, jak się nim posługiwać i gdzie się go używa.
Definicja języka XML
XML (Rozszerzalny język znaczników) to uniwersalny i rozszerzalny język znaczników danych, który jest niezależny od systemu operacyjnego i środowiska przetwarzania. Xml służy do reprezentowania niektórych danych w postaci struktury i możesz tę strukturę samodzielnie opracować lub dostosować do konkretnego programu lub jakiejś usługi, dlatego ten język nazywa się rozszerzalny i to jest jego główna zaleta, za którą jest tak ceniony.
Jak wiecie, jest wystarczająco dużo języków znaczników, na przykład język HTML, ale wszystkie z nich, w taki czy inny sposób, zależą od procesora, na przykład ten sam html, którego kod jest analizowany przez przeglądarkę, jest zestandaryzowane i nierozszerzalne, są czytelne tagi, których składnia nie może być naruszona, a w xml można tworzyć własne tagi, czyli np. Twój znacznik. Główna różnica między HTML i XML polega na tym, że html opisuje tylko znaczniki do wyświetlania danych, a xml to abstrakcyjna struktura danych, którą można przetwarzać i wyświetlać w dowolny sposób i w dowolnym miejscu, w związku z czym nie ma potrzeby porównywania tych języków, mają zupełnie inny cel.
Jak wspomniano powyżej, xml jest bardzo powszechnym i uniwersalnym językiem, za pomocą którego prawie wszystkie aplikacje, czy to webowe, czy tylko komputerowe, wykorzystują go jako wymianę informacji, ponieważ za jego pomocą można bardzo łatwo wymieniać dane między aplikacjami lub usługami które są nawet napisane w różnych językach. W związku z tym każdy początkujący programista, który zajmuje się absolutnie dowolnym programowaniem, powinien mieć pojęcie o XML, na przykład jeśli chcesz zostać webmasterem, to po prostu musisz znać XML, ale jak zostać WEB Masterem i co i muszę wiedzieć o tym już rozważone.
Na przykład kiedyś miałem za zadanie napisać usługę, która na żądanie powinna zwracać dane w postaci xml, czyli trochę rozbudować aplikację po stronie serwerowej, a nawet nie miałem pojęcia, na czym jest napisany klient, który będzie przetwarzał te dane, a to, napisałem usługę, która zwracała dane w postaci xml i cała aplikacja działała bez zarzutu . A to tylko przykład, z którym miałem do czynienia, a teraz wyobraź sobie, ile różnych organizacji współpracuje i rozwija oprogramowanie i udostępnia dane, i nie zdziwiłbym się, że te dane będą w postaci xml.
Kiedyś musiałem też przechowywać dane xml w bazie danych MSSQL 2008, aby lepiej reprezentować te dane i wymieniać je między serwerem a klientem części aplikacji, omówiliśmy to w artykule - Transact-sql - praca z xml .
Sam język XML jest bardzo prosty i po prostu nie można się w nim zgubić, cała złożoność pojawia się właśnie w przetwarzaniu i interakcji xml z innymi aplikacjami, technologiami, tj. wszystko, co otacza xml, co jest dokładnie tym, z czym łatwo się pomylić.
Dziś mówimy tylko o podstawach XML i nie będziemy skupiać się na technologiach przetwarzania i interakcji z tym językiem, ponieważ jest to naprawdę bardzo obszerny materiał, ale myślę, że w przyszłości będziemy nadal się poznawać z powiązanymi technologiami.
Przejdźmy do praktyki. A wszystkie przykłady, które rozważymy, napiszę w Notepad ++ tylko dlatego, że jest to bardzo wygodne, ale teraz nie będziemy o tym mówić, ponieważ rozważaliśmy już to w artykule - Dlaczego Notepad ++ jest dobry dla początkujący programista.
Tagi XML
Język XML wykorzystuje znaczniki do znaczników (w znacznikach jest rozróżniana wielkość liter), ale nie te same znaczniki, co w html, ale te, które sam wymyślasz, ale dokument xml również ma przejrzystą strukturę, tj. jest tag otwierający i tag zamykający, są tagi zagnieżdżone i oczywiście są wartości, które znajdują się w tych tagach, innymi słowy, wszystko, co jest potrzebne do początkowej znajomości xml, to po prostu ich przestrzegać zasady. Wspólnie otwierający, zamykający tag i wartość są nazywane elementem, a cały dokument xml składa się z elementów, które razem tworzą strukturę danych. Dokument XML może mieć tylko jeden element główny, pamiętaj o tym, bo jeśli napiszesz dwa elementy główne, będzie to błąd.
Czas podać przykład znaczników xml, a pierwszy przykład na razie dotyczy składni:
<Начало элемента> <Начало вложенного элемента>Zagnieżdżona wartość elementuКонец вложенного элемента> Конец элемента>
Jak widać, wszystko jest dość proste, a takich zagnieżdżonych elementów może być bardzo dużo.
Podajmy teraz przykład prawdziwego dokumentu XML:
Jak widać, podałem tutaj tylko przykład swego rodzaju katalogu książkowego, ale nie zadeklarowałem tego dokumentu, tj. nie napisał deklaracji XML, która mówi aplikacji, która będzie przetwarzać te dane, że dane xml się tutaj znajdują i w jakim kodowaniu są prezentowane. Możesz także pisać komentarze i atrybuty, więc podajmy przykład takiego dokumentu:
Gdzie pierwszy wiersz to deklaracja deklaracji, że jest to dokument XML i musi być odczytywany w kodowaniu UTF-8.
Dane te bez przetwarzania będą wyglądały np. w przeglądarce (Mozilla Firefox) w następujący sposób:
Mam nadzieję, że rozumiesz, że tutaj katalog jest elementem głównym, który składa się z elementów książki, która z kolei składa się z elementów nazwiska, autora i komentarza, również na przykład ustawiłem kilka atrybutów na elemencie katalogu i na elemencie książki.
Jeśli chodzi o podstawy, myślę, że to wystarczy, ponieważ jeśli zagłębimy się coraz głębiej w XML i wszystkie technologie związane z tym językiem, ten artykuł nigdy się nie skończy. To wszystko na dzisiaj.