XML DTD XML Schema CSS

Podobne dokumenty
LABORATORIUM 5 WSTĘP DO SIECI TELEINFORMATYCZNYCH WPROWADZENIE DO XML I XSLT

29. Poprawność składniowa i strukturalna dokumentu XML

Rola języka XML narzędziem

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

XML extensible Markup Language. Paweł Chodkiewicz

WYKŁAD 1 METAJĘZYK SGML CZĘŚĆ 1

Dokument poprawnie sformułowany jest zgodny z ogólnymi zasadami składniowymi:

Kurs WWW Język XML, część I

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD, XML Schema. Struktura logiczna dokumentu XML. Składnia XML. Encje predefiniowane.

DTD - encje ogólne i parametryczne, przestrzenie nazw

Wprowadzenie do technologii XML

Plan dzisiejszego wykładu. Narzędzia informatyczne w językoznawstwie. XML - Definicja. Zalety XML

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Przykładowy dokument XML

LAB 7. XML EXtensible Markup Language - Rozszerzalny Język Znaczników XSD XML Schema Definition Definicja Schematu XML

Jak wygląda XML? Definiowanie typów dokumentów. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków. Poprawność dokumentów

Extensible Markup Language (XML) Wrocław, Java - technologie zaawansowane

XML w sosie własnym. Standard XML wraz z DTD, przestrzenie nazw, projektowanie struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

Aplikacje internetowe laboratorium XML, DTD, XSL

Jak wygląda XML? Definiowanie typów dokumentów Część 1. DTD. Struktura logiczna dokumentu XML. Podstawy składni XML. Definiowanie języków

Technologie zarządzania treścią

extensible Markup Language, cz. 1 Marcin Gryszkalis, mg@fork.pl

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

Podstawy języka XML. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

XML extensible Markup Language. część 3

Plan prezentacji DTD. Wiązanie DTD z dokumentem XML Deklaracja typu dokumentu. Co to jest DTD. Wstęp. Przedmiot: XML i jego zastosowania

Język XML Schema. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

- wewnątrz elementów prostych występuje tylko jeden typ danych, wewnątrz złoŝonych nie moŝemy dokładnie określić liczby wystąpień elementu

Semistrukturalne bazy danych Wykład dla studentów matematyki

XML Schema. Bartłomiej Świercz. Łódź, 19 listopada 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz XML Schema

Przetwarzanie dokumentów XML i zaawansowane techniki WWW Wykład 02

Środowisko XML (Extensible Markup Language).

ABC języka HTML i XHTML / Maria Sokół. wyd. 2. Gliwice, cop Spis treści

c TP: anything: 13 listopada 2004 roku 1

Po zakończeniu rozważań na temat World Wide Web, poznaniu zasad organizacji witryn WWW, przeczytaniu kilkudziesięciu stron i poznaniu wielu nowych

INTEGRACJA I EKSPLORACJA DANYCH

XHTML - Extensible Hypertext Markup Language, czyli Rozszerzalny Hipertekstowy Język Oznaczania.

XML extensible Markup Language. część 1

WYKŁAD 2 DTD DOCUMENT TYPE DEFINITION CZĘŚĆ 1

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

extensible Markup Language, cz. 4 Marcin Gryszkalis, mg@fork.pl

Dlaczego GML? Gdańsk r. Karol Stachura

E.14.1 Tworzenie stron internetowych / Krzysztof T. Czarkowski, Ilona Nowosad. Warszawa, Spis treści

Dokumenty SEDU składają się z dwóch części: Opisu sprawy Formularza elektronicznego

Elementarz HTML i CSS

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema. Elementy czy atrybuty? Wartości domyślne i ustalone. Elementy czy atrybuty?

Przykładowy dokument XML

GML w praktyce geodezyjnej

Rok akademicki: 2013/2014 Kod: ZZIP IN-s Punkty ECTS: 2. Kierunek: Zarządzanie i Inżynieria Produkcji Specjalność: Informatyka w zarządzaniu

Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

Narzędzia informatyczne w językoznawstwie

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Kurs HTML 4.01 TI 312[01]

2 Podstawy tworzenia stron internetowych

Wprowadzenie do XML schema

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

Kaskadowe arkusze stylów (CSS)

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

Podstawy (X)HTML i CSS

PROGRAMOWANIE. WNPiD UAM, Programowanie, inż. Piotr Jabłoński

XML extensible Markup Language 1

XML Schema w przykładach

Model semistrukturalny

XML Schema. Typy proste, wyprowadzanie typów, modularyzacja schematu. Patryk Czarnik. Instytut Informatyki UW

Tom 6 Opis oprogramowania

rk HTML 4 a 5 różnice

MINISTERSTWO SPRAW WEWNĘTRZNYCH I ADMINISTRACJI DEPARTAMENT INFORMATYZACJI

Wprowadzenie do technologii XML

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

CSS. Kaskadowe Arkusze Stylów

Bazy danych i strony WWW

Format danych adnotacji do tytułów wykonawczych przekazywanych do organów egzekucyjnych przez epuap w związku ze zbiegiem egzekucji

XML i nowoczesne metody zarządzania treścią

Dodatkowe możliwości RDF. Seminarium magisterskie Paweł Chrząszczewski

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

METODY REPREZENTACJI INFORMACJI

Plan prezentacji. Krótko o XML Arkusze stylów XSLT XSL XSL Path Przegląd konstrukcji języka i przykłady Narzędzia Podsumowanie Literatura

BAZY DANYCH. Dr hab. Sławomir Zadrożny, prof. PR

Egzamin z przedmiotu Projektowanie języków XML imię i nazwisko. Zadanie Suma Punkty Max Punkty

XPath XML Path Language. XPath. XSLT część 1. XPath data model. Wyrażenia XPath. Location paths. Osie (axes)

Kazienko P.: Rodzina języków XML. Software nr 6 (90) czerwiec 2002, s Rodzina języków XML. Przemysław Kazienko

Tworzenie Stron Internetowych. odcinek 6

XML i nowoczesne technologie zarządzania treścią 2007/08

IDEA TWORZENIA DOKUMENTÓW W FORMACIE XML

Struktura języka HTML ZNACZNIKI. Oto bardzo prosta strona WWW wyświetlona w przeglądarce: A tak wygląda kod źródłowy takiej strony:

Zasady budowy i przekazywania komunikatów wykorzystywanych w Systemie IT KDPW_CCP

XML i nowoczesne technologie zarządzania treścią

Przetwarzanie dokumentów XML za pomocą XSLT ( r.)

Przedmiot: Grafika komputerowa i projektowanie stron WWW

Podstawy XML-a. Zaawansowane techniki programowania

Szczegółowy opis języka HTML5 znajdziemy w specyfikacji, która jest dostępna pod adresem

Otwarte protokoły wymiany informacji w systemach ITS

I.Wojnicki, Tech.Inter.

Tworzenie Stron Internetowych. odcinek 5

Definiowanie typów dokumentów Część 1. DTD, XML Schema

Zasady budowy i przekazywania komunikatów XML dla rynku OTC w systemie KDPW_CCP

O stronach www, html itp..

Transkrypt:

XML XML czyli Extensible Markup Language (rozszerzalny język znaczników) można traktować jak stosunkowo prosty i elastyczny format tekstowy wywodzący się z SGML. Pierwotnie został zaprojektowany aby umożliwiać publikację dokumentów elektronicznych na wielką skalę. XML odgrywa znaczącą rolę w ramach wymiany różnego rodzaju danych w sieci WWW i nie tylko. XML to język, który został utworzony przez W3C, czyli World Wide Web Consortium, czyli podstawową organizację, która zajmuje się formułowaniem standardów sieciowych. XML jest oparty o znaczniki posiadające formę podobną jak w przypadku języka HTML. Jednak w odróżnieniu od HTML, w którym lista znaczników była narzucona, ogólna koncepcja XML zakłada możliwość tworzenia własnych znaczników i formułowania w ten sposób nowych języków. Dlatego też XML traktowany jest jako tzw. metajęzyk znaczników, ponieważ umożliwia tworzenie nowych języków znacznikowych. Kiedyś większość aplikacji posiadała swoje własne, często binarne niekompatybilne ze sobą formaty plików konfiguracyjnych, zbiorów danych wejściowych i innych. Ich obsługa i przetwarzanie wymagały wiele wysiłku ze strony programisty. XML-owa, znacznikowa koncepcja zapisu danych, zastąpiła tradycyjne rozwiązania. Można zauważyć, że w bardzo wielu programach komputerowych porzucono tradycyjne formaty na rzecz plików w formacie XML. Przykładem tego mogą być choćby pliki opisujące konfigurację projektów C++ Builder lub Delphi. Cech XML: jest językiem rozszerzalnym czyli można w ramach niego tworzyć własne nazwy znaczników i ich zbiory formułując w ten sposób nowe języki, lub choćby formaty danych; umożliwia tworzenie nowych języków, które określa się jako aplikacje XML; dane XML zapisywane są z reguły w formacie tekstowym, co niesie ze sobą wiele zalet, choćby taką, że mogą być one łatwo przenoszone pomiędzy różnymi programami czy systemami operacyjnymi; położony jest duży nacisk na oddzielenie formatu od zawartości; pliki XML powinny zawierać właściwe dane, natomiast ich wygląd i opis prezentacji często formułowany jest za pomocą innych technik np. CSS lub XSL. plik1.xml <?xml version="1.0" encoding="utf-8" standalone="yes"?> <DOKUMENT> <TYTUL> Witaj w XML </TYTUL> <KOMUNIKAT> Pierwszy dokument XML </KOMUNIKAT> </DOKUMENT> demonstruje prosty dokument XML. Wykorzystano 3 różne znaczniki zdefiniowane na jego potrzeby (DOKUMENT, TYTUL, KOMUNIKAT). Oprócz nich w dokumencie znalazła się także wartości tekstowe ( Witaj w XML, Pierwszy dokument XML ). 13 października 2015 Strona 1

WALIDACJA I PARSOWANIE Jedną z bardzo istotnych cech XML odróżniających go od niektórych innych języków takich jak np. HTML, jest to, że dokument musi być poprawnie sformułowany (well-formed) aby mógł być przetwarzany. Jeśli błędy wystąpią w dokumencie XML, to od razu na wstępie zostanie od odrzucony przez oprogramowanie przetwarzające. Dokument jest poprawnie sformułowany jeśli wypełnia reguły składniowe XML. Miejsce sprawdzania poprawności sformułowania w ramach etapów przetwarzania XML pokazuje rysunek. W pierwszej kolejności po wczytaniu dokumentu moduł parsera dokonuje sprawdzenia poprawności sformułowania jego zawartości. Najważniejsze kwestie w zakresie poprawnego formułowania dokumentu to: Rozpoczyna się deklaracją XML <?xml version="1.1" standalone="yes"?> Znacznik początkowy <coś> posiada zawsze znacznik końcowy </coś> Elementy puste kończą znaki /> np. <pusty /> Zawiera dokładnie jeden element główny, który zawiera wszystkie inne elementy Elementy nie mogą się przeplatać <imie> Agata </imie> Wartości atrybutów zawarte są w cudzysłowach lub <IMG SRC="poranek.jpg" alt= to jest obrazek poranek /> <element text="cudzysłów pojed. to &apos; a podw. to " "> Znaków < i & używaj tylko do otwierania znaczników i encji używaj zamienników < i & <h1> Tom & Jery </h1> dla <h1> Tom & Jery </h1> Używaj tylko encji predefiniowanych: & < > &apos; " Uwaga: każdy znak można zapisać jako &# i dziesiętny lub szesnastkowy kod znaku w Unicode np.: dla znaku Nazwy znaczników i atrybutów muszą zaczynać się od litery lub podkreślenia dalej mogą być litery, cyfry, podkreślenia, znaki i kropki. Komentarze oznaczamy: <!-- to jest komentarz --> 13 października 2015 Strona 2

Deklaracja XML, która służy do podania wersji standardu XML, standardu kodowania użytego do zapisania dokumentu i informacji czy dany dokument nie zawiera odwołań do źródeł zewnętrznych. <?xml version="1.0" encoding="ascii" standalone="yes"?> Jeśli w dokumencie brak jest deklaracji to przyjmuje się, że dane zostały zapisane w standarcie UTF-8, a dokument zawiera odwołania do źródeł zewnętrznych, czyli poniższa deklaracja, jest równoważna ustawieniom domyślnie przyjmowanym. <?xml version="1.0" encoding="utf-8" standalone="no"?> Wszystkie instrukcje przetwarzania zaczynają się <? i kończą?>. Ustawienie standalone="yes" określa że dokument jest samodzielny, czyli nie odwołuje się do tzw. encji zewnętrznych ani ich nie zawiera. W niektórych przypadkach można pominąć deklarację XML. Jest to zależne od wymagań programu, który będzie przetwarzał dokumenty. Dokument XML może zawierać większą liczbę instrukcji przetwarzania. Często wykorzystuje się je po to, by przekazać oprogramowaniu polecenie wykonania pewnej czynności związanej z przetwarzaniem XML np. wykorzystanie procesora XSLT do przetworzenia elementów, lub podłączenie i sformatowanie dokumentu za pomocą arkusza CSS. Ponieważ nie ma ograniczeń co do składni instrukcji przetwarzania, w dokumentach można stosować własne instrukcje, które mogą być obsługiwane za pomocą oprogramowania np. takiego które sami opracowujemy. Przykładem oryginalnej instrukcji przetwarzania mogła by być : <?wyszukaj nazwa="google" jezyk="pl"?> Poprawny dokument XML plik2.xml <?xml version="1.0" encoding="utf-8" standalone="yes"?> <DC nr_spotkania="2"> <pozdrowienie> Witajcie na kolejnych zajeciach!!! </pozdrowienie> <temat> XML & DTD </temat> <!-- komentarz w XML --> <zakres> <z> przykladowe dokumenty XML </z> > <z> arkusze stylow w XML </z> <z> przyklad najprostszego przeksztalcenia XSL dla XML <!-- komentarz w XML -- </z> <z> DTD konstrukcja </z> </zakres> <zadanie_zaliczajace/> <![CDATA[[dane ignorowane przez parser ('&','<')]]]> </DC> Sekcje CDATA pozwalają na zapisywanie w węzłach tekstowych znaków specjalnych bez stosowania referencji do znaków czy encji. Jedynym zabronionym w sekcji CDATA ciągiem znaków jest ]]>, który zawsze zamyka sekcję. Ten ciąg znaków jest także zabroniony w zawartości tekstowej 13 października 2015 Strona 3

dokumentu XML (dzięki temu w sekcji CDATA można zacytować dokument XML nie zawierający sekcji CDATA). Atrybuty czy elementy? Wartości atrybutów muszą być ujęte w cudzysłów: Nie ma sztywnych zasad jakie informacje umieszczać w elementach, a jakie w atrybutach. atrybuty nie mogą zawierać wielu wartości (elementy mogą) atrybuty nie mogą zawierać struktury drzewa (elementy mogą) atrybuty nie są łatwo rozszerzalne (dla przyszłych zmian) Atrybuty są trudne do odczytania i utrzymania. Najlepiej wykorzystywać elementy dla danych, a atrybuty dla informacji, które opisują dane. Rozbicie atrybutów na dane atomowe w przyszłości może ułatwić nawigację po dokumencie. Metadane (dane o danych) powinny być przechowywane jako atrybuty, a dane powinny być przechowywane w elementach. 13 października 2015 Strona 4

Parsowanie dokumentu XML w przeglądarce : plik3.xml <?xml version="1.0" encoding="utf-8"?> <pytanietestowe> <tresc> Do czego w HTML mozna uzyc konstrukcji: <div class="underline"> </tresc> <odpowiedza pkt="0">do podkreslenia tekstu</odpowiedza> <odpowiedzb pkt="1">do rozpoczecia nowego bloku tekstu z zastosowaniem klasy stylu o nazwie "underline"</odpowiedzb> <odpowiedzc pkt="-0.5">do wprowadzenia linii poziomej</odpowiedzc> </pytanietestowe> Użycie sekcji CDATA kończy problem plik3a.xml <?xml version="1.0" encoding="utf-8"?> <pytanietestowe> <tresc> <![CDATA[ Do czego w HTML moze byc wykorzystana konstrukcja: <div class="underline"> ]]> </tresc> <odpowiedza pkt="0">do podkreslenia tekstu</odpowiedza> <odpowiedzb pkt="1">do rozpoczecia nowego bloku tekstu z zastosowaniem klasy stylu o nazwie "underline"</odpowiedzb> <odpowiedzc pkt="-0.5">do wprowadzenia linii poziomej</odpowiedzc> </pytanietestowe> 13 października 2015 Strona 5

Na serwerze Pascal zostały zainstalowane narzędzia wspierające tworzenie dokumentów XML i ich przetwarzanie. osoby.xml <?xml version="1.0" encoding="utf-8"?> <dane> <imie>adam</imie> <nazwisko>kowalski</nazwisko> <imie>marek</imie> <nazwisko>abacki</nazwisko> <imie>andrzej</imie> <nazwisko>babacki</nazwisko> </dane> Sprawdzanie poprawności (parsowanie) dokumentu XML z wykorzystaniem programu xmllint. xmllint osoby.xml DTD DTD (ang. Document Type Definition) opisuje formalną strukturę dokumentu XML stanowi jego gramatykę. Reguły zawarte w pliku DTD m.in.: definiują elementy (np. nazwę elementu i miejsce występowania) charakteryzują typy danych elementów określają liczbę wystąpień elementu określają sposoby zagnieżdżeń tzw. hierarchiczną strukturę dokumentu Dokument XML spełniający wszystkie (!) reguły zawarte w DTD to dokument poprawny strukturalnie (ang. valid document). Na kod DTD w głównej mierze składają się definicje dopuszczalnych w dokumencie elementów. Nie jest istotna kolejność definiowania elementów. Ogólna składnia definicji elementu w DTD wygląda następująco: <!ELEMENT nazwaelementu (model_zawartości)> Dopuszczalna zawartość elementu: (#PCDATA) dowolna zawartość tekstowa EMPTY element pusty ANY dowolna zawartość (pusta lub nie) Wskaźniki liczby wystąpieńokreślają dozwoloną liczbę wystąpień danego elementu w dokumencie XML 13 października 2015 Strona 6

* 0 lub więcej wystąpień + 1 lub więcej wystąpień? 0 lub 1 wystąpienie, sekwencja alternatywa Atrybuty: <!ATTLIST nazwa_elementu nazwa_atrybutu typ_atrybutu kwalifikator_wartości wartość_domyślna... nazwa_atrybutu typ_atrybutu kwalifikator_wartości wartość_domyślna> typ_atrybutu ID - unikatowa (w ramach dokumentu) wartość identyfikatora, IDREF - wskaźnik do innego elementu (identyfikowanego z wykorzystaniem atrybutu typu ID), IDREFS - zbiór wskaźników (rozdzielone znakami białymi) do innych elementów (identyfikowanego z wykorzystaniem atrybutu typu ID), NMTOKEN - ciąg dozwolonych znaków, NMTOKENS - ciąg wartości NMTOKEN oddzielonych spacjami, (a b c) - jedna z podanych wartości (typ wyliczeniowy). kwalifikator_wartości #REQUIRED - wartość wymagana, musi zostać podana, #IMPLIED - wartość nie musi zostać podana, #FIXED - wartość stała. Dla dokumentu osoby.xml <!ELEMENT dane ( osoba* )> <!ELEMENT osoba ( imie, nazwisko )> <!ELEMENT imie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)> Deklaracje DTD można zawrzeć zarówno w dokumencie XML jak i w dokumencie zewnętrznym. Wewnętrzne DTD osoby_dtd.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE dane [ <!ELEMENT dane ( osoba* )> <!ELEMENT osoba ( imie, nazwisko )> <!ELEMENT imie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)> ]> <dane> <imie>adam</imie> <nazwisko>kowalski</nazwisko> korzeń dokumentu XML 13 października 2015 Strona 7

<imie>marek</imie> <nazwisko>abacki</nazwisko> <imie>andrzej</imie> <nazwisko>babacki</nazwisko> </dane> Zewnętrzne DTD osoby_dtd_plus.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE dane SYSTEM "osoby.dtd" > <dane> <imie>adam</imie> <nazwisko>kowalski</nazwisko> <imie>marek</imie> <nazwisko>abacki</nazwisko> <imie>andrzej</imie> <nazwisko>babacki</nazwisko> </dane> parametr SYSTEM zawiera względny lub bezwzględny adres URI do naszego pliku DTD osoby.dtd <!ELEMENT dane ( osoba* )> <!ELEMENT osoba ( imie, nazwisko )> <!ELEMENT imie (#PCDATA)> <!ELEMENT nazwisko (#PCDATA)> Kontrola poprawności walidacji dokumentu XML dokumentem DTD z wykorzystaniem programu xmllint. XML i DTD w jednym dokumencie XML xmllint valid osoby_dtd.xml XML i DTD w osobnych dokumentach xmllint valid osoby_dtd_out.xml XML i DTD w osobnych dokumentach. XML nie posiada informacji o DTD xmllint -dtdvalid osoby.dtd osoby.xml 13 października 2015 Strona 8

XML Schema XML Schema to standard umożliwiający dokładne opisanie drzewiastej struktury dokumentu XML oraz typów danych znajdujących się w elementach i atrybutach. Jest następcą DTD XML Schema rozszerza jego możliwości. XML Schema pozwala (w odróżnieniu od DTD) na określenie wzorców i typów zawartości zarówno elementów jak i atrybutów. Istnieje wiele typów zawartości, które można zawężać, oraz rozszerzać w zależności od potrzeb. W schematach XML Schema musi wystąpić: deklaracja XML; element główny (korzeń) schematu wraz z określeniem odpowiedniej przestrzeni nazw; definicja typów; deklaracja elementów i atrybutów. deklaracja XML osoby.xsd element główny wraz z określeniem przestrzeni nazw <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema"> <!-- deklaracja znacznikow --> <xsd:element name="dane" type="dane-typ"/> deklaracje elementów <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="imie" type="xsd:string"/> <!-- definicje typiow zlozonych --> <xsd:complextype name="dane-typ"> <xsd:sequence> <xsd:element name="osoba" type="osoba-typ" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="osoba-typ"> <xsd:sequence> <xsd:element ref="imie" maxoccurs="unbounded"/> <xsd:element ref="nazwisko"/> </xsd:sequence> </xsd:complextype> </xsd:schema> definicja typów Elementy proste: <nazwisko>kowalski</nazwisko> <wiek>20</wiek> <data_ur>1995-09-09</data_ur> Deklaracje XML Schema opisujące powyższy przykład <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="wiek" type="xsd:integer"/> <xsd:element name="data_ur" type="xsd:date"/> Ograniczenie typu prostego zawiera parametr base, który definiuje ograniczenie na element wiek <xsd:element name="wiek"> <xsd:simpletype> <xsd:restriction base="xsd:integer"> <xsd:mininclusive value="0"/> <xsd:maxinclusive value="120"/> </xsd:restriction> </xsd:simpletype> 13 października 2015 Strona 9

</xsd:element> Kontrola poprawności walidacji dokumentu XML dokumentem XML Schema z wykorzystaniem z programu xmllint. xmllint --schema osoby.xsd osoby.xml Encje wewnętrzne i zewnętrzne w dokumentach XML Encja ma swoją nazwę i wartość - fragment dokumentu. Aby można użyć danej encji należy ją zadeklarować w DTD (nie dotyczy to pięciu encji predefiniowanych) Encje predefiniowane: < < > > & & ' &apos; " " Procesor XML w trakcie przetwarzania dokumentu podstawia w miejsce referencji do encji odpowiednie wartości. Referencja do encji ogólnej w dokumencie ma postać &nazwa_encji; i może wystąpić poza DTD, natomiast deklaracja w DTD: <!ENTITY nazwa-encji wartość-encji> Można deklarować wiele encji o tej samej nazwie, jednak wykorzystana zostanie pierwsza. Wartość encji może być podana bezpośrednio w deklaracji ujęta w znaki " lub ', wtedy encję nazywamy wewnętrzną. Można też zadeklarować encję zewnętrzną - jest to uogólnienie pliku, czyli dodatkowy zasób dostępny dla procesora XML. Do identyfikacji encji zewnętrznej służy identyfikator systemowy lub identyfikator publiczny. Domyślnie encja po wstawieniu jest przetwarzana jako XML, powinna być fragmentem XML dającym się sparsować (jeśli jest znacznik otwierający, powinien być zamykający itp.), ponadto może zaczynać się od deklaracji analogicznej do deklaracji XML, podającej wersję XML i kodowanie. <!ENTITY wewnetrzna "zawartość encji"> <!ENTITY zewnetrzna_id_systemowy SYSTEM "http://www.serwis.com/opis.xml"> Przykład dokumentów XML z encjami (lista.xml, grupa1.xml i grupa2.xml). <?xml version="1.0" standalone="no"?> <!DOCTYPE lista [ <!ENTITY title "Lista osob" > <!ENTITY grupa1 SYSTEM "grupa1.xml"> <!ENTITY grupa2 SYSTEM "grupa2.xml"> ]> 13 października 2015 Strona 10

<lista> <title>&title;</title> &grupa1; &grupa2; </lista> <grupa> <imie>adam</imie> <nazwisko>kowal</nazwisko> <imie>marek</imie> <nazwisko>abacki</nazwisko> </grupa> <grupa> <imie>adam</imie> <nazwisko>cabacki</nazwisko> <imie>marek</imie> <nazwisko>dadacki</nazwisko> </grupa> Sprawdzanie poprawności dokumentu XML z wykorzystaniem programu xmllint. xmllint --noent lista.xml XML CSS Prezentacja zawartości dokumentów XML'owych w przeglądarkach jest możliwa przy wykorzystaniu technologii CSS i XSL. W pierwszej przypadku wystarczy wykorzystać kaskadowe arkusze styli (Cascading Style Sheets, CSS) do przetworzenia zawartości dokumentu XML, natomiast w drugim przypadku należy posłużyć się rozbudowaną technologią XSLT/XSL (extensible Stylesheet Language - Transformations).W pierwszej metodzie dokument XML jest sekwencyjnie przetwarzany przez przeglądarkę w oparciu o dołączony dokument CSS. Specyfikacja CSS stanowi język formatowania do elementów dokumentu pozwalający autorom i użytkownikom dołączać odpowiednie style do tych struktur. Przykład pliku CSS formatującego opisywany dokument XML osoby.css osoba { display: block; text-align:left } imie { font-style:italic } nazwisko { font-weight:bold } W celu wykorzystanie pliku CSS należy umieścić w dokumencie XML po linii deklaracji (jeżeli występują deklaracje typu, to też po nich) następujące polecenie. <?xml-stylesheet type="text/css" href="osoby.css"?> 13 października 2015 Strona 11

Zadanie Zaproponować i opracować strukturę pliku XML do przechowywania informacji o bibliotece, w której przechowujemy książki.poprawność wprowadzonych danych będzie kontrolowana przez odpowiedni plik DTD oraz Schema. Następnie należy przygotować odpowiedni plik CSS umożliwiający wyświetlenie danych w postaci listy posiadającej następujące pola: lp, tytuł książki, imię i nazwisko autora(autorów), wydawnictwo oraz cenę. 13 października 2015 Strona 12