Wprowadzenie do XML. Tomasz Przechlewski

Podobne dokumenty
c TP: anything: 13 listopada 2004 roku 1

DTD - encje ogólne i parametryczne, przestrzenie nazw

XML extensible Markup Language. Paweł Chodkiewicz

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

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

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

Wprowadzenie do technologii XML

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

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

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

Przykładowy dokument XML

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

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

Rola języka XML narzędziem

Podstawowe konstrukcje Podstawowymi konstrukcjami są wzorce element oraz attribute:

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

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

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

Technologie zarządzania treścią

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

XML DTD XML Schema CSS

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

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

Wprowadzenie do XML. Joanna Jędrzejowicz. Instytut Informatyki

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

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

XML i nowoczesne metody zarządzania treścią

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. część 1

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

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

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

XML extensible Markup Language. część 3

Wprowadzenie do XML schema

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

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

Aplikacje internetowe laboratorium XML, DTD, XSL

XML i nowoczesne metody zarządzania treścią

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

XML i nowoczesne technologie zarządzania treścią

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

XML extensible Markup Language 1

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

Zasady budowy i przekazywania komunikatów XML w systemie kdpw_otc

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

Aplikacje internetowe laboratorium XML, DTD, XML Schema, XSL

Specyfikacja techniczna pliku wymiany danych

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

Wprowadzenie do arkuszy stylistycznych XSL i transformacji XSLT

Środowisko XML (Extensible Markup Language).

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

METODY REPREZENTACJI INFORMACJI

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

Podstawy JavaScript ćwiczenia

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

Dlaczego GML? Gdańsk r. Karol Stachura

Technologie zarządzania treścią

Dokumenty elektroniczne

Wprowadzenie do technologii XML

Narzędzia informatyczne w językoznawstwie

Elementarz HTML i CSS

Przykładowy dokument XML

Podstawy XML-a. Zaawansowane techniki programowania

Model semistrukturalny

XML - wprowadzenie. <message> <text> Dobrze </text> </message> <message> <text> Źle </message> </text> <message> <message> <text> Źle.

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

<html> </html> <body> </body> <p> [</p>] <br> <html> <head> </head> <body> </body> </html> Materiały dydaktyczne 1/5

Zasady Nazewnictwa. Dokumentów XML Strona 1 z 9

Instrukcja integracji z portalem ogłoszeń praca.24portal.pl

HTML DOM, XHTML cel, charakterystyka

Programowanie internetowe

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

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

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

Podstawy (X)HTML i CSS

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

Kurs HTML 4.01 TI 312[01]

Załącznik nr 2 do Umowy Nr. o korzystanie z usługi Identyfikacji Przychodzących Płatności Masowych z dnia.

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

Ćwiczenia laboratoryjne nr 8 Podstawy języka XML.

INTEGRACJA I EKSPLORACJA DANYCH

XML INFORMACJE NA TEMAT STRUKTURY ( )

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

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

Złożone komponenty JSF wg

Semistrukturalne bazy danych Wykład dla studentów matematyki

Perl a XML. Narzędzia informatyczne w językoznawstwie. Generowanie danych XML - Przykład. Generowanie danych XML. Perl - Przetwarzanie XML

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

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:

1 XML w bazach danych

rk HTML 4 a 5 różnice

Text mining w programie RapidMiner Michał Bereta

Zaawansowany kurs języka Python

AIS/INTRASTAT. Specyfikacja techniczna XML (publiczna) wersja

Cel ogólny lekcji: Wprowadzenie do tworzenia stron WWW w języku HTML. Wprowadzenie pojęć: strona WWW, język HTML, dokument HTML.

Jacek Tomaszczyk Instytut Bibliotekoznawstwa i Informacji Naukowej Uniwersytet Śląski

2 Podstawy tworzenia stron internetowych

WYKŁAD 3 XML DOM XML DOCUMENT OBJECT MODEL CZĘŚĆ 1

XML i nowoczesne metody zarządzania treścią

Transkrypt:

Spis treści Wprowadzenie do XML Tomasz Przechlewski 1. SGML/XML.. 1 1.1. Składniki systemu.. 1 2. Dokument XML i schemat DTD. 1 2.1. Struktura dokumentu XML 1 2.2. DTD 4 2.3. Elementy. 5 2.4. Atrybuty 6 2.5. Encje. 7 2.6. Deklaracja notation 8 2.7. Instrukcje formatujące. 8 2.8. Pozostałe konstrukcje: CDATA Sections, komentarze 8 3. Przestrzenie nazw (Namespaces in XML). 8 4. Zastosowania.. 9 1. SGML/XML Koncepcja opracowana na początku lat 70 ubiegłego wieku. ISO standard z 1986 roku: SGML: International Standard (ISO 8879). Information Processing -- Text and Office Systems -- Standardized Generalized Markup Language. Znakowanie powinno opisywać strukturę dokumentu () a nie określać sposób przetwarzania dokumentu''. XML: Oparty na SGML standard oznakowania dokumentów opracowany przez konsorcjum W3C w 1998 r. 1.1. Składniki systemu 1. Deklaracja (SGML declaration). Definiuje zestaw znaków wykorzystywany w dokumencie oraz znaki specjalne służące do definiowania i oznaczania znaczników (<, >, &). W XML nie ma deklaracji. XML używa UTF-8 jako domyślnego sposobu kodowania znaków. 2. Definicja dokumentu (DTD -- Document Type Definition). Definiuje gramatykę (słownik oraz reguły syntaktyczne) formalnego języka, który służy do opisania konkretnego typu dokumentu. 3. Konkretny dokument. 2. Dokument XML i schemat DTD 2.1. Struktura dokumentu XML Przykładowy prosty dokument przedstawiono na rysunku 1 (Przykładowy dokument). 1

Rysunek 1. Przykładowy dokument W uproszczeniu model danych wg. XML sprowadza się do drzewa węzłów (nodes) trzech typów: elementy, atrybuty i tekst. Węzły elementowe mogą zawierać inne węzły elementowe; atrybuty i węzły tekstowe mogą być wyłącznie węzłami terminalnymi (liście). Dla przykładowego dokumentu drzewo elementów przedstawia rysunek 2 (Drzewo węzłów przykładowego dokumentu). 2

Rysunek 2. Drzewo węzłów przykładowego dokumentu root memo to from body close p p p q Plik XML odowiadający dokumentowi z rysunku może zaś wyglądać następująco: <?xml version='1.0' encoding='iso-8859-2'?> <!DOCTYPE Memo SYSTEM "/usr/local/xmlschemas/memo.dtd"> <memo status='secret' date='23-1-2008'> <to>comrade Napoleon</to> <from>snowball</from> <body> <p>in Animal Farm, George Orwell says: <q>the pigs had to expend enormous labour every day upon mysterious things called files, reports, minutes and memoranda. These were large sheets of paper which had to be closely converted with writing, and as soon as they were so converted, they were burnt in the furnace</q>. Do you think SGML would have helped the pigs? </p> </body> 3

<close>comrade Snowball</close> </memo> Jak widać, plik nie zawiera informacji o układzie graficznym/wyglądzie dokumentu, ale o jego strukturze i/lub znaczeniu poszczególnych jego fragmentów Dokument XML jest poprawnie sformatowany (well formed) jeżeli: Dokument zaczyna się od następującej instrukcji przetwarzającej: <?xml version="1.0"?> Wszystkie elementy posiadają znacznik otwierający i znacznik zamykający; elementy o zawartości pustej są oznaczone jako <element/>. Istnieje tylko jeden element, wewnątrz którego jest zawarty cały dokument (korzeń dokumentu). Wartości atrybutów są umieszczone wewnątrz cudzysłowów i muszą być unikalne dla każdego elementu (atrybut o tej samej wartości może być podany tylko raz) 2.2. DTD <!-- tego nie wolno: --> <memo date='23-11-2008' date='23-12-2008' /> Parser niewalidujący to program, który m.in. potrafi sprawdzić czy dokument XML jest dobrze sformatowany. Istnieją formalne języki do definiowania struktury dokumentu XML w sposób bardziej precyzyjny. Najstarszym z nich jest DTD (Document Type Definition); będący częścią specyfikacji XML. Dokument poprawny składniowo to dokument posiadający deklarację DOCTYPE i zgodny z tą deklaracją (parser walidujący). Przekładowe DTD dla przykładowego dokumentu: <!-- DTD for simple office memoranda --> <!ELEMENT memo (to, from, body, close?) > <!ELEMENT to (#PCDATA) > <!ELEMENT from (#PCDATA) > <!ELEMENT body (p*) > <!ELEMENT p (#PCDATA q pref )* > <!ELEMENT q (#PCDATA) > <!ELEMENT pref EMPTY > <!ELEMENT close (#PCDATA) > <!-- --> <!-- ELEMENTS NAME VALUE DEFAULT --> <!ATTLIST Memo status (confiden public) "public" 4

date CDATA #IMPLIED > <!ATTLIST p id ID #IMPLIED > <!ATTLIST pref refid IDREF #REQUIRED > 2.3. Elementy Deklaracja elementu wygląda jak poniżej: <!ELEMENT name (content-model) > content-model może być czterech rodzajów: #PCDATA Tekst (węzeł tekstowy). Nazwa pochodzi od parsed character data EMPTY Element o tym typie jest pusty, tj. nie ma żadnej zawartości (ale może posiadać atrybuty). elementy Element zawiera inne elementy (podelementy) w określonej liczbie i porządku (patrz niżej operatory połączeń i operatory powtórzeń). zawartość mieszana (mixed content) Element zawiera inne elementy wymieszane z węzłami tekstowymi. Dla tego typu zawartości nie można precyzyjnie określić liczby i porządku podelementów. Zawartość mieszana to z grubsza: tekst z ewentualnymi węzłami elementowymi podanymi w deklaracji zawartości, w dowolnym porządku i liczbie. Tekst o długości 0 znaków też jest OK. Mixed content model jest zawsze deklarowany w następujacy sposób: (#PCDATA e1 e2 e3. )* tj. wewnątrz nawiasów okrągłych wstawiamy najpierw symbol #PCDATA a potem nazwy elementów, oddzielone znakiem. Po zamykającym nawiasie okrągłym stawiamy znak * (Patrz niżej operatory połączeń i operatory powtórzeń.) Do definiowania modelu służą operatory powtórzeń (occurance indicators) oraz Operatory połączeń. Ich znaczenie jest następujące: Operatory powtórzeń? + * co najwyżej raz (0, 1); co najmniej raz (1, 2,); wiele razy lub wcale (0, 1, 2,). 5

Operatory połączeń e1,e2 najpierw e1 potem e2; e1 e2 albo e1 albo e2 Do tego model może zawierać nawiasy okrągłe, definiujące grupę. Grupa jest traktowana jako całość. Przykłady: <!-- najpierw to from powtórzone co najmniej raz potem body, close opcjonalne --> <!ELEMENT memo ((to, from)+, body, close?) > <!ELEMENT dl (dt*,dd?)+ > <!ELEMENT identyfikator (nr.dowodu nr.paszportu nr.pesel ) > 2.4. Atrybuty Deklaracja atrybutu: <!-- element atrybut zbiór-wartości wartość-domyślna: --> <!ATTLIST element attrib-name-1 (values) "default" attrib-name-1 (values) "default" > Zbiór wartości to może być lista wartości albo typ atrybutu, gdzie typ atrybutu określamy za pomocą jednej z podanych wartości: CDATA dane tekstowe (dowolne znaki) ID unique identifier. Identyfikator. Zbiór wszystkich wartości wszystkich atrybutów o typie ID musi być niepowtarzalny. IDREF wartość zdefiniowanego identyfikatora. Wartość atrybutu IDREF musi być równa jakiejś wartości ze zbioru atrybutów o typie ID. Jako wartość domyślną można wybrać: napis Jedna z wartości wyspecyfikowanych w polu values #REQUIRED wartość musi zostać określona przez użytkownika. #CURRENT jeżeli wartość nie zostanie podana to przyjmowana jest ostatnio wyspecyfikowana. 6

#IMPLIED jeżeli wartość nie zostanie podana to zostanie nadana automatycznie przez parser Przykład: <img src="~/gifs/sowa.gif" alt="sowa uszata"/> 2.5. Encje Encje są odpowiednikiem pojęcia zmiennej w językach programowania. Pozwalają nazwać porcję danych. Tą porcją danych może być: kawałek tekstu, kawałek DTD lub plik zewnętrzny zarówno tekstowy jak i zawierający dane nietekstowe. encje wewnętrzne (internal entities): <!ENTITY UG "Uniwersytet Gdański" > <!ENTITY EP 'Electronic Publishing' > &UG; &EP; encje znakowe (general character entities): <!ENTITY amp CDATA "&" > & encje parametryczne (parameter entities) <!ENTITY % heading "H1 H2 H3 H4 H5 H6" > <!ENTITY % list "UL OL DIR MENU" > <!ENTITY % tekst "#PCDATA A IMG BR" > <!ELEMENT h1 (%tekst;)+ > encje zewnętrzne (external entities): <!ENTITY CHP1 SYSTEM "/usr/tomek/chap1.sgml" > <!ENTITY SU SYSTEM "/standard/sowauszata.gif" NDATA GIF87A> <!ENTITY iso1 PUBLIC "" ""> W definicji encji zewnętrznej należy dodać słowo SYSTEM po nazwie encji, a następnie nazwę pliku lub słowo PUBLIC po którym występują dwa napisy. W przypadku encji określających plik z danymi nietekstowymi część NDATA określa typ zawartości. 7

2.6. Deklaracja notation Określa typ danych (notacja albo format danych) w pliku binarnym. <!NOTATION GIF87A SYSTEM "GIF"> <!NOTATION TEX PUBLIC "+//ISBN 0-201-13448-9::Knuth//NOTATION The TeXbook//EN"> 2.7. Instrukcje formatujące Processing instructions (PIs) umożliwiają przesłanie dodatkowej informacji formatującej do aplikacji. PI mają ogólną postać <?nazwa treść?>. Nazwa określa aplikację, aplikacja powinna przetwarzać znaną jej instrukcję przetwarzającą oraz ignorować pozostałe. W standardzie XML nazwy PI names rozpoczynające się od xml są zarezerwowane. 2.8. Pozostałe konstrukcje: CDATA Sections, komentarze Sekcje CDATA <![CDATA[. ]]> Komentarze <!-- --> 3. Przestrzenie nazw (Namespaces in XML) Różne DTD mogą stosować te same nazwy dla różnych celów. Rozwiązanie: nazwy elementów/atrybutów kwalifikowane za pomocą prefiksów URI. Przykładowo, dokument opisujący asortyment w sklepie AGD może używać elementu widelec z określonym URI, a dokument opisujący części rowerowe z innym: <{http://www.agd.com/asortyment}widelec /> <{http://www.rowery.com/xml}widelec /> Ponieważ parsery XML zgodne z wersją 1.0 specyfikacji nie byłyby zdolne do walidacji ww. elementów; dodanie przestrzeni nazw jest w sposób pośredni. Jeżeli nazwa dokumentu zawiera dwukropek, to część przed dwukropkiem jest traktowana jako prefiks określający przestrzeń nazw a część po jako nazwa lokalna: 8

<agd:widelec xmlns:agd="http://www.agd.com/asortyment" /> W analogiczny sposób można zdefiniować kwalifikowane nazwy atrybutów: <widelec rowery:rodzaj="karbon" xmlns:rowery="http://www.rowery.com/xml">time</widelec> Jeżeli znacznik zawiera prefiks, ale nie zawiera atrybutu xmlns, to za wartość określającą przestrzeń nazw przyjmowana jest wartość xmlns określona dla pierwszego elementu-przodka w hierarchii dokumentu. Często większość elementów w dokumencie posiada nazwy z pewnej przestrzeni nazw, a tylko niewielka część pochodzi spoza niej. Atrybut xmlns określa URI związane ze wszystkimi elementami nie poprzedzonymi żadnym prefiksem: <rower xmlns='urn:com:rowery'> <widelec typ="alu"> <fajka dl="13"> </rowery> <{urn:com:rowery}:rower > <{urn:com:rowery}widelec typ="alu"> <{urn:com:rowery}fajka dl="13"> </rowery> 4. Zastosowania 1. parsery: rxp, IE, Mozilla; Edytory: OpenOffice, Emacs, XMLmind editor; 2. CALS (Computer-aided Acquisition and Logistic Support); 3. HTML (http://www.w3.org/tr/html); 4. XML (http://www.w3.org/tr/rec-xml); 5. Text Encoding Initiative; 6. Docbook (http://www.docbook.org). Ten dokument w formacie: pdf [./xml-dtd.pdf] oraz xml [./xml-dtd.xml]. 9