METAJĘZYKI 2 Politechnika Koszalińska

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Definiowanie typów dokumentów
Tworzenie stron internetowych
Technologie prezentacji medialnych, © 2006 Igor Garnik
Wprowadzenie do języka skryptowego PHP
HTML.
XHTML Podstawowe różnice.
Definiowanie typów dokumentów Część 1: DTD 9 października 2003.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema
Definiowanie typów dokumentów Część 1. DTD Definiowanie typów dokumentów – część 1: DTD2 Jak wygląda XML? st. asp. Jan Łapówka Dołowice Górne.
11 Definiowanie typów dokumentów. 22 Jak wygląda XML? st. asp. Jan Łapówka Dołowice Górne Wypadek dnia r o godzinie 13:13 ( piątek ) miał miejsce.
Definiowanie typów dokumentów Część 1. DTD, XML Schema.
XML w zarządzaniu formularzami ubezpieczeniowymi ZUS
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema.
Definiowanie typów dokumentów Część 1. DTD, XML Schema.
Zaawansowana składnia XML XML Schema
11 Definiowanie typów dokumentów. 22 Jak wygląda XML? st. asp. Jan Łapówka Dołowice Górne Wypadek dnia r o godzinie 13:13 ( piątek ) miał miejsce.
XML Schema XML Schema2 Definiowanie języków XML, SGML – metajęzyki. Definiowanie języków (zastosowań, typów dokumentów, schematów): –określanie.
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 1.
Aplikacje ASP.NET Arkadiusz Twardoń ZTiPSK
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Standardy tworzenia dokumentów [Michał Kuciapski ]
XML. Pierwszy dokument XML Witaj świecie! Elementy i atrybuty niezwykle oryginalny Witaj świecie! Druga możliwość: Witaj świecie!
Podstawowe polecenia systemu DOS
Wykład 2 struktura programu elementy języka typy zmienne
Proszę skopiować eclipse najlepiej do c:\temp uruchamiamy rejestrujemy jako academic.
Zadania Bazy danych.
HTML 4 Zebrał i opracował : dr inż. Jerzy Zgraja.
HTML 4 Zebrał i opracował : dr inż. Jerzy Zgraja.
XML eXtensible Markup Language. 2 Prowadzący Michał Kozielski p. 413 mail:
Podstawy programowania
Projektowanie Stron WWW
Podstawy programowania
Wyrażenia algebraiczne
Tworzenie stron internetowych
ANNA BANIEWSKA SYLWIA FILUŚ
Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie do akumulatora.
XML – eXtensible Markup Language 2. Nazwy atrybutów i elementów w języku XML muszą spełniać te same reguły (te same reguły musza spełniać też inne, rzadziej.
XML – eXtensible Markup Language
Komendy SQL do pracy z tabelami i bazami
1 Jak by tu po-współpracować z innymi ? a może coś jeszcze… Word 2007.
Wprowadzenie do HTML Informatyka Cele lekcji: Wiadomości:
Temat 12: Formularze.
Projektowanie stron WWW
Podstawy języka Instrukcje - wprowadzenie
Podstawy programowania
Aplikacje internetowe
Elementy multimedialne na stronie
Asembler MCS51. Budowa programu w asemblerze W ogólnym przypadku linia programu w asemblerze ma następującą budowę: na przykład: tuskocz:adda,r0 ;dodanie.
Toruń 28/ Metadane SAML opisują, w jaki sposób ma być realizowana komunikacja pomiędzy IdP i SP Metadane są typowo prezentowane w postaci XML.
Programowanie strukturalne i obiektowe C++
Projektowanie Aplikacji Internetowych
LISTY HTML. Listy s ą definiowane za pomoc ą znacznika podstawowego innego dla ka ż dego rodzaju list Specyfikacja XHTML, zawiera specjalne znaczniki.
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
Aplikacje internetowe Formatowanie tekstu w HTML-u.
Czyli króciutki opis języka programowania jakim jest HTML.
HTML Hyper Text Markup Language komputerowe Esperanto cz. I historia, struktura dokumentu.
Opracowanie mgr Karol Adamczyk
Temat 5: Instrukcje: print(), echo()
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Temat Prezentacji : ZNACZNIKI META TAGS wyk.H. Kozłowski.
Obiektowe metody projektowania systemów XML eXtensible Markup Language.
I TY ZOSTAŃ WEBMASTEREM! CZĘŚĆ 2 – „STRUKTURA STRONY” STWORZYŁ GABRIEL ŚLAWSKI.
Dokumentacja programu komputerowego i etapy tworzenia programów.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
The Poznan University of Economics Department of Management Information Systems XML - wprowadzenie.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
Hipertekst HTML WWW.
Wprowadzenie do edytorów tekstu.
Zapis prezentacji:

METAJĘZYKI 2 Politechnika Koszalińska mgr inż. Robert Berezowski e-mail: beny@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej METAJĘZYKI 2017-03-26

XML – wstęp XML to zbiór zasad do definiowania znaczników „w miarę potrzeb”; Znacznik – dodatkowa informacja do tekstu (znaków), pozwalająca go przetworzyć później w określony sposób; Znaczniki w XML można nazywać i używać w zależności od potrzeby budowanej aplikacji. Znaczniki tworzą języki znacznikowe (metajęzyki) dla konkretnych zastosowań; Duża grupa ludzi używająca jeden język może doprowadzić do rozwoju aplikacji z nim związanych (MathML, SVG, CML); aplikacje; przeglądarki; wtyczki; METAJĘZYKI 2017-03-26

XML – wstęp Początek znacznika oznaczany jest znakiem mniejszości < ; Symbole: większości >, cudzysłów pojedynczy ‘, cudzysłów podwójny ” , traktowane są jako elementy znaczników Przykłady znaczników: <strona>, <list>, <mecz>, <numer.strony> Samoopisujące się dokumenty; samodokumentujące się; Dane i struktura danych; METAJĘZYKI 2017-03-26

Przykładowy dokument XML <?xml version=”1.0” standalone="yes" encoding=”UTF-16”?> <sonet> <autor plec="M">Adam Mickiewicz </autor> <linia/> <!-- komentarz Sonet XIII  --> <tytuł>Sonet XIII</tytuł> <zwrotka numer="1"> <wers>Drżąc muślimin całuje stopy twej opoki,</wers> <wers>Maszcie krymskiego statku, wielki Czatyrdahu!</wers> <wers> O minarecie świata! O gór padyszachu!</wers> <wers> Ty, nad skały poziomu uciekłszy w obłoki.</wers> <wers> Siedzisz sobie pod bramą niebios, jak wysoki </wers> <wers> Gabryjel pilnujący edeńskiego gmachu; </wers> </zwrotka> </sonet> METAJĘZYKI 2017-03-26

Obraz w przeglądarce IE5.0 <?xml version="1.0" standalone="yes" encoding="UTF-16"?> – <sonet>  <autor plec="M">Adam Mickiewicz</autor> <linia/> <!-- komentarz Sonet XIII  --> <tytul>Sonet XIII</tytul> – <zwrotka numer="1"> <wers>Drzac muslimin caluje stopy twej opoki,</wers> <wers>Maszcie krymskiego statku, wielki Czatyrdahu!</wers> <wers>O minarecie swiata! O gor padyszachu!</wers> <wers>Ty, nad skaly poziomu ucieklszy w obloki.</wers> <wers>Siedzisz sobie pod brama niebios, jak wysoki</wers> <wers>Gabryjel pilnujacy edenskiego gmachu;</wers> </zwrotka> </sonet> Deklaracja XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa METAJĘZYKI 2017-03-26

Struktura logiczna Korzeniem całej struktury jest element <sonet>; Wszystkie pozostałe elementy mieszczą się jedne w drugich; Element zawierający inny nazywamy rodzicem (np. <sonet>, <zwrotka>); Element znajdujący się wewnątrz nazywamy potomkiem (np. <autor>, <zwrotka>, <wers>); Elementy tego samego rodzica nazywamy pokrewnymi (<autor>, <linia>, <tytul>, <zwrotka>); sonet autor tytul linia zwrotka wers METAJĘZYKI 2017-03-26

Przykładowy dokument XML <?xml version=”1.0” standalone="yes" encoding=”UTF-16”?> <uczelnia> <!– Wydziały uczelni --> <wydział skrót=”EII” nazwa=”elektroniki i Informatyki”> <dziekan nazwisko=”Jacek Placek”/> <kierunki> <kierunek skrót=”KIK”>Inżynieria komputerowa</kierunek> <kierunek skrót=”KSE”>Systemy elektroniczne</kierunek> </kierunki> </wydział> <wydział skrót=”EIZ” nazwa=”Ekonomii i zarządzania”> <dziekan nazwisko=”Placek Jacek”/> <kierunek skrót=”KME”>Makroekonomia</kierunek> <kierunek skrót=”KHZ”>Handel zagraniczny</kierunek> </uczelnia> METAJĘZYKI 2017-03-26

Obraz w przeglądarce IE5.0 Deklaracja XML Element główny Atrybut Element Znacznik początkowy Znacznik końcowy Zawartość tekstowa METAJĘZYKI 2017-03-26

Struktura logiczna Korzeniem całej struktury jest element <uczelnia>; Rodzic <uczelnia>, <wydział>, <dziekan>, <kierunki>; Potomek <wydział>, <dziekan>, <kierunki>, <kierunek> Pokrewne <dziekan>, <kierunki> METAJĘZYKI 2017-03-26

<?xml version="1.0" standalone="yes" encoding=„UTF-16"?> Deklaracja XML: Określa co znajduje się dalej w kodzie XML; Z którą wersją standardu XML dokument jest zgodny; Czy dokument jest samodzielny czy wymaga dodatkowego pliku (DTD) w celu zinterpretowania jego zawartości (struktury); Jakie kodowanie zostało użyte przy tworzeniu dokumentu Powyższa deklaracja jest instrukcją przetwarzania czyli instrukcją dla procesora XML; METAJĘZYKI 2017-03-26

Instrukcje przetwarzania Nie wchodzą w skład specyfikacji XML Przeznaczone dla różnych procesorów Przykład: <?xml-stylesheet… ?> - instrukcja łącząca dokument xml z arkuszem stylów, rozumiana przez procesory XML używane w IE, Netscape METAJĘZYKI 2017-03-26

<sonet> ... </sonet> <uczelnia> … </uczelnia> Element główny; Każdy dokument XML może posiadać tylko jeden element główny; Wszystkie pozostałe elementy muszą być w nim zawarte; Jeżeli jeden element zawarty jest w drugim, to musi być w nim zawarty całkowicie; <poezja> <sonet> <tytul> <autor> … </tytul> </autor> </sonet> </poezja> <poezja> <sonet> … </sonet> </poezja> <sonet> … </sonet> METAJĘZYKI 2017-03-26

<!-- komentarz Sonet XIII --> <!--Wydziały uczelni --> <linia/> Element pusty Dwa sposoby oznaczania: <linia/> <linia></linia> <!-- komentarz Sonet XIII  --> <!--Wydziały uczelni --> Znak <!-- oznacza początek, a znak --> koniec komentarza; METAJĘZYKI 2017-03-26

XML – wstęp Nazwy znaczników muszą zaczynać się literą, znakiem podkreślenia lub dwukropkiem, a dalej mogą występować cyfry, litery, podkreślenia, znak minus i kropka W przypadku użycia jednego z wcześniej podanych znaków jako znaku zwykłego należy go odpowiednio „zacytować”: & – & ‘ – &apos; > – > < – < „ – " <skrót>&</skrót> <cytat>&</cytat> <skrót>&apos;</skrót> <cytat>&apos;</cytat> <skrót>></skrót> <cytat>></cytat> <skrót><</skrót> <cytat><</cytat> <skrót>"</skrót> <cytat>"</cytat> METAJĘZYKI 2017-03-26

XML – wstęp Odwołania do znaków: (spacja) Znaczniki w XML zorientowane są na zawartość, a nie na wygląd; Wszystko co nie jest znacznikiem jest treścią; Ostateczny wygląd określony jest przez dołączone style; XML rozróżnia małe i duże litery; <xml> <skrót>1 1</skrót> <cytat> </cytat> </xml> <skrót>1俲1</skrót> <cytat>񏿲</cytat> METAJĘZYKI 2017-03-26

<autor plec="M"> <zwrotka numer="1"> Znaczniki (autor, zwrotka) mogą zawierać jeden lub więcej atrybutów (plec, numer); para: nazwa i wartość nazwie znakiem = przypisana wartość <element atrybut(nazwa)=”wartość”> Użycie cudzysłowów jest obowiązkowe; Cudzysłowy mogą być pojedyncze ’ lub podwójne ” Atrybuty można podawać jedynie w znaczniku początkowym; Atrybut Atrybuty mogą być (przy projektowaniu struktury): Opcjonalne; Obowiązkowe; <sonet numer=14 numer=1> <sonet numer(dec)=”14”> <sonet numer=14> <sonet numer=”14”> … </sonet numer=”14”> <sonet numer=”14’dec’ ”> METAJĘZYKI 2017-03-26

ATRYBUTY Atrybuty – Elementy mogą być stosowane wymiennie Duża liczba atrybutów utrudnia czytanie dokumentu Trudność utworzenia struktury Nazwy atrybutów nie mogą się powtarzać METAJĘZYKI 2017-03-26

Dokumenty XML Dokumentem XML może być: Plik; Zbiór przechowywany w bazie danych; Zbiór tworzony w pamięci, przez aplikację; Zestaw kilku odrębnych plików; Ogólnie dokument XML składa się z tak zwanych encji METAJĘZYKI 2017-03-26

Dokument XML poprawnie sformułowany (ang. well-formed) Dokument XML poprawny składniowo deklaracja xml (1 linia) – łączenie dokumentów w 1 istnienie co najmniej jednego elementu w strukturze (główny), każdy element musi być zamknięty, nie ma nakładających się elementów, nazwy atrybutów nie mogą się powtarzać, wartości atrybutów w apostrofach lub cudzysłowach, czy encje są prawidłowo zdefiniowane predefiniowane zewnętrzne (w DTD) METAJĘZYKI 2017-03-26

Dokument XML poprawnie sformułowany (ang. well-formed) Parsery i przeglądarki (np.IE6.0) błędnie sformułowany kod XML natychmiast zgłosi jako błąd składniowy; Pisanie kodu XML podobne jest do pisania w jakimś języku programowania: Pisanie kodu; „kompilowanie” kodu; Znajdowanie i poprawianie błędów; METAJĘZYKI 2017-03-26

Zastosowania XML (definiowanie języków) Definiowanie języków (zastosowań, struktury dokumentów – encyklopedia, kodeks, raport): określanie zestawu dopuszczalnych elementów, atrybutów, definiowanie dopuszczalnej zawartości elementów (tekst, inne elementy), przypisywanie atrybutów do elementów, Metody definiowania struktury: dokument XML bez określonej struktury, DTD – Document Type Definition, XML Schema METAJĘZYKI 2017-03-26

Dokument XML poprawny strukturalnie (ang. valid) struktura dokumentu zgodna ze strukturą zdefiniowaną w definicji typu dokumentu / XMLSchema, obecne wszystkie wymagane atrybuty. Zawartość elementów zgodna z założeniem. Programy do walidacji: DTD – xmlvalid.exe, XMLShell, InfoxFree, http://www.stg.brown.edu/service/xmlvalid/ XMLSchema – ScheamtronValidator, XMLShell, InfoxFree METAJĘZYKI 2017-03-26

Zalety istnienia DTD (struktury) DTD może sprawdzać poprawność dokumentu XML co pozwala unikać błędów w fazie tworzenia dokumentu DTD jest opisem dokumentu dzięki czemu różne osoby mogą określać jakie dane będą im potrzebne i jak je pobierać; Można automatycznie konwertować jedne formaty dokumentów na inne; Są pewnego rodzaju dokumentacją dokumentów XML DTD może wspomagać twórców dokumentów, np. Mogą podpowiadać użycie odpowiednich znaczników w odpowiednim miejscu dokumentu. Pozwala wielu osobom tworzyć wiele jednakowych (strukturalnie) dokumentów METAJĘZYKI 2017-03-26

Proces sprawdzania poprawności struktury DTD w pliku zewnętrznym DTD wewnątrz dokumentu XML METAJĘZYKI 2017-03-26

Deklaracja typu dokumentu DTD zawiera opis dopuszczalnych struktur dokumentu - język opisu dokumentu; DTD ma postać: <!DOCTYPE nazwa [podzbiór.wewnętrzny]> <!DOCTYPE nazwa SYSTEM [plik.zewnętrzny]> nazwa powinna być taka sama jak nazwa elementu głównego; <?xml version=„1.0”?> <!DOCTYPE list [...]> <list>........</list> <?xml version=„1.0”?> <!DOCTYPE list SYSTEM ”listdtd.dtd”> <list>........</list> METAJĘZYKI 2017-03-26

Przykład DTD <?xml version=”1.0” standalone="yes" encoding=”UTF-16”?> <!DOCTYPE sonet [ <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor plec (M | K) "M"> <!ELEMENT linia EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> ]> <sonet> <autor plec="M">Adam Mickiewicz </autor> <linia/> <!-- komentarz Sonet XIII  --> <tytul>Sonet XIII</tytul> <zwrotka> <wers>Drzac muslimin całuje stopy twej opoki,</wers> <wers>Maszcie krymskiego statku, wielki Czatyrdahu!</wers> </zwrotka> </sonet> <!DOCTYPE list SYSTEM ”sonet.dtd”> --> <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor plec (M | K) "M"> <!ELEMENT linia EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> METAJĘZYKI 2017-03-26

Przykład DTD <?xml version=”1.0” standalone="yes" encoding=”UTF-16”?> <!DOCTYPE sonet [ <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor plec (M | K) "M"> <!ELEMENT linia EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> ]> <sonet> <autor plec="M">Adam Mickiewicz </autor> <linia/> <!-- komentarz Sonet XIII  --> <tytul>Sonet XIII</tytul> <zwrotka> <wers>Drzac muslimin całuje stopy twej opoki,</wers> <wers>Maszcie krymskiego statku, wielki Czatyrdahu!</wers> </zwrotka> </sonet> <!-- DOCTYPE list SYSTEM ”sonet.dtd”> --> <!ELEMENT sonet (autor, linia*, tytul,zwrotka+)> <!ELEMENT autor (#PCDATA)> <!ATTLIST autor plec (M | K) "M"> <!ELEMENT linia EMPTY> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers+)> <!ELEMENT wers (#PCDATA)> METAJĘZYKI 2017-03-26

DTD – Deklaracje Deklaracja DOCTYPE: <!DOCTYPE nazwa zawartość> <!DOCTYPE nazwa SYSTEM „plik”> plik – zawiera deklaracje DTD Dysk:/katalogi/plik Plik Adres URL <!DOCTYPE nazwa PUBLIC ”opis” ”adres”> Uznany przez określoną społeczność standard dokumentów XML „opis” to dodatkowe informacje o osobach odpowiedzialnych za standard METAJĘZYKI 2017-03-26

DTD – Deklaracje Deklaracja elementów: Deklaracja atrybutów: <!ELEMENT nazwa zawartość> Deklaracja atrybutów: <!ATTLIST nazwa.elem nazwa.atryb zawartość> Deklaracja encji: <!ENTITY rozdzial1 SYSTEM "rozdzial1.xml"> METAJĘZYKI 2017-03-26

DTD – Elementy Typy elementów: Element tekstowy: Element pusty: <!ELEMENT autor(#PCDATA)> Element pusty: <!ELEMENT linia EMPTY> Element dowolny: <!ELEMENT spacja ANY> METAJĘZYKI 2017-03-26

DTD – Elementy Listy elementów: <<!ELEMENT sonet (autor, linia, tytuł, zwrotka)> !ELEMENT auto (fabryka, nazwa, rok.produkcji)> <sonet> <autor> Adam Mickiewicz </autor> <linia/> <tytuł> Sonet XIII </tytuł> <zwrotka> a tu tekst </zwrotka> </sonet> <auto> <fabryka> Ford </ fabryka > <nazwa> Sierra </nazwa> <rok.produkcji>1991</rok.produkcji> </auto> METAJĘZYKI 2017-03-26

DTD – podelementy Wybór elementów: <!ELEMENT poezja (wiersz | esej | powiesc)> <!ELEMENT adres ( ip | nazwa | skrót) > <poezja><wiersz> jakis wierszyk </wiersz></poezja> <poezja><wiersz> jakis inny wierszyk </wiersz></poezja> <poezja> <esej> a teraz sonet </esej> <adres> <ip>12.12.12.12</ip> </adres> <skrót>termit</skrót> METAJĘZYKI 2017-03-26

DTD – podelementy Lista z wyborem elementów: Wybór elementów: <!ELEMENT poezja ((wiersz | sonet), autor, tytuł)> <poezja> <wiersz> jakis wierszyk </wiersz> <autor> Adaś Mickiewicz</autor> <tytuł> kotek</tytuł> </poezja> Lista z wyborem elementów: <!ELEMENT adresFTP (( ip | nazwa), user, (pass | anonym ))> <adresFTP> <ip>12.12.12.12</ip> <user>beny</user> <anonym/> </AdresFTP> METAJĘZYKI 2017-03-26

DTD – indeks wystąpień Indeks wystąpień elementów: + - element występuje co najmniej raz <!ELEMENT multilotek (liczba+)> <multilotek> <liczba>5</liczba><liczba>43</liczba><liczba>55</liczba> </multilotek <liczba>5</liczba> METAJĘZYKI 2017-03-26

DTD – indeks wystąpień Indeks wystąpień elementów: ? - element występuje raz lub wcale; <!ELEMENT multilotek (kupon.wygrany?)> <multilotek> <kupon.wygrany>tak</kupon.wygrany> </multilotek </multilotek> METAJĘZYKI 2017-03-26

DTD – indeks wystąpień Indeks wystąpień elementów: * - element występuje dowolną ilość razy od 0 zaczynając; <!ELEMENT mulilotek (główna.wygrana*)> <multilotek> <główna.wygrana>jacek placek</główna.wygrana> <główna.wygrana>zenek i romek</główna.wygrana> </multilotek METAJĘZYKI 2017-03-26

DTD – indeks wystąpień Indeks wystąpień elementów: <!ELEMENT sonet (autor+, linia?, tytuł, zwrotka*)> <sonet> <autor>Adam Mickey </autor> <autor>Julek Czech </autor> <tytul>Sonet XIII</tytul> <zwrotka> <wers>Drzac muslimin całuje stopy twej opoki,</wers> </zwrotka> <wers>Maszcie krymskiego statku, wielki Czatyrdahu!</wers> </sonet> METAJĘZYKI 2017-03-26

DTD – Deklaracja atrybutów <!ELEMENT nazwa.elementu EMPTY> <!ATTLIST nazwa.elementu definicje.atrybutów> Rodzaje atrybutów: Tekstowy – ciąg znaków <!ATTLIST team nazwa CDATA> Wyliczane – pobierane z zadeklarowanej listy; <!ATTLIST farba kolor (biały | zielony | żółty) „biały”> Atomizowane – wartości rozpoznawalne przez XML; <!ATTLIST team id ID> METAJĘZYKI 2017-03-26

DTD – ATRYBUTY Atrybuty atomizowane: ID – identyfikator elementu w którym dany element wystąpił, nie może być dwóch takich samych wartości w całym dokumencie; <!ATTLIST team id ID> <team id=„a01”>gwardia</team> <team id=„a02”>lech</team> <team id=„a03”>kotwica</team> IDREF – wskaźnik na wartość ID; <!ATTLIST kapitan drużyna IDREF> <kapitan drużyna=„a02”>roninio<./kapitan> <kapitan drużyna=„a01”>dodi</kapitan> METAJĘZYKI 2017-03-26

DTD – ATRYBUTY IDREFS – wskaźnik na większą liczbę wartości IDREF; <!ATTLIST drużyna pilkarz IDREFS> <team drużyna=„a22,a24,a44,a11”>śląsk</team> <team drużyna=„a2,a4,a43,a1”>ślęza</team> ENTITY – Wskaźnik encji zadeklarowanej w DTD Wskaźnik na plik, obraz, tekst; Zmienna kryjąca dalszą informację METAJĘZYKI 2017-03-26

DTD – ATRYBUTY Domyślne wartości atrybutów: #REQUIRED – atrybut musi być ustawiony i powinien wystąpić; <!ATTLIST team id ID #REQUIRED> #IMPLIED – XML ma poinformować aplikacje, że nie podano żadnej wartości, a aplikacja ma zdecydować, co dalej; <!ATTLIST pilkarz numer #IMPLIED> #FIXED – każda wartość ma być zgodna z wartością domyślną <!ATTLIST team trener #FIXED „Boniek”> METAJĘZYKI 2017-03-26

<gracz id="g1" pseudo="Kowal"/> <mecz> <druzyna> <gracz id="g1" pseudo="Kowal"/> <gracz id="g2" pseudo="Miszczu"/> <gracz id="g3" pseudo="Balcer"/> </druzyna> <pierwsza5 kto="g1 g3"/> <kwarta> <element czas="1:12" kto="g1" typ="zbiorka"/> <element czas="2:23" kto="g2"/> <element czas="4:02" kto="g3" typ="asysta"/> </kwarta> </mecz> <!ELEMENT mecz (druzyna, pierwsza5, kwarta*)> <!ELEMENT druzyna (gracz*)> <!ELEMENT gracz EMPTY> <!ATTLIST gracz id ID #REQUIRED> <!ATTLIST gracz pseudo CDATA #REQUIRED> <!ELEMENT pierwsza5 EMPTY> <!ATTLIST pierwsza5 kto IDREFS #REQUIRED> <!ELEMENT kwarta (element*)> <!ELEMENT element EMPTY> <!ATTLIST element czas CDATA #IMPLIED> <!ATTLIST element kto IDREF #REQUIRED> <!ATTLIST element typ (pkt | zbiorka | asysta) "pkt"> METAJĘZYKI 2017-03-26

Encje Umożliwiają nazywanie fragmentów języka XML, następnie pozwalają wielokrotnie użyć poprzez ich nazwy Wewnętrzne (nazwa + ciąg znaków): Deklaracja: <!ENTITY nazwa „dowolny tekst”> <!ENTITY pytanie „wciśnij T lub N”> Wywołanie encji: &nazwa; Np.:<tekst>Grasz dalej? &pytanie; </tekst> deklaruje się w DTD; Widziane tylko w ramach tego samego dokumentu METAJĘZYKI 2017-03-26

Encje Zewnętrzne (nazwa + wskazanie na plik zewnętrzny): Wskazują na fragmenty kodu XML lub elementy DTD <!DOCTYPE ksiazka [ <!ENTITY rozdzial1 SYSTEM "rozdzial1.xml"> <!ENTITY rozdzial2 SYSTEM "rozdzial2.xml"> <!ENTITY rozdzial3 SYSTEM "rozdzial3.xml"> ]> <ksiazka> &rozdzial1; &rozdzial2; &rozdzial3; </ksiazka> METAJĘZYKI 2017-03-26

Zewnętrzny i wewnętrzny DTD Zewnętrzny podzbiór DTD: deklaracje wspólne dla wszystkich dokumentów danego typu: elementy, atrybuty, encje. Wewnętrzny podzbiór DTD: deklaracje lokalne dla dokumentu: deklaracje encji, METAJĘZYKI 2017-03-26

Ograniczenia DTD Ograniczenie treści elementów do typu tekstowego (#PCDATA) Brak innych typów danych (int, float, …) Brak wartości domyślnych elementów Małe możliwości kontroli typów atrybutów Tylko typ wyliczeniowy Brak możliwości definiowania podstruktur wykorzystywanych wielokrotnie Brak dziedziczenia, rozszerzania i ograniczania Brak możliwości zmiany kolejności elementów Brak możliwości ustalenia kolejności atrybutów Ograniczenia ID dla atrybutów (zawsze dotyczy całego dokumentu bez rozróżnienia różnych elementów) Syntaktyka DTD nie jest podobna do zapisu XMLowego Rozszerzonie Struktury - XMLSchema METAJĘZYKI 2017-03-26