I.Wojnicki, Tech.Inter.

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

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

Wprowadzenie do technologii XML

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

XML DTD XML Schema CSS

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

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

Rola języka XML narzędziem

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

XML extensible Markup Language. Paweł Chodkiewicz

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

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

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

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

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

XML extensible Markup Language. część 3

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

Wprowadzenie do technologii XML

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

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

DTD - encje ogólne i parametryczne, przestrzenie nazw

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

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

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

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

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

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

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

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

c TP: anything: 13 listopada 2004 roku 1

Podstawy (X)HTML i CSS

Narzędzia informatyczne w językoznawstwie

Aplikacje internetowe laboratorium XML, DTD, XSL

XML extensible Markup Language. część 1

Technologie zarządzania treścią

Przykładowy dokument XML

XML i nowoczesne metody zarządzania treścią

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

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

Zaawansowana Pracownia Komputerowa - Ćwiczenia. Krzysztof Miernik

Podstawy XML-a. Zaawansowane techniki programowania

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Wprowadzenie do XML. Tomasz Przechlewski

Środowisko XML (Extensible Markup Language).

XML i nowoczesne technologie zarządzania treścią

Wprowadzenie do XML schema

Elementarz HTML i CSS

XML extensible Markup Language 1

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

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

Aplikacje internetowe. Interfejs użytkownika

Kurs HTML 4.01 TI 312[01]

XML extensible Markup Language. część 4

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

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

Semistrukturalne bazy danych Wykład dla studentów matematyki

Programowanie internetowe

Przedmiot: Grafika komputerowa i projektowanie stron WWW

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

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

HTML DOM, XHTML cel, charakterystyka

XML i nowoczesne metody zarządzania treścią

METODY REPREZENTACJI INFORMACJI

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

XQuery. XQuery. Przykład. dokument XML. XQuery (XML Query Language) XQuery 1.0: An XML Query Language. W3C Recommendation

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

Model semistrukturalny

Technologie zarządzania treścią

1 XML w bazach danych

Kurs programowania. Wykład 7. Wojciech Macyna. 25 kwietnia 2017

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

Złożone komponenty JSF wg

Otwarte protokoły wymiany informacji w systemach ITS

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

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

Format HTML. Wybrane działy Informatyki Stosowanej. Definicja i przeznaczenie Struktura dokumentu Znaczniki Formularze i komponenty

rk HTML 4 a 5 różnice

XML Path Language (XPath)

GML w praktyce geodezyjnej

Stwórz dokument XML zawierający poniższe informacje. Wykorzystaj atrybuty.

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

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

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

- 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

INTEGRACJA I EKSPLORACJA DANYCH

Steganografia w HTML. Łukasz Polak

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

Prezentacja i transformacja

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

KARTA KURSU. Przetwarzanie dokumentów XML i zaawansowane techniki WWW

XML extensible Markup Language. część 2

Języki programowania wysokiego poziomu WWW

XML Schema. Forma nazwy lokalnych elementów i atrybutów

XML Schema. Alternatywne metody definiowania struktury dokumentów. Patryk Czarnik. Instytut Informatyki UW

WITRYNY I APLIKACJE INTERNETOWE

XML i nowoczesne metody zarządzania treścią

mgr inż. Jacek Staniec Język XML

XML extensible Markup Language. część 3

Technologie internetowe

Transkrypt:

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 1 / 70 SGML, Igor Wojnicki, Grzegorz J. Nalepa Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 11 czerwca 2012

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 2 / 70 Outline 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 3 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła SGML Wprowadzenie

SGML Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 4 / 70 Standard SGML SGML (ang. Standard Generalized Markup Language) powstał do zastosowań przemysłowych (formalizacja dokumentów prawnych) (1969) znalazł liczne zastosowania (wojsko, NATO, wydawnictwa) pozwala na definiowanie składni i semantyki języków w pełni uniwersalny definiuje się w nim HTML (walidacja!) umożliwia opis dowolnych języków znaczników metajęzyk SGML jest starszy od HTML,, W3C, WWW, Internet

SGML Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 5 / 70 Czym jest SGML standaryzowany metajęzyk, służy do tworzenia innych języków norma ISO: ISO 8879:1986 pozwala na definiowanie języków opisujacych strukturę dowolnie złożonych dokumentów zawiera mechanizmy badania poprawności składniowej umożliwia praktycznie dowolne konwersje dokumentów (dodatkowe pakiety) stał się niekwestionowanym standardem przemysłowym

SGML Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 6 / 70 DTD i walidacja język w SGML ma formalnie zdefiniowana gramatykę definicja gramatyki języka zawarta jest w DTD DTD = Document Type Definition DTD jest zapisana w EBNF parser SGML pozwala na przeprowadzenie weryfkiacji składniowej dokumentu ( walidacji ) bezbłędna walidacja oznacza poprawność składniowa dokumentu DTD jest konieczne przy pracy z SGML

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 7 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła SGML Zastosowanie

SGML Zastosowanie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 8 / 70 Aplikacje SGML język opisany w SGML przy pomocy DTD nazywa się aplikacja SGML DTD zawiera elementy i atrybuty, co pozwala na odpowiednie użycie znaczników DTD jest zawsze kluczowe dla aplikacji SGML zmiany w DTD wymuszaja konwersję dokumentów aplikacji przy pomocy SGML można zdefiniować HTML

SGML Zastosowanie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 9 / 70 Rozwój, zastosowania, ogranicznia SGML jest możliwie najogólniejszym językiem do tworzenia języków znaczników zastosowania w systemach tworzenia dokumentacji (DocBook) katalogowania dla przemysłu, dokumentów prawnych, itd. niezwykle rozbudowany trudności z implementacja narzędzi parsing uzależniony od DTD

SGML Zastosowanie Przykład I <!doctype linuxdoc system> <!-- Here s an SGML example file --> <article> <title>quick SGML Example <author>matt Welsh, <tt/mdw@cs.cornell.edu/ <date>v1.0, 28 March 1994 <abstract> This document is a brief example using the Linuxdoc-SGML DT </abstract> <toc> <sect>introduction Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 10 / 70

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 11 / 70 Przykład II SGML Zastosowanie <p> This is an SGML example file using the Linuxdoc-SGML DTD. You can format it using the command <tscreen><verb> % sgml2txt example.sgml </verb></tscreen> this will produce plain ASCII. You can also produce LaTeX, and GNU info. <sect>the source <p> Looking at the source for this file will be instructive to show you how to use many of the Linuxdoc-SGML constructs.

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 12 / 70 Przykład III SGML You should also read the <em/linuxdoc-sgml User s Guide/, in the file <tt/guide.sgml/. Zastosowanie The source looks and feels like LaTeX, as you can see. Paragraphs are separated by blank lines, macros are enclosed in angle brackets. It s quite simple. <sect>some examples <sect1>lists <p> Lists are easy as well. Just use the <tt/itemize/ element with the

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 13 / 70 Przykład IV SGML Zastosowanie <tt/item/ commands, seen here: <itemize> <item> This is a list. <item> Nothing exciting about that. <item> A final item to top it all off. </itemize> </article>

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 14 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Wprowadzenie

Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 15 / 70 Narodziny (ang. extensible Markup Language) podzbiór SGML ( NIE zastępuje SGML!) zorientowany na sieć integracja z protokołami od poczatku standaryzowany przez W3C rozszerzalny i modularny (a nie bardzo złożony) łatwy w nauce, użyciu i implementacji narzędzi to metajęzyk! (jak SGML)

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 16 / 70 Rozwój Wprowadzenie 1 Extensible Markup Language () 1.0 W3C Recommendation, 10.02.1998 www.w3.org/tr/1998/rec-xml-19980210 2 Extensible Markup Language () 1.0 (Fifth Edition), 26.11.2008, http://www.w3.org/tr/2008/rec-xml-20081126/, 3 Extensible Markup Language () 1.1 aktualna specyfikacja www.w3.org/tr/xml11

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 17 / 70 Przykład <?xml version="1.0"?> <ala> <ma>kota</ma> <kot>ma</kot> ale </ala> Wprowadzenie

Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 18 / 70 Założenia integracja z Internetem uniwersalny, wiele zastosowań kompatybilny z SGML łatwe pisanie narzędzi przetwarzajacych zredukowane możliwości na poziomie języka rozszerzalność dokumenty można czytać bez narzędzi możliwości walidacji (przy pomocy DTD) migracja z HTML

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 19 / 70 Podstawowy dokument Wprowadzenie <?xml version="1.0"?> <greeting> <hello>hello World!</hello> </greeting> Składa się koniecznie z deklaracji (prologu) i jednego elementu głównego.

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 20 / 70 Znaczniki znaczniki maja postać <nazwa> Wprowadzenie każdemu znacznikowi otwierajacemu odpowiada zamykajacy </nazwa> znacznik pusty <nazwa/> (<nazwa></nazwa>) znaczniki sa wrażliwe na wielkość liter znaczniki można wielokrotnie zagnieżdżać, pamietajac o kolejności zamykania struktura drzewiasta! nie ma żadnych predefiniowanych znaczników!

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 21 / 70 Atrybuty Wprowadzenie atrybuty moga dookreślać cechy obiektów opisanych znacznikami atrybuty umieszcza się tylko w znaczniku otwierajacym składnia: <znacznik atr1="warta" atr2="wartb"> atrybuty moga być: tekstowe (cdata), atomiczne (tokeny, identyfikatory), wyliczeniowe (predefiniowane zakresy) atrybuty moga być opcjonalne (implied), obowiazkowe (required) (ale z DTD!), domyślne ("wart"), domyślne ustawione (# FIXED "wart")

Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 22 / 70 Encje encja to obiekt przechowywania informacji dokument ma zawsze przynajmniej jedna encję (document entity) encje moga być wewnętrzne (znakowe) i zewnętrzne (odnosza się do innych plików) encje trzeba deklarować: <!ENTITY nazwa "tresc"> zbiór encji tworzy strukturę fizyczna dokumentu

Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 23 / 70 Encje encje deklaruje się w DTD: <?xml version="1.0" standalone="yes"?> <!DOCTYPE cds [ <!ENTITY encja "nasza pierwsza"> ]> odwołanie do encji &nazwa; jest dokładnie 5 encji predefiniowanych: < > & &apos; "

Wprowadzenie Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 24 / 70 a SGML i HTML język jest podzbiorem SGML ma mniej opcji, ale jest rozszerzalny pozwala na walidację, lecz nie wymusza jej i SGML to metajęzyki HTML to konkretny język przedmiotowy HTML (w różnych wersjach DTD) jest definiowalny jako aplikacja SGML przy pomocy jest zdefiniowany język XHTML odpowiadajacy HTML 4

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 25 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Struktura dokumentu

Struktura dokumentu Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 26 / 70 Struktura fizyczna jest zwiazana z encjami: parsowane, nie parsowane dokument z fizycznego p. widzenia składa się z szeregu encji encje moga się odwoływać do kolejnych encji w innych plikach z fizycznego p. widzenia dokument może składać się z wielu plików granice encji nie musza się pokrywać z granicami elementów struktura fizyczna płaska

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 27 / 70 Struktura logiczna Struktura dokumentu z logicznego punktu widzenia dokument ma strukturę drzewa jest ona wyznaczana przez kolejne, następujace po sobie i zawierajace się w sobie elementy drzewo ma zawsze jeden korzeń, 1. el. dokumentu korzeń pokrywa się z 1 (często jedyna) encja prawidłowo skonstruowane dokumenty powinny mieć zsynchronizowane struktury logiczna i fizyczna standalone, do przetwarzania dokumentu nie sa potrzebne żadne zewnętrzne definicje (znaczników, atrybutów, itp.; zewnętrzne DTD) struktura logiczna drzewiasta

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 28 / 70 Przestrzenie nazw Struktura dokumentu elementy maja ustalone znaczenie jedynie wewnatrz konkretnego dokumentu oby powiazać elementy jednego dokumentu z innym mozna użyć przestrzeni nazw (ang. namespace) w tym celu trzeba zadeklarować przestrzeń: <nazwaelem xmlns:prefix="urlprzestrz"> następnie używa się ich: <prefix:element>tresc</prefix:element>

Struktura dokumentu Przestrzenie nazw domyślna przestrzeń można podać w pierwszym znaczniku dokumentu przykład użycia przestrzeni: <mytrades:portfolio xmlns:mytrades= "http://www.somedomain.com/ns/mytrades/"> <mytrades:stock>cisco</mytrades:stock> <mytrades:stock>nortel</mytrades:stock> <mytrades:stock>etoys</mytrades:stock> <mytrades:stock>ibm</mytrades:stock> </mytrades:portfolio> Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 29 / 70

Przestrzenie nazw, przykład Struktura dokumentu <h:html xmlns:xdc="http://www.xml.com/books" xmlns:h="http://www.w3.org/html/1998/html4"> <h:head><h:title>book Review</h:title></h:head> <h:body> <xdc:bookreview> <xdc:title>: A Primer</xdc:title> <h:table> <h:tr align="center"> <h:td>author</h:td><h:td>price</h:td> <h:td>pages</h:td><h:td>date</h:td></h:tr> <h:tr align="left"> <h:td><xdc:author>simon St. Laurent</xdc:author></h:td <h:td><xdc:price>31.98</xdc:price></h:td> <h:td><xdc:pages>352</xdc:pages></h:td> <h:td><xdc:date>1998/01</xdc:date></h:td> </h:tr> </h:table> </xdc:bookreview> Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 30 / 70

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 31 / 70 Przestrzenie nazw vs. DTD Struktura dokumentu Walidacja dokumentu jest problematyczna: 1 DTD, 1+ przestrzeni nazw Rozwiazania: nie używać walidacji skonstruować DTD zawierajace wszystkie znaczniki z używanych przestrzeni nazw wraz z prefiksami!!!

Struktura dokumentu Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 32 / 70 Części CDATA te części dokumentu pozwalaja na dokładne cytowanie tekstu powoduja wyłaczenie interpretowania sa przydatne do wstawiana danych, w tym kodu w innym języku sposób użycia to: <![CDATA[ oto &jest; cos <hej><nie>inter</hej>pretowanego ]]>

Struktura dokumentu Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 33 / 70 Komentarze w można wstawiać komentarze komentarze sa umieszczane tak: <!-- komentarz --> komentarze nie moga zawierać sekwencji -- komentarze nie moga być wewnatrz znaczników

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 34 / 70 Kodowanie znaków Struktura dokumentu <?xml version="1.0"?> <?xml version="1.0" encoding="iso-8859-1"> <?xml version="1.0" encoding="iso-8859-2"> <?xml version="1.0" encoding="utf-8"> <?xml version="1.0" encoding="utf-16"> Parsery ( procesory ) maja wspierać UTF, deklaracja w ASCII. Metody autodetekcji: http://www.w3.org/tr/rec-xml/#sec-guessing

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 35 / 70 Sterowanie przetwarzaniem processing instructions maja postać: <?nazwa parametry?> na przykład: Struktura dokumentu <?xml version="1.0" standalone="yes"?> działaja podobnie do CDATA, lecz moga być wykorzystywane przez parser, ew. dodatkowe aplikacje p.i., których nazwy zaczynaja się od xml sa używane przez parsery

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 36 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Walidacja

Walidacja Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 37 / 70 Poprawność po co? podobnie jak SGML, pozwala na określenie poprawności dokumentu poprawność ma charakter składniowy dopuszcza 2 poziomy poprawności badanie poprawności jest przydatne dla tworzenia bezbłędnych dokumentów w niektórych zastosowaniach poprawność może być niezbędna

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 38 / 70 Walidacja Dobre sformułowanie/poprawność składniowa Dokument powinien być przynajmniej dobrze sformułowany (ang. well formed): 1 zawiera przynajmniej 1 el. fiz. i 2 zawiera dokładnie 1 el. log. 3 el. logiczne sa prawidłowo zagnieżdżone 4 nazwy elementów sa takie same w znacznikach otwierajacych i zamykajacych 5 nazwy atrybutów w danych elemencie nie powtarzaja się, a wartości sa cytowane 6 encje sa deklarowane przed użyciem 7 wartości atrybutów nie odwołuja się do zewnętrzych encji

Walidacja Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 39 / 70 Poprawność strukturalna Aby można mówić o poprawnym strukturalnie dokumencie (ang. valid), musi być DTD! Dokument jest poprawny strukturalnie jeżeli: 1 jest dobrze sformułowany 2 zawiera prawidłowa deklarację typu dokumentu (odwołanie do DTD) 3 jest zgodny z DTD

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 40 / 70 Walidacja Walidacja walidacja jest procesem sprawdzania poprawności jest przeprowadzana przez parser, który jest osobna aplikacja istnieje wiele parserów, walidujace, pozwalajace na przetwarzanie dokumentu można również używać parserów SGML najbardziej znanym parserem jest Expat autorstwa J. Clarka (www.jclark.com/xml) najbardziej znanym parserem SGML jest SP autorstwa Jamesa Clarka (www.jclark.com/sgml, opensp.sf.net) sieciowy walidator: validator.w3.org (oparty o SP)

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 41 / 70 Przykład pliku Walidacja <?xml version="1.0" standalone="yes"?> <cds> <cd> <title>cryptic Writings</title> <band>megadeth</band> Absolutely &nothing; we trust </cd> </cds>

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 42 / 70 Przykład OpenSP Walidacja onsgmls -wno-valid -s xml.dcl t8.xml onsgmls:t8.xml:6:16:w: cannot generate system identifier for general entity "nothing" onsgmls:t8.xml:6:23:e: reference to entity "nothing" for which no system identifier could be generated onsgmls:t8.xml:6:15: entity was defined here

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 43 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Tworzenie DTD

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 44 / 70 Gramatyki formalne i E/BNF Tworzenie DTD istnieja różne metody formalizacji składni języka, na przykład wyrażenia regularne i gramatyki gramatyki generacyjne, redukcyjne gramatyki można formalizować przy pomocy E/BNF (ang. Extended/Backus-Naur Form) zapis gramatyki w postaci BNF ma postać szeregu reguł produkcji każda reguła opisuje fragment gramatyki: <s_metajezyka> := <s_metajezyka> s_jezyka_przedm napis wejściowy jest poprawny jeżeli da się go zredukować, (lub gdy wygeneruje) symbol poczatkowy gramatyki EBNF dodaje mechanizm wyrażeń regularnych do BNF

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 45 / 70 Gramatyka przykład Tworzenie DTD <wyrazenie> := <liczba> <liczba> * <liczba> <liczba> / <liczba> <liczba> + <liczba> <liczba> - <liczba> <liczba> := <cyfra>+ <cyfra> := 1 2 3 4 5 6 7 8 9 0

Tworzenie DTD Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 46 / 70 Czym jest DTD DTD to Document Type Definition/Declaration w SGML definiuje w pełni strukturę dokumentu w sa nałożone pewne ograniczenia przy jej pomocy można sprawdzać poprawność składniowa dokumentu można w niej deklarować/definiować: encje, alementy, atrybuty DTD może być: załaczone w dokumencie, dostępne w systemie, lub przez URL

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 47 / 70 Przykład DTD Tworzenie DTD <!DOCTYPE cds [ <!ELEMENT cds (cd)+ > <!ELEMENT cd (title, band, song*) > <!ELEMENT title (#PCDATA) > <!ELEMENT band (#PCDATA) > <!ELEMENT song (#PCDATA) > <!ATTLIST cd num CDATA #IMPLIED > <!ENTITY instr "instrumental version" > ]>

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 48 / 70 Odnoszenie się do DTD 1 Tworzenie DTD <?xml version="1.0" standalone="yes"?> <!DOCTYPE cds [ <!ELEMENT cds (cd)+ >... <?xml version="1.0" standalone="yes"?> <!DOCTYPE cds SYSTEM "cds.dtd"> <?xml-stylesheet type="text/css" href="cds2.css"?> <cds>...

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 49 / 70 Przykład DTD Tworzenie DTD <!-- elementy --> <!ELEMENT cds (cd)+ > <!ELEMENT cd (title, band, song*) > <!ELEMENT title (#PCDATA) > <!ELEMENT band (#PCDATA) > <!ELEMENT song (#PCDATA) > <!-- atrybuty --> <!ATTLIST cd num CDATA #IMPLIED > <!-- encje --> <!ENTITY instr "wykonanie instrumentalne" >

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 50 / 70 Dokument Tworzenie DTD <?xml version="1.0" standalone="yes"?> <!DOCTYPE cds SYSTEM "cds.dtd"> <?xml-stylesheet type="text/css" href="cds2.css"?> <cds> <cd> <title>cryptic Writings</title> <band>megadeth</band> <song>trust</song></cd> <cd num="2"> <title>aenima</title> <band>tool</band> <song>third Eye</song></cd> <cd> <title>sabbath Bloody Sabbath</title> <band>black Sabbath</band> <song>fluff &instr;</song></cd> </cds>

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 51 / 70 Składnia DTD DTD może zawierać deklaracje: <!ELEMENT nazwa (skladnia) > <!ATTLIST element atr1 typ wartosc atr2 typ wartosc > <!ENTITY nazwa tresc > Tworzenie DTD

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 52 / 70 Składnia DTD składnia elementu może mieć postać: (el*, el+, el1? el2) (ela+ elb?)* (#PCDATA) (el+ #PCDATA)? Tworzenie DTD

Tworzenie DTD Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 53 / 70 Składnia DTD typy atrybutów: CDATA ID IDREF IDREFS NMTOKEN NMTOKENS ENTITY ETITIES wartości atrybutów: #REQUIRED, #IMPLIED, #FIXED encje: wewnętrzne (napisy), zewnętrze (odwołania do innych plików SYSTEM "plik", parametryczne

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 54 / 70 Łaczenie różnych DTD tylko DTD wewnętrzne: <!DOCTYPE cds [ <!ELEMENT cds (cd)+ > ]> tylko DTD zewnętrzne: Tworzenie DTD <!DOCTYPE cds SYSTEM "cds.dtd"> łaczenie DTD: <!DOCTYPE cds SYSTEM "cds.dtd" [ <!ATTLIST song flavour CDATA #IMPLIED > <!ENTITY concept "concept album" > ]>

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 55 / 70 DTD zewnętrzne Systemowe: Tworzenie DTD <!DOCTYPE cds SYSTEM uri> <!DOCTYPE cds SYSTEM "cds.dtd"> <!DOCTYPE cds SYSTEM "http://www.moje.org/cds.dtd"> Publiczne: <!DOCTYPE nazwa PUBLIC "rodzaj//wlasciciel//opis//jezyk"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 56 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Schema

Schema Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 57 / 70 Schema Schema maja zastapić DTD DTD jest zapisywany w osobnymy języku (opartym o BNF) Schema sa zapisywane w! maja większe możliwości rozszerzenia i rozbudowy moga być same przetwarzane jak każdy inny dokument!

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 58 / 70 Przykład Schema <?xml version="1.0"?> <?xml-stylesheet type="text/css" href="cds2.css"?> <cds xmlns="http://home.agh.edu.pl/gjn" xmlns:xsi="http://www.w3.org/2001/schema-instance" xsi:schemalocation="http://home.agh.edu.pl/gjn cds.xsd"> <cd> <title>cryptic Writings</title> <band>megadeth</band> <song>trust</song></cd> <cd num="2"> <title>aenima</title> <band>tool</band> <song>third Eye</song></cd> </cds>

Przykład Schema <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/schema" targetnamespace="http://home.agh.edu.pl/gjn" xmlns="http://home.agh.edu.pl/gjn" elementformdefault="qualified"> <xs:attribute name="num" type="xs:string"/> <xs:element name="cd"> <xs:complextype> <xs:sequence> <xs:element name="title" type="xs:string"/> <xs:element name="band" type="xs:string"/> <xs:element name="song" type="xs:string"/> </xs:sequence> <xs:attribute ref="num" use="optional"/> </xs:complextype> </xs:element> <xs:element name="cds"> <xs:complextype> <xs:sequence> <xs:element ref="cd" maxoccurs="unbounded"/> </xs:complextype> Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 59 / 70

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 60 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła Style

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 61 / 70 Style Style CSS, XSL extensible Stylesheet Language transformacja do HTML, XSLT extensible Stylesheet Language Transformations.

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 62 / 70 CSS <?xml version="1.0" encoding="iso-8859-1"?> <?xml-stylesheet type="text/css" href="cd_catalog.css"?> <CATALOG> <CD> <TITLE>Empire Burlesque</TITLE> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> </CATALOG> Style

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 63 / 70 CSS CATALOG { background-color: #ffffff; width: 100%;} CD { display: block; margin-bottom: 30pt; margin-left: 0;} TITLE { color: #FF0000; font-size: 20pt;} ARTIST { color: #0000FF; font-size: 20pt; } COUNTRY,PRICE,YEAR,COMPANY { display: block; color: #000000; margin-left: 20pt;} Style

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 64 / 70 CSS, selektory dla E[atrybut] element E, z atrybutem atrybut E[atrybut="wartosc"] element E, z atrybutem atrybut o wartości wartosc E[atrybut~="wartosc"] element E, z atrybutem atrybut o wartości będącej listą słów zawierających wartosc (oddzielonych białymi znakami) Style

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 65 / 70 Spis Treści 1 SGML Wprowadzenie Zastosowanie 2 Wprowadzenie Struktura dokumentu Walidacja Tworzenie DTD Schema Style XHTML 3 Źródła XHTML

XHTML Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 66 / 70 Czym jest XHTML extensible HyperText Markup Language ma w pełni zastapić HTML składnia identyczna do HTML 4.01 dokładniejsza, bardziej restrykcyjna specyfikacja XHTML to aplikacja (zdefiniowany w ) pełne możliwości walidacji style w CSS

XHTML Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 67 / 70 Różnice wzgl. HTML wszystkie el. musza być poprawnie zagnieżdżone dokumenty musza być dobrze sformułowane nazwy znaczników pisane małymi literami wszystkie znaczniki i atrybuty musza być zamknięte wartości atrybutów musza być cytowane w prologu musi być odniesienie do DTD

Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 68 / 70 HTML: id vs. name XHTML Wszystkie id oraz name dziela wspólna przestrzeń nazw. id jest więcej niż nazwa dla hiperpołaczeń, umożliwia stosowanie stylów/programowania, niektóre (starsze) przegladarki moga mieć kłopoty z odnośnikami do id, name pozwala na stosowanie dowolnych znaków, w przypadku id jedynie litery/cyfry.

XHTML Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 69 / 70 XHTML ma zastapić HTML potrzeba płynnego przejścia XHTML HTML 4 zdefiniowany w 1.0 jedynie drobne różnice składniowe i semantyczne pomijalne, z p. widzenia bieżacych narzędzi jest podstawa współczesnych technologii internetowych

Źródła Igor Wojnicki, Grzegorz J. Nalepa (AGH, KA) SGML, 11 czerwca 2012 70 / 70 Źródła www.w3c.org www.xml.org www.xml.com xml.coverpages.org xml.oreilly.com www.ibm.com/developerworks/xml www.w3schools.com