XML - Politechnika Wrocławska :: Wydział Geoinżynierii, Górnictwa i
Transkrypt
XML - Politechnika Wrocławska :: Wydział Geoinżynierii, Górnictwa i
podyplomowe studium „Systemy Informacji Geograficznej” - Politechnika Wrocławska - Wydział Geoinżynierii, Górnictwa i Geologii Janusz Cieśla XML - budowa i formatowanie dokumentu * XML XML jest podzbiorem języka SGML (Standard Generalized Markup Language [ISO 8879]). Został opracowany przez XML Working Group pod auspicjami konsorcjum W3C (World Wide Web Consortium) w 1996 głównie dla potrzeb Internetu. Język XML opisuje klasę obiektów zwanych dokumentami XML. Moduł oprogramowania umożliwiający czytanie dokumentów XML nazywany jest procesorem XML. Dokument XML i definicja typu dokumentu (DTD) Dokument XML składa się z jednej lub większej liczby jednostek - encji (entities), którym w większości przypadków przypisane są nazwy. Główna encja dokumentu jest poprzedzona deklaracją XML, określającą wersję języka, na przykład: <?xml version="1.0"?> uzupełnioną ewentualnie o inne informacje (sposób kodowania znaków, ...). Inną częścią początku dokumentu może (i powinna) być definicja typu dokumentu (DTD - document type definition) - wskazana jako adres URI <?xml version="1.0"?> <!DOCTYPE powitanie SYSTEM "powitanie.dtd"> lub umieszczona w treści dokumentu <?xml version="1.0" <!DOCTYPE powitanie <!ELEMENT powitanie ]> <powitanie>Witajcie encoding="UTF-8" ?> [ (#PCDATA)> !</powitanie> Definicja typu dokumentu opisuje gramatykę - definiuje budowę elementów, ich atrybuty i pewne inne cechy dokumentu lub klasy dokumentów. Pełna definicja DTD np. języka XHTML jest dość skompliko wana, ale DTD przygotowywane dla tworzonych dokumentów nie nastręcza trudności. Przykładowa DTD dla niewielkiej bazy danych <?xml version="1.0" <!ELEMENT mysqldump <!ELEMENT database <!ELEMENT table <!ELEMENT row <!ELEMENT field <!ATTLIST database <!ATTLIST table <!ATTLIST field encoding="ISO-8859-1"?> (database*)> (table*)> (row*)> (field+)> (#PCDATA)> name CDATA #REQUIRED> name CDATA #REQUIRED> name CDATA #REQUIRED> zawiera nazwy elementów, typ (#PCDATA, CDATA), operator liczby wystąpień (* może wystąpić dowolną liczbę razy – w tym 0; + musi wystąpić przynajmniej raz, ? może wystąpić najwyżej raz, brak operatora - musi wystąpić jeden raz) Dokument XML musi być poprawny składniowo (well-formed) i może być poprawny strukturalnie (valid) - zgodny ze wskazaną DTD. Treść dokumentu XML nie zawiera żadnych informacji o sposobie prezentacji - jest jedynie zbiorem da nych. * opracowanie NIE jest kursem XML, XLS(T), CSS, ... Janusz Cieśla, „XML - budowa i formatowanie dokumentu”, materiały do zajęć, Wrocław 2006 1/4 podyplomowe studium „Systemy Informacji Geograficznej” - Politechnika Wrocławska - Wydział Geoinżynierii, Górnictwa i Geologii Formatowanie XML kaskadowymi arkuszami stylu (CSS) Formatowanie dokumentu XML arkuszami CSS nie jest metodą zalecaną, ale ma pewne zalety – jest pro sta, niemal identyczna z formatowaniem dokumentów HTML i „dobrze widziana” przez większość przeglą darek. Plik, w którym zdefiniowano atrybuty CSS poszczególnych encji dokumentu dołącza się po deklaracji XML podobnie jak w HTML: <?xml version="1.0" encoding="windows-1250" ?> <?xml-stylesheet version="1.0" href="pierwszy.css" type="text/css"?> a sam zbiór definicji nie różni się od CSS’a używanego do formatowania HTML’a pierwszy { padding:50px; font-size:24pt; font-family:tahoma,verdana,arial,sans-serif; color:#ff0000; font-weight:bold; background-color:#eeeeee; display:block; text-align:left; } i skojarzony z głównym dokumentem, o treści: <?xml version="1.0" encoding="windows-1250" ?> <?xml-stylesheet version="1.0" href="pierwszy.css" type="text/css"?> <pierwszy>Pierwszy dokument XML</pierwszy> wyświetla sformatowany obiekt Formatowanie dokumentu XML arkuszami stylów nie pozwala na przekształcenie danych zawartych w głównym dokumencie. Janusz Cieśla, „XML - budowa i formatowanie dokumentu”, materiały do zajęć, Wrocław 2006 2/4 podyplomowe studium „Systemy Informacji Geograficznej” - Politechnika Wrocławska - Wydział Geoinżynierii, Górnictwa i Geologii Formatowanie arkuszami XSL Język XSL (EXtensible Stylesheet Language) ma strukturę XML, jest jednym z jego słowników. Przetwarzanie dokumentu przez XSL odbywa się w dwóch etapach: • transformacji dokumentu przez XSLT (XSL Transformations) do postaci drzewa zbudowanego z siedmiu kategorii węzłów (głównego, elementów, tekstów, atrybutów, komentarzy, instrukcji przetwarzania i przestrzeni nazw) • formatowania otrzymanego drzewa. W arkuszu XSL musi być zadeklarowana tzw. przestrzeń nazw (name space) <xsl:stylesheet version="1.0" xmlns:xsl=http://www.w3.org/1999/XSL/Transform> Dokument XML z poprzedniego przykładu, sformatowany arkuszem XSL, o treści: <?xml version="1.0" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" encoding="Windows-1250" media-type="text/html" omit-xml-declaration="no" indent="yes" /> <xsl:template match="/"> <html> <head> <title>Pierwszy dokument XML</title> </head> <body> <h1 style="font-size:24pt; font-family:tahoma,verdana,arial,sans-serif; color:#00ff00;"> <xsl:value-of select="pierwszy" /> </h1> </body> </html> </xsl:template> </xsl:stylesheet> daje w wyniku obiekt Janusz Cieśla, „XML - budowa i formatowanie dokumentu”, materiały do zajęć, Wrocław 2006 3/4 podyplomowe studium „Systemy Informacji Geograficznej” - Politechnika Wrocławska - Wydział Geoinżynierii, Górnictwa i Geologii Włączanie arkuszy CSS do dokumentu wynikowego Włączenie do arkusza XSL arkusza CSS upraszcza znacznie jego strukturę i jest możliwe przez wykorzy stanie tzw. elementów dosłownych (literal result elements), stanowiących zasadniczy szkielet każdego dokumentu XSL. Wystarczy w treści XSL umieścić w sekcji head umieścić wiersz postaci <link rel="stylesheet" href="ucz.css" type="text/css" /> (fragment pliku ucz_1.xsl) aby można było w dalszej części używać zawartych w dołączonym CSS deklaracji. Generowanie dokumentu HTML z zestawu XML/XSL W pewnych przypadkach może być potrzebne utworzenie zbioru w formacie HTML z zestawu XML i XSL. W zasobach Internetu można znaleźć wiele aplikacji realizujących tę operację. Jedną z najprostszych w użyciu i niezawodną jest Saxon, pracujący w wersji Instant w trybie znakowym. Uruchomienie: saxon nazwa_zbioru_xml nazwa_zbioru_xsl > nazwa_zbioru_wynikowego Program można pobrać z http://gis.pwr.wroc.pl/xml/programy . MySQL i XML Jeden z programów pakietu MySQL - mysqldump pozwala użytkownikowi o odpowiednich uprawnie niach wyprowadzenie zawartości bazy lub tabeli bazy w formacie XML. Uruchomienie: mysqldump -u nazwa_użytkownika -p nazwa_bazy –X [nazwa_tabeli] > nazwa_xml Pominięcie nazwy tabeli spowoduje wyprowadzenie wszystkich tabel bazy. Przykład utworzonego w ten sposób zbioru (z pewnymi modyfikacjami): http://gis.pwr.wroc.pl/xml/xml-xsl-css/ucz.xml Inne formaty plików wynikowych Formatowanie arkuszami XSL(T) stwarza możliwości utworzenia zbiorów w formacie innym niż HTML, np. MathML (język opisu formuł matematycznych), CML (chemicznych), SVG (skalowalna grafika wekto rowa) i dowolnym innym, zdefiniowanym przez użytkownika. Przykład użycia tego samego pliku XML do wygenerowania HTML i SVG można znaleźć: plik danych XML (bez deklaracji XML) http://gis.pwr.wroc.pl/xml/xml-xsl-css/sprzedaz.xml arkusz dla HTML http://gis.pwr.wroc.pl/xml/xml-xsl-css/sprzedaz_htm.xsl arkusz dla SVG http://gis.pwr.wroc.pl/xml/xml-xsl-css/sprzedaz_svg.xsl i wygenerowane z nich zbiory HTML http://gis.pwr.wroc.pl/xml/xml-xsl-css/sprzedaz.htm SVG http://gis.pwr.wroc.pl/xml/xml-xsl-css/sprzedaz.svg Inne przykłady można pobrać z adresu http://gis.pwr.wroc.pl/xml/xml-xsl-css/ Janusz Cieśla, „XML - budowa i formatowanie dokumentu”, materiały do zajęć, Wrocław 2006 4/4