Podręcznik użytkownika Anuluj

Omówienie języków XML i XSLT

 

 

Korzystanie z języków XML i XSLT na stronach internetowych utworzonych w programie Dreamweaver.

Uwaga:

Interfejs użytkownika w programie Dreamweaver CC i nowszych wersjach został uproszczony. Dlatego począwszy od wersji Dreamweaver CC niektóre opcje opisane w tym artykule mogą nie być dostępne. Więcej informacji zawiera ten artykuł.

Korzystanie z języków XML i XSL na stronach internetowych

Język XML (Extensible Markup Language) umożliwia nadawanie informacjom struktury. Podobnie jak HTML, język XML umożliwia definiowanie struktury za pomocą znaczników. Jednak w przypadku języka XML znaczniki te nie są predefiniowane, tak jak w języku HTML. Zamiast tego, XML umożliwia tworzenie znaczników najlepiej definiujących określoną strukturę danych (schemat). Znaczniki są zagnieżdżane w innych, tworząc w ten sposób schemat znaczników nadrzędnych i podrzędnych. Podobnie, jak w przypadku większości znaczników HTML, wszystkie znaczniki w schemacie XML posiadają znacznik zamykający i otwierający.

Podany przykład pokazuje podstawową strukturę pliku XML:

<?xml version=“1.0>
<mybooks>
<book bookid=“1>
<pubdate>03/01/2004</pubdate>
<title>Displaying XML Data with Adobe Dreamweaver</title>
<author>Charles Brown</author>
</book>
<book bookid=“2>
<pubdate>04/08/2004</pubdate>
<title>Understanding XML</title>
<author>John Thompson</author>
</book>
</mybooks>
<?xml version=“1.0”> <mybooks> <book bookid=“1”> <pubdate>03/01/2004</pubdate> <title>Displaying XML Data with Adobe Dreamweaver</title> <author>Charles Brown</author> </book> <book bookid=“2”> <pubdate>04/08/2004</pubdate> <title>Understanding XML</title> <author>John Thompson</author> </book> </mybooks>
<?xml version=“1.0”> 
<mybooks> 
    <book bookid=“1”> 
        <pubdate>03/01/2004</pubdate> 
        <title>Displaying XML Data with Adobe Dreamweaver</title> 
        <author>Charles Brown</author> 
    </book> 
    <book bookid=“2”> 
        <pubdate>04/08/2004</pubdate> 
        <title>Understanding XML</title> 
        <author>John Thompson</author> 
    </book> 
</mybooks>

W tym przykładzie, każdy znacznik nadrzędny <book> zawiera trzy znaczniki podrzędne: <pubdate>, <title> oraz <author>. Każdy znacznik <book> jest także znacznikiem podrzędnym znacznika <mybooks>, który jest o jeden poziom wyżej w schemacie. Znaczniki schematu XML mogą być dowolnie nazywane i rozmieszczane w schemacie pod warunkiem, że zostaną poprawnie zagnieżdżone i zostanie im przypisany znaczniki otwierający i zamykający.

Dokumenty XML nie zawierają informacji dotyczących formatowania; są zwykłymi kontenerami informacji na temat struktury. Jeśli posiadasz już schemat XML, to możesz użyć języka XSL (Extensible Stylesheet Language) do wyświetlania określonych informacji. Podobnie jak style CSS (Cascading Style Sheets), które służą do formatowania elementów HTML, kod XSL pozwala na formatowanie danych XML. W pliku XSL możesz definiować style, elementy strony, układ itp., który potem możesz dołączyć do pliku XML tak, umożliwiając wyświetlenie danych XML w przeglądarce w takiej postaci, w jakiej zostały zdefiniowane w pliku XSL. Zawartość (dane XML) i prezentacja (zdefiniowana przez plik XSL) są rozłączne, zapewniając w ten sposób większą kontrolę nad wyglądem danych wyświetlanych na stronie internetowej. Oznacz to w skrócie, że XSL stanowi technologię prezentacji XML, w której materiałem wyjściowym jest strona HTML.

Język XSLT (Extensible Stylesheet Language Transformations) jest językiem z grupy XSL, który umożliwia wyświetlanie danych XML na stronie i „przekształca” ją wraz ze stylami XSL na czytelne, sformatowane stylami informacje w formularzu HTML. Programu Dreamweaver można używać do tworzenia stron XSLT, które dają możliwość wykonywania przekształceń XSL za pomocą serwera aplikacji lub przeglądarki. W przekształceniach XSL po stronie serwera, serwer wykonuje przekształcenia XML i XSL oraz wyświetla je na stronie. W przekształceniach po stronie klienta, prace te wykonuje przeglądarka (np. Internet Explorer).

Wybór opcji (przekształcenia po stronie serwera lub klienta) są uzależnione od celu i oczekiwanego rezultatu, dostępnej technologii, poziomu dostępu do plików źródłowych XML i innych czynników. Obie opcje posiadają zalety i ograniczenia. Na przykład przekształcenia po stronie serwera działają we wszystkich przeglądarkach, ale przekształcenia po stronie klienta są wykonywane tylko w przeglądarkach bardziej nowoczesnych (Internet Explorer 6, Netscape 8, Mozilla 1.8 i Firefox 1.0.2). Przekształcenia po stronie serwera umożliwiają dynamiczne wyświetlanie danych XML z serwera lub dowolnego miejsca w Internecie, podczas gdy przekształcenia po stronie klienta wymagają danych XML przechowywanych na własnym serwerze sieciowym. Warto tez pamiętać, że przekształcenia po stronie serwera wymagają zainstalowania stron na skonfigurowanych serwerze aplikacji, a przekształcenia po stronie klienta wymagają tylko dostępu do serwera sieciowego.

Samouczek omawiający język XML można znaleźć na stronie internetowej www.adobe.com/go/vid0165_pl.

Przekształcenia XSL po stronie serwera

Program Dreamweaver udostępnia metody tworzenia stron XSLT umożliwiające wykonywanie przekształceń XSL po stronie serwera. Podczas wykonywania przekształcenia XSL przez serwer aplikacji, plik z danymi XML może się znajdować na danym serwerze lub w innym miejscu, w Internecie. Co więcej, każda przeglądarka może wyświetlić przekształcone dane. Instalowanie stron dla przekształceń po stronie serwera jest jednak złożone i wymaga dostępu do serwera aplikacji.

Podczas pracy z przekształceniami XSL po stronie serwera można używać programu Dreamweaver do tworzenia stron XSLT generujących pełne dokumenty HTML (całe strony XSLT) lub fragmentów XSLT generujących części dokumentów HTML. Cała strona XSLT jest podobna do zwykłej strony HTML. Zawiera znacznik <body> oraz <head> i umożliwia wyświetlanie kombinacji danych HTML i XML na stronie. Fragment XSLT jest kawałkiem kodu, używanym przez oddzielny dokument, wyświetlający sformatowane dane XML. W odróżnieniu do pełnej strony XSLT, jest to niezależny plik, który nie zawiera znacznika <body> lub <head>. Jeśli chcesz wyświetlić dane XML na samodzielnej stronie, utwórz całą stronę XSLT i skojarz z nią swoje dane XML. Jeśli jednak chcesz wyświetlić dane XML w określonej części istniejącej strony dynamicznej (np. dynamiczna strona główna dla sklepu z artykułami sportowymi z wyświetlanym obok kanałem RSS wyników sportowych), utwórz fragment XSLT i wstaw do niego odnośnik na dynamicznej stronie. Najczęściej stosuje się tworzenie fragmentów XSLT i używanie ich razem z innymi stronami dynamicznymi do wyświetlania danych XML.

Pierwszym etapem tworzenia stron tego typu jest utworzenie fragmentu XSLT. Jest to oddzielny plik zawierający układ, formatowanie i inne informacje dotyczące danych XML, które są przeznaczone do wyświetlania na stronie dynamicznej. Po utworzeniu fragmentu XSLT wstawisz odniesienie do niego na określonej stronie dynamicznej (np. PHP lub stronę ColdFusion). Wstawione odniesienie do danego fragmentu działa podobnie jak SSI (Server Side Include) — sformatowane dane XML (fragment) są umieszczane w oddzielnym pliku, podczas gdy w widoku Projekt, na stronie dynamicznej jest wyświetlany element zastępczy dla tego fragmentu. Jeśli przeglądarka wymaga dynamicznej strony z odniesieniem do danego fragmentu, to serwer opracowuje dołączone instrukcje i tworzy nowy dokument, w którym sformatowana zawartość fragmentu jest wyświetlana zamiast elementu zastępczego.

A. Przeglądarka żąda strony dynamicznej B. Serwer WWW odnajduje stronę i przekazuje ją do serwera aplikacji C. Serwer aplikacji skanuje stronę w poszukiwaniu instrukcji i pobiera fragment danych XSLT D. Serwer aplikacji wykonuje przekształcenie (czyta fragment danych XSLT, a następnie pobiera i formatuje dane xml) E. Serwer aplikacji wstawia przekształcony fragment danych na stronie i przekazuje go z powrotem na serwer WWW F. Serwer WWW odsyła ukończoną stronę do przeglądarki 

Zachowanie serwera Przekształcenie XSL jest używane do wstawiania odniesienia do fragmentu XSLT na stronie dynamicznej. Po wstawieniu odniesienia program Dreamweaver tworzy podfolder w folderze głównym serwisu, w którym znajduje się plik runtime library. Serwer aplikacji używa funkcji zdefiniowanych w tym pliku podczas przekształcania określonych danych XML. Plik ten jest odpowiedzialny za dostarczanie danych XML i fragmentów XSLT, wykonywanie przekształceń XSL oraz przedstawianie efektów na stronie internetowej.

Plik z fragmentem XSLT, plik XML z danymi oraz wygenerowany plik run-time library muszą się znajdować na serwerze danej strony, jeśli mają być poprawnie wyświetlane. (Jeśli zaznaczysz zdalny plik XML jako źródło danych (np. jeden z kanału RSS), to plik taki musi oczywiście znajdować się gdzieś w Internecie).

Programu Dreamweaver można również używać do tworzenia całych stron XSLT przeznaczonych do przekształceń po stronie serwera. Pełna strona XSLT działa dokładnie tak samo jak fragment XSLT, z tą tylko różnicą, że przy wstawianiu odniesienia do pełnej strony XSLT przy pomocy zachowania serwera Przekształcenie XSL, wstawia się w rzeczywistości pełną zawartość strony HTML. Oznacza to, że strona dynamiczna (strona .cfm, .php. lub .asp zachowująca się tak jak strona kontenerowa) przed wstawieniem odniesienia musi zostać pozbawiona całego kodu HTML.

Program Dreamweaver obsługuje przekształcenia XSL dla stron ColdFusion, ASP i PHP.

Uwaga:

Serwer musi być poprawnie skonfigurowany do wykonywania przekształceń po stronie serwera. Dodatkowe informacje można uzyskać od administratora serwera.

Przekształcenia XSL po stronie klienta

Przekształcenia XSL po stronie klienta są wykonywane bez użycia serwera aplikacji. W takim przypadku programu Dreamweaver można użyć do utworzenia pełnej strony XSLT, ale przekształcenia po stronie klienta wymagają opracowania pliku XML, który zawiera dane przeznaczone do wyświetlania. Warto też pamiętać, że przekształcenia po stronie klienta są wykonywane tylko w przeglądarkach bardziej nowoczesnych (Internet Explorer 6, Netscape 8, Mozilla 1.8 i Firefox 1.0.2). 

Na początek utwórz całą stronę XSLT i dołącz źródło danych XML. (Program Dreamweaver przypomina o dołączeniu źródła danych przy tworzeniu nowej strony). Strona XSLT może być tworzona od początku lub konwertowana z istniejącej strony HTML na XSLT. Przy konwersji istniejącej strony HTML na XSLT musisz dołączyć źródło danych XML, korzystając z panelu Związki (Okno > Związki).

Po utworzeniu strony XSLT musisz dołączyć ją do pliku XML zawierającego dane XML poprzez wstawienie odniesienia do strony XSLT w samym pliku XML (podobnie jak w przypadku wstawiania odniesienia do zewnętrznego arkusza stylów CSS w części <head> strony HTML). Osoby odwiedzający serwis muszą wyświetlać w przeglądarce plik XML, zamiast strony XSLT. Przy przeglądaniu strony, przeglądarka wykonuje przekształcenia XSL i wyświetla dane XML, sformatowane przez dołączoną stronę XSLT.

Związek pomiędzy dołączonymi stronami XSLT i XML jest podobny,ale nie identyczny z zewnętrznym modelem strony CSS/HTML. W przypadku strony HTML posiadającej zawartość (np. tekst) używa się zewnętrznego arkusza stylów do formatowania zawartości. Strona HTML określa zawartość, a zewnętrzny kod CSS, który nie jest widoczny dla użytkownika, określa prezentację. W przypadku XSLT i XML sytuacja jest odwrotna. Plik XML (który dla użytkownika nie jest widoczny w swojej podstawowej formie), określa zawartość, a strona XSLT określa prezentację. Strona XSLT zawiera tabele, układ, grafiki i inne elementy, które zawiera zwykle standardowy plik HTML. Podczas wyświetlania pliku XML w przeglądarce, strona XSLT formatuje zawartość.

A. Przeglądarka żąda pliku XML B. Serwer odpowiada, wysyłając plik XML do przeglądarki C. Przeglądarka czyta dyrektywę XML i wywołuje plik XSLT D. Serwer wysyła plik XSLT do przeglądarki E. Przeglądarka przekształca dane XML i wyświetla je w swoim oknie 

Gdy użytkownik przyłącza stronę XSLT do strony XML w programie Dreamweaver, program wstawia odpowiedni kod w górnej części strony XML. Jeśli jesteś właścicielem strony XML, do której tworzysz łącze (tzn. jeśli dany plik XML znajduje się wyłącznie na Twoim serwerze), to wystarczy wstawić odpowiedni kod łączący obie strony w programie Dreamweaver . Jeśli jesteś właścicielem pliku XML, to przekształcenia XSL wykonywane przez klienta są całkowicie dynamiczne. Oznacza to, że przy jakiejkolwiek aktualizacji danych w pliku XML, wyjściowy plik HTML używający dołączonej strony XSLT będzie automatycznie uaktualniany nowymi informacjami.

Uwaga:

Pliki XML i XSL używane dla przekształceń po stronie klienta muszą się znajdować w tym samym katalogu. Jeśli tak nie jest, to przeglądarka odczyta plik XML i znajdzie stronę XSLT dal przekształcenia, ale nie znajdzie zasobów (arkuszy stylów, obrazów itp.), zdefiniowanych przez odpowiednie łącza na stronie XSLT.

Jeśli nie jesteś właścicielem strony XML, do której utworzono łącze (np. jeśli chcesz używać danych z kanału RSS spoza Internetu), to obieg pracy jest bardziej złożony. Aby wykonać przekształcenia po stronie klienta przy pomocy danych XML pochodzących ze źródła zewnętrznego, musisz najpierw pobrać plik źródła XML do katalogu, w którym znajduje się strona XSLT. Jeśli strona XML znajduje się na serwisie lokalnym, to można użyć programu Dreamweaver do dodania odpowiedniego kodu łączącego ją ze stroną XSLT i przekazać obie strony (pobrany plik XML i dołączoną stronę XSLT) na serwer sieciowy. Podczas wyświetlania pliku XML w przeglądarce, strona XSLT formatuje zawartość tak, jak w poprzednim przykładzie.

Wadą wykonywania przekształceń XSL po stronie klienta na danych XML pochodzących ze źródła zewnętrznego jest fakt, że dane XML są tylko częściowo „dynamiczne”. Plik XML wczytywany i zmieniany jest zaledwie „zdjęciem” pliku znajdującego się gdzieś w Internecie. Jeśli oryginalny plik XML zmienia się w Internecie, to musisz powtórnie pobrać plik oryginalny, dołączyć go do strony XSLT i ponownie wysłać plik XML do serwera sieciowego. Przeglądarka renderuje tylko te dane, które otrzymuje z pliku XML na serwer sieciowy, a pomija dane zawarte w oryginalnym pliku źródłowym XML.

Dane XML i powtarzalne elementy

Obiekt XSLT Powtarzalny region umożliwia wyświetlanie powtarzalnych elementów z pliku XML na stronie. Dowolny region zawierający element zastępczy danych XML może być zamieniony na region powtarzalny. Najczęściej występującymi regionami są tabele, wiersze tabeli lub seria wierszy tabeli.

Podany przykład ilustruje stosowanie obiektu XSLT Powtarzalny region do wiersza tabeli wyświetlającego menu dla restauracji. Wstępny wiersz zawiera trzy różne elementy ze schematu XML: element, opis i cenę. Jeśli obiekt XSLT Powtarzalny region jest stosowany do wiersza tabele, a strona jest opracowywana przez serwer aplikacji lub przeglądarkę, to tabela jest powtarzana z unikalnymi danymi, wstawianymi do każdego nowego wiersza tabeli.

Przy okazji zastosowania obiektu XSLT Powtarzalny region do elementu w oknie Dokumentu, wokół powtarzalnego elementu jest wyświetlany cienki, szary obrys. Jeśli przeglądasz kompozycję w przeglądarce (Plik > Podgląd w przeglądarce), to szary obrys znika, a zaznaczenie rozszerza się, wyświetlając określone elementy powtarzalne w pliku XML tak, jak na wcześniejszej ilustracji.

Jeśli dodajesz obiekt XSLT Powtarzalny region na stronę, to długość elementu zastępczego danych XML w oknie Dokumentu jest obcinana. Dzieje się tak, ponieważ program Dreamweaver uaktualnia wyrażenie XPath (język ścieżki XML) dla elementu zastępczego XML, aby był adekwatny do ścieżki elementu powtarzalnego.

Poniższy przykład kodu jest przeznaczony dla tabeli z dwoma dynamicznymi elementami zastępczymi, bez obiektu XSLT Powtarzalny region stosowanego do tabeli:

<table width="500" border="1">
<tr>
<td><xsl:value-of select="rss/channel/item/title"/></td>
</tr>
<tr>
<td><xsl:value-of select="rss/channel/item/description"/></td>
</tr>
</table>
<table width="500" border="1"> <tr> <td><xsl:value-of select="rss/channel/item/title"/></td> </tr> <tr> <td><xsl:value-of select="rss/channel/item/description"/></td> </tr> </table>
<table width="500" border="1"> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/title"/></td> 
    </tr> 
    <tr> 
        <td><xsl:value-of select="rss/channel/item/description"/></td> 
    </tr> 
</table>

Podany kod jest przeznaczony dla tej samej tabeli z zastosowanym obiektem XSLT Powtarzalny region:

<xsl:for-each select="rss/channel/item">
<table width="500" border="1">
<tr>
<td><xsl:value-of select="title"/></td>
</tr>
<tr>
<td><xsl:value-of select="description"/></td>
</tr>
</table>
</xsl:for-each>
<xsl:for-each select="rss/channel/item"> <table width="500" border="1"> <tr> <td><xsl:value-of select="title"/></td> </tr> <tr> <td><xsl:value-of select="description"/></td> </tr> </table> </xsl:for-each>
<xsl:for-each select="rss/channel/item"> 
    <table width="500" border="1"> 
        <tr> 
            <td><xsl:value-of select="title"/></td> 
        </tr> 
        <tr> 
            <td><xsl:value-of select="description"/></td> 
        </tr> 
    </table> 
</xsl:for-each>

W poprzednim przykładzie program Dreamweaver zamiast całego dokumentu uaktualnił ścieżkę XPath dla elementów wewnątrz regionu powtarzalnego (tytuł i opis)tak aby była ścieżką względną w odniesieniu do ścieżki XPath otaczających ją znaczników <xsl:for-each>.

Program Dreamweaver generuje wyrażenia XPath odnoszące się do kontekstu także w innych przypadkach. Na przykład jeśli przeciągniesz element zastępczy danych XML na tabelę, do której zastosowano już obiekt XSLT Powtarzalny region, to program Dreamweaver automatycznie wyświetli ścieżkę XPath odpowiednią do istniejącej ścieżki XPath istniejącej w znacznikach <xsl:for-each>.

Podgląd danych XML

Jeśli używasz opcji Podgląd w przeglądarce (Plik > Podgląd w przeglądarce) do wyświetlania danych XML wstawionych do fragmentu XSLT lub całej strony XSLT, to napęd wykonujący przekształcenie XSL różni się w zależności od sytuacji. W przypadku dynamicznych stron z fragmentami XSLT, serwer aplikacji zawsze wykonuje przekształcenie. W innych przypadkach przekształcenie może wykonać program Dreamweaver lub przeglądarka.

W podanej tabeli znajduje się lista sytuacji, w których jest używana opcja Podgląd w przeglądarce i mechanizmy wykonujące odpowiednie przekształcenia.

Typ strony wyświetlanej w przeglądarce

Przekształcenie danych wykonane przez

Dynamiczna strona zawierająca fragment XSLT

Serwer aplikacji

Fragment XSLT lub cała strona XSLT

Dreamweaver

Plik XML z łączem do całej strony XSLT

Przeglądarka

Wymienione tematy zawierają wskazówki na temat wyboru odpowiedniej metody przeglądu.

Podgląd stron przeznaczonych do przekształceń po stronie serwera

W przypadku przekształceń po stronie serwera, zawartość serwisu widoczna dla użytkownika jest przekształcana przez serwer aplikacji. Przy budowie stron XSLT i dynamicznych przeznaczonych dla przekształceń po stronie serwera, zaleca się utworzenie podglądu strony dynamicznej zawierającej fragment XSLT, zamiast samego fragmentu XSLT. W opisanej operacji, używa się serwera aplikacji, który zapewnia zgodność danego podglądu z formą strony widoczną dla użytkowników serwisu. W drugiej z opisanych operacji program Dreamweaver wykonuje przekształcenie, co może spowodować nieznacznie nieprawidłowe rezultaty. Programu Dreamweaver można używać do tworzenia podglądu fragmentu XSLT w trakcie jego budowania, ale najbardziej dokładne efekty renderowania danych są widoczne po zastosowaniu serwera aplikacji do podglądu strony dynamicznej po wstawieniu fragmentu XSLT.

Podgląd stron przeznaczonych do przekształceń po stronie klienta

W przypadku przekształceń po stronie klienta, zawartość serwisu widoczna dla użytkownika jest przekształcana przez przeglądarkę. Operacja jest wykonana poprzez dodanie łącza od pliku XML do strony XSLT. Otwarcie pliku XML w programie Dreamweaver i wyświetlenie w postaci podglądu w przeglądarce oznacza pobranie pliku XML przez przeglądarkę i wykonanie w niej przekształcenia. Operacja taka zapewnia odbiór pliku w postaci dostępnej dla użytkowników serwisu.

Warto jednak pamiętać, że podejście takie utrudnia debugowanie strony, ponieważ przeglądarka przekształca XML i generuje HTML wewnętrznie. Jeśli wybierzesz opcję przeglądarki Pokaż źródło do debugowania wygenerowanego HTML, to zobaczysz tylko oryginalny XML, otrzymany przez przeglądarkę, zamiast pełnego HTML (znaczniki, style itd.), odpowiedzialnego za renderowanie strony. Aby wyświetlić pełny plik HTML przy wyświetlaniu kodu źródłowego, musisz utworzyć podgląd strony XSLT w przeglądarce.

Podgląd całych stron XSLT i fragmentów XSLT

Przy tworzeniu całych stron XSLT i fragmentów XSLT trzeba wyświetlać podgląd pracy, aby upewnić się, że dane są wyświetlane poprawnie. Jeśli używasz opcji Podgląd w przeglądarce do wyświetlania całej strony XSLT lub fragmentu XSLT, to program Dreamweaver wykona przekształcenie za pomocą wbudowanego mechanizmu przekształceń. Metoda ta przynosi szybkie efekty i ułatwia stopniowe budowanie i debugowanie strony. Dodatkowym jej atutem jest sposób wyświetlania pełnej strony HTML (ze znacznikami, stylami itp.) poprzez zaznaczenie opcji Pokaż źródło, w przeglądarce.

Uwaga:

Taka metoda podglądu jest często używana na początku budowania stron XSLT, bez względu na to, czy używasz klienta, czy serwera do przekształcenia danych.

Pomoc dostępna szybciej i łatwiej

Nowy użytkownik?