XML – eXtensible Markup Language 3

Slides:



Advertisements
Podobne prezentacje
Definiowanie typów dokumentów
Advertisements

Katarzyna Szafrańska kl. II ti
Technologie prezentacji medialnych, © 2006 Igor Garnik
SQL – Strukturalny język zapytań
XHTML Podstawowe różnice.
Instrukcje strukturalne
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Definiowanie typów dokumentów Część 1: DTD 9 października 2003.
11 Poprawne modele zawartości. Zarządzanie zmianami struktury.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema
11 XML a SGML. Standardy pokrewne.. 22 SGML a XML – różnice Deklaracja SGML: konfiguracja wyglądu znaczników, ich maksymalnej długości, itp., definicja.
Definiowanie typów dokumentów Część 3. 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.
XML Schema w przykładach Maciej Ogrodniczuk
Definiowanie typów dokumentów Część 1. DTD, XML Schema.
Definiowanie typów dokumentów Część 2: XML Schema 16 października 2003.
Definiowanie typów dokumentów Część 2. XML Schema
Definiowanie typów dokumentów Część 3. XML Schema.
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema.
Definiowanie typów dokumentów Część 1. DTD, XML Schema.
XSL Extensible Stylesheet Language 6 listopada 2003.
Zaawansowana składnia XML XML Schema
Definiowanie typów dokumentów Część 3. 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.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 5: Typy porządkowe, wyliczeniowe i okrojone. Definiowanie.
XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss.
Damian Urbańczyk PHP Data i czas.
Funkcje znakowe, liczbowe i obsługa dat Kolejny krok w poznaniu SQL-a.
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Tablice jednowymiarowe 1
Typy danych – podstawy 1 W Adzie wszystkie dane muszą być określonego typu. Definicja Typ danych (data type) jest to zbiór wartości i operacji, które można.
Wykład 2 struktura programu elementy języka typy zmienne
Język SQL (Structured Query Language) DDL (Data Definition Language)
Proszę skopiować eclipse najlepiej do c:\temp uruchamiamy rejestrujemy jako academic.
PODSTAWY <HTML>
Podstawy C# Grupa .NET PO.
Pakiety w Javie Łukasz Smyczyński (132834). Czym są pakiety? Klasy w Javie są grupowane w pewne zbiory zwane pakietami. Pakiety są więc pewnym podzbiorem.
Podstawy programowania
Janusz Langer 19 wrzesień 2006, FTB/ZBP, Warszawa
XML – eXtensible Markup Language 4. XSL transformations (XSLT) XSLT (ang. eXtensible Stylesheet Language Transformations) jest opartym na XML językiem.
TABLICE C++.
System rejestracji zawodników Polski Związek Judo 2006.
Tworzenie przedmiotów, zajęć i protokołów
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
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Aplikacje internetowe
Elementy multimedialne na stronie
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Zmienne i typy danych w C#
Czyli króciutki opis języka programowania jakim jest HTML.
Opracowanie mgr Karol Adamczyk
Typy danych, klucz podstawowy, klucz obcy
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
I TY ZOSTAŃ WEBMASTEREM! CZĘŚĆ 2 – „STRUKTURA STRONY” STWORZYŁ GABRIEL ŚLAWSKI.
BAZY DANYCH Microsoft Access Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej Katedra Automatyki i.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego Matuszyka Podstawy.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Wzorzec MVC na przykładzie CakePHP
Aplikacje i usługi internetowe
Język C++ Typy Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania Prezentacja przygotowana w oparciu o materiały Danuty Szeligi i Pawła Jerzego.
Zapis prezentacji:

XML – eXtensible Markup Language 3

Atrybuty Poprawny strukturalnie dokument (valid) musi mieć zadeklarowane atrybuty wszystkich elementów. Wykorzystujemy w tym celu instrukcję ATTLIST Atrybuty deklarujemy oddzielnie dla każdego elementu. Elementy mogą posiadać kilka atrybutów. Przykład 1 <!ATTLIST image source CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED >

Atrybuty Pojedynczy element ATTLIST może deklarować wiele atrybutów dla tego samego elementu. Przykład 2 <!ATTLIST image source CDATA #REQUIRED width CDATA #REQUIRED height CDATA #REQUIRED alt CDATA #IMPLIED > gdzie: #REQUIRED – atrybut obowiązkowy #IMPLIED – atrybut nieobowiązkowy

Atrybuty Istnieją następujące typy atrybutów: 1. CDATA – dowolny ciąg znaków. Przykład 3 <!ATTLIST image alt CDATA #IMPLIED> 2. ID – nazwa która jest wyjątkowa w całym dokumencie XML. Przykład 4 <!ATTLIST pracownik nr ID #REQUIRED> <pracownik nr="ss9876-12-3456"> <imie>Tomek</imie> <nazwisko>Nowak</nazwisko> </pracownik>

Atrybuty 3. NMTOKEN - składa się z tych samych znaków co nazwy XML. Może się zaczynać od dowolnej litery i znaku. Przykład 5 <!ATTLIST journal year NMTOKEN #REQUIRED> 4. NMTOKENS - składa się z kilku wartości NMTOKEN. Przykład 6 <performances dates="08-21-2001 08-23-2001 08-27-2001"> Kat and the Kings </performances>

Atrybuty 5. (v1 | v2 | ... |vn) - wszystkie możliwe wartości. Przykład 7 <!ATTLIST date month (January|February|March|April|May |June|July|August|September|October|November|December) #REQUIRED> <!ATTLIST date day (1|2|3|4|5|6|7|8|9|10|11|12|13|14| 15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) #REQUIRED> <!ELEMENT date EMPTY>

Atrybuty 6. IDREF – odwołanie do innego elementu z atrybutem ID. Przykład 8 <!ATTLIST pracownik id ID #REQUIRED> <!ATTLIST projekt id ID #REQUIRED> <!ATTLIST sklad pracownik_id IDREF #REQUIRED> <!ATTLIST wprojekcie projekt_id IDREF #REQUIRED> <pracownik id="ss9876-12-3456"> <wprojekcie projekt_id="p2"/> </pracownik> <projekt projekt_id="p2"> <sklad pracownik="ss9876-12-3456"/> </project> 7. IDREFS – ciąg kilku IDREF rozdzielonych spacjami.

Typy wartości atrybutów #REQUIRED – atrybut musi pojawić się z każdym wystąpieniem elementu. #IMPLIED – atrybut nieobowiązkowy. #FIXED "wartość" – atrybut obowiazkowy o wartości określonej przez wartość. Przykład 9 <!ATTLIST biography xmlns:xlink CDATA #FIXED "http://www.w3.org/1999/xlink"> "wartość" – wartość domyślna atrybutu. Przykład 10 <!ATTLIST web_page protocol NMTOKEN "http">

XML Schema (Podobnie jak DTD) XML Schema to opracowany przez W3C standard służący do definiowania struktury dokumentu XML. (W przeciwieństwie do DTD) XML Schema jest aplikacją XML. XML pozwala (dokładniej niż DTD) określić strukturę dokumentów XML. XML schema oferuje większą niż DTD ilość typów (elementów, atrybutów, danych). W XML schema możemy definiować własne typy wykorzystując typy „wbudowane”. Dokumenty zawierające definicje XML Schema zapisuje się zwykle w plikach z rozszerzeniem xsd.

XML Schema Struktura dokumentu XML schema <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ... </xs:schema> Prefix xs możemy pominąć. <?xml version="1.0"?> <schema xmlns="http://www.w3.org/2001/XMLSchema"> ... <schema>

XML Schema – deklaracje elementów i atrybutów Elementy Każdy element dokumentu XML deklarujemy w następujący sposób: <element name="nazwa" type="typ elementu"> Przykład 11 <element name="fullName" type="string"> Oprócz atrybutu type każdy element może posiadać nastepujące atrybuty: minOccurs=”x” - określa minimalną liczbę wystapień elementu. maxOccurs=”x” - określa maksymalną liczbę wystapień elementu. W przypadku braku tych atrybutów wartość x ma domyślną wartość 1.

XML Schema – deklaracje elementów i atrybutów Przykład 11 <element name=”email”> <element name=”head” minOccurs=”1” maxOccurs=”1”> <element name=”to” minOccurs=”1”> Atrybuty Atrybuty dokumentu XML deklarujemy w następujący sposób: <attribute name="nazwa" type="typ atrybutu"> Przykład 12 <attribute name="id" type="ID">

XML Schema – deklaracje elementów i atrybutów Oprócz atrybutu type każdy deklaracja może posiadać nastepujące atrybuty: use=”x” - gdzie x może przyjmować wartości optional lub required. wartość use=”x” vales=” ” - gdzie x może przyjmować wartości default lub fixed. Przykład 13 <element name=”id” type=”ID” use=”required”/> <element name=”speaks” type=”Language” use=”default” value=”en”/>

XML Schema – proste typy danych Typy numeryczne Przykłady xs:byte - liczba całkowita z przedziału -128 127 xs:double - 03.1415292, 6.022E23, 127E-13 xs:float – 3.1415292, -03.1415292, 6.022E23, 127E-13 xs:integer - 3, 3000, 349847329847983264983264987326487326487324678346374 Typ logiczny xs:boolean - true, false, 0, 1

XML Schema – proste typy danych Typy znakowe Przykłady xs:string xs:NCName – dowolna nazwa XML xs:ID – nazwa XML niepowtarzalna w całym dokumencie XML xs:IDREF xs:NMTOKEN xs:NMTOKENS xs:language – kody języków zdefiniowane w ISO 639 np. en, en-US, en-GB, fr-CA

XML Schema – typy danych Typy wbudowane Typy zwiazane z datą i czasem Przykłady xs:time – czas w formacie ±hh:mm:ss.xxx (xxx – ułamki sekund). Dodatkowa litera Z oznacza czas Greenwich. 03:32:00-05:00 00:00:00Z 08:30:34.121893632178 xs:date – data w formacie YYYY-MM-DD±hh:mm 2001-01-01 2002-12-23+12:00 -8750-01-01

XML Schema – typy danych Typy definiowane przez użytkownika Typy złożone (complex data types) – wykorzystujemy elementy i atrybuty. <xs:complexType name="nazwa typu"> ... </xs:complexType> Definiując typy złożone możemy wykorzystać następujące elementy: sequence – ciąg elementów typów wbudowanych (ważna kolejność) all – elementy typów wbudowanych z których wszystkie muszą się pojawić. choice – elementy do wyboru.

XML Schema – typy danych Przykład 11 <xs:complexType name="lecturerType"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:attribute name="title" type="xs:string" use="xs:optional"/> </xs:complexType>

XML Schema – typy danych Przykład 11 Zdefiniujemy typy danych które mogą pojawić się w dokumencie XML będącym listem. <xs:element name="letter"> <xs:complexType mixed="true"> <xs:sequence> <xs:element name="greeting"/> <xs:element name="body"/> <xs:element name="closing"/> </xs:sequence> </xs:complexType> </xs:element> Typ złożony może posiadać atrybut mixed, który określa czy w elemencie danego typu mogą pojawić sie dane znakowe.

XML Schema – typy danych <xs:element name="greeting"> <xs:complexType mixed="true"> <xs:choice> <xs:element name="hello"/> <xs:element name="hi"/> <xs:element name="dear"/> </xs:choice> </xs:complexType> </xs:element> <xs:element name="body"> <xs:complexType mixed="true"> <xs:all> <xs:element name="item"/> <xs:element name="price"/> <xs:element name="arrivalDate"/> </xs:all> </xs:complexType> </xs:element>

XML Schema – typy danych Formularz listu wygląda następująco: <letter xsi:noNamespaceSchemaLocation="formletter.xsd"> <greeting><hello/> Bob!</greeting> <body> Thank you for ordering the <item/> ($<price/>), it should arrive by <arrivalDate/>. </body> </letter>

XML Schema – typy danych Rozszerzanie typów dany – rozszerzamy typy danych przez dodanie nowych elementów lub atrybutów. Przykład 11 <xs:complexType name="lecturerType"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:attribute name="title" type="xs:string" use="xs:optional"/> </xs:complexType> Chcemy rozszerzyć typ lecturerType do typu extendedLecturerType przez dodanie informacji o adresie e-mail.

XML Schema – typy danych <xs:complexType name="extendedLecturerType"> <xs:extension base="lecturerType"> <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:extension> </xs:complexType> Otrzymany w ten sposób następujący typ danych: <xs:complexType name="extendedLecturerType"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> <xs:element name="email" type="xs:string" minOccurs="0" maxOccurs="1"/> </xs:sequence> <xs:attribute name="title" type="xs:string" use="xs:optional"/> </xs:complexType>

XML Schema – typy danych Ograniczanie typów dany – ograniczamy typ danych przez dodanie więzów (ograniczeń) na pewne wartości. Przykład 11 <xs:complexType name="lecturerType"> <xs:sequence> <xs:element name="firstname" type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> <xs:attribute name="title" type="xs:string" use="xs:optional"/> </xs:complexType> Chcemy ograniczyć typ lecturerType do typu restrictedLecturerType.

XML Schema – typy danych <xs:complexType name="restrictedLecturerType"> <xs:restriction base="lecturerType"> <xs:sequence> <xs:element name="firstname" type="xs:string" minOccur="1" maxOccur="2"/> </xs:sequence> <xs:attribute name="title" type="xs:string" use="xs:required"/> </xs:complexType>

XML Schema – typy danych Typy proste (simple data types) – definiujemy m.in. przez ograniczenie typów wbudowanych. Przykład 11 <xs:simpleType name="dayOfMonth"> <xs:restriction base="xs:integer"> <minInclusive value="1"/> <maxInclusive value="31"/> </xs:restriction> </xs:simpleType> Przykład 11 <xs:simpleType name="nameString"> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType>

XML Schema – typy danych Przykład 11 <xs:simpleType name="locationType"> <xs:restriction base="xs:string"> <xs:enumeration value="work"/> <xs:enumeration value="home"/> <xs:enumeration value="mobile"/> </xs:restriction> </xs:simpleType>

XML Schema – typy danych Przykład 11 XML schema dla poczty elektronicznej. <element name=”email” type=”emailType”> <complexType name=”emailType”> <sequence> <element name=”head” type=”headType”/> <element name=”body” type=”bodyType”/> </sequence> </xs:complexType>

XML Schema – typy danych <complexType name=”headType”> <sequence> <element name=”from” type=”nameAdress”/> <element name=”to” type=”nameAdress” minOccurs=”1” maxOccurs=”unbounded”/> <element name=”cc” type=”nameAdress” minOccurs=”0” maxOccurs=”unbounded”/> <element name=”subject” type=”string”/> </sequence> </xs:complexType> <complexType name=”nameAdress”> <attribute name=”name” type=”string” use=”optional”/> <attribute name=”adress” type=”string” use=”required”/> </xs:complexType>

XML Schema – typy danych <complexType name=”bodyType”> <sequence> <element name=”text” type=”string”/> <element name=”attachment” minOccurs=”0” maxOccurs=”unbounded”/> <complexType> <attribute name=”encoding” use=”default” value=”mime”> <simpleType> <restriction base=”string”> <enumeration value=”mime”/> <enumeration value=”binhex”/> </restriction> </simpleType> </attribute> <attribute name=”file” type=”string” use=”required”/> </complexType> </element> </sequence>

Przestrzenie nazw Przykład 11 Dwa muzea posiadają dokumenty XML i okreslone dla nich DTD (lub XML Schema) zawierające opis eksponatów. Muzeum 1 (DTD 1): <?xml version="1.0" encoding="ISO-8859-1"> <catalog> <painting> <title> Memory of the Garden at Etten </title> <artist>Vincent Van Gogh</artist> <date>November, 1888</date> <description> Two women look to the left. A third works in her garden. </description> </painting> ... </catalog>

Przestrzenie nazw Muzeum 2 (DTD 2): <?xml version="1.0" encoding="ISO-8859-1"> <catalog> <painting> <title>The Swing</title> <artist>Pierre-Auguste Renoir</artist> <date>1876</date> <description> A young girl on a swing. Two men and a toddler watch. </description> </painting> ... </catalog> Oba muzea panują wspólną wystawę swoich eksponatów. Informacja o wystawianych eksponatach ma być dostępna w Internecie.

Przestrzenie nazw Katalog Muzeum 1 i Muzeum 2: <?xml version="1.0" encoding="ISO-8859-1"> <catalog> <painting> <title>Memory of the Garden at Etten</title> <artist>Vincent Van Gogh</artist> <date>November, 1888</date> <description> Two women look to the left. A third works in her garden. </description> </painting> <title>The Swing</title> <artist>Pierre-Auguste Renoir</artist> <date>1876</date> <description> A young girl on a swing. Two men and a toddler watch. </description> </painting> </catalog>

Przestrzenie nazw Czy mozna w ten sposób łączyć dokumenty XML? Można, ale... ...mogą pojawić się problemy podczas walidacji jeżeli elementy w dokumencie XML zawierającym katalog Muzeum 1 są zdefiniowane inaczej niż elementy w dokumencie XML zawierającym katalog Muzeum 2. Walidator napotykając dowlny element w dokumencie musi wiedzieć czy element ten jest zdefiniowany W DTD 1 czy w DTD2. Informację taką zapisujemy wykorzystując tzw. przestrzenie nazw. Deklaracja przestrzeni nazw: xmlns:prefix=”położenie”

Przestrzenie nazw <?xml version="1.0" encoding="ISO-8859-1"> <m1:catalog xmlns:m1=”http://www.muzeum1.pl/DTD/” xmlns:m2=”http://www.muzeum1.pl/DTD/”> <m1:painting> <m1:title>Memory of the Garden at Etten</m1:title> <m1:artist>Vincent Van Gogh</m1:artist> <m1:date>November, 1888</m1:date> <m1:description> Two women look to the left. A third works in her garden. </m1:description> </m1:painting> <m2:painting> <m2:title>The Swing</m2:title> <m2:artist>Pierre-Auguste Renoir</m2:artist> <m2:date>1876</m2:date> <m2:description> A young girl on a swing. Two men and a toddler watch. </m2:description> </m2:painting> </catalog>