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