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