Zaawansowana składnia XML XML Schema

Slides:



Advertisements
Podobne prezentacje
Funkcje w PHP ABK.
Advertisements

Ewa Skrenty Uczelniane Centrum Informatyczne UMK
Definiowanie typów dokumentów
Przekształcanie dokumentów XML - XSL
Rafał Hryniów Tomasz Pieciukiewicz
Implementacja procesora XSLT w języku Ocaml
XHTML Podstawowe różnice.
Instrukcje strukturalne
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
Polsko-Japońska Wyższa Szkoła Technik Komputerowych
XPath XSLT – część XPath. XSLT – część 12 XPath – XML Path Language Problem: –jednoznaczne adresowanie fragmentów struktury dokumentu XML.
Definiowanie typów dokumentów Część 1: DTD 9 października 2003.
11 Poprawne modele zawartości. Zarządzanie zmianami struktury.
XSL – przekształcenia XML-a
XPath. XSLT – część XPath. XSLT – część 12 XPath – XML Path Language Problem: –jednoznaczne adresowanie fragmentów struktury dokumentu XML.
Symbole wieloznaczne w XML Schema
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
Poprawne modele zawartości. Zarządzanie zmianami struktury. 30 października 2003.
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
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.
XSL – część 2.
XML w zarządzaniu formularzami ubezpieczeniowymi ZUS
11 RDF Wertykalne zastosowania XML-a. 22 RDF - Wprowadzenie Problemy Sieć jest nieczytelna dla programów komputerowych. Sieć zawiera zbyt wiele informacji.
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.
11 Dowiązania w XML-u. Formy architektoniczne.. 22 XLink – dowiązania w XML-u Linki jakie znamy (HTML): łączą dwa dokumenty: źródło i cel linku, źródłem.
Definiowanie typów dokumentów Część 3. XML Schema.
Poprawne modele zawartości. Zarządzanie zmianami struktury.
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.
11 Systemy zarządzania dokumentami. 22 Statystyka 90% zasobów informacyjnych firm jest przechowywanych w dokumentach a nie w bazach danych (Delloite &
XPath. XSL – część 1..
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.
Technologie XML Mgr inż. Michał Jaros Technologie XML wykład 3.
Internet Communication Engine
XML, DTD, Schema Zaawansowane Aplikacje Internetowe Dawid Weiss.
Standardy tworzenia dokumentów [Michał Kuciapski ]
Wykład 2: Systemy klasy C.A.T. (Computer-Aided Translation)
XML. Pierwszy dokument XML Witaj świecie! Elementy i atrybuty niezwykle oryginalny Witaj świecie! Druga możliwość: Witaj świecie!
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
Proszę skopiować eclipse najlepiej do c:\temp uruchamiamy rejestrujemy jako academic.
Made by Mateusz Szirch Kilka słów o JavaScript.
METAJĘZYKI 2 Politechnika Koszalińska
XML eXtensible Markup Language. 2 Prowadzący Michał Kozielski p. 413 mail:
Twoje narzędzie do pracy grupowej
System webowy do tworzenia kolektywnych prototypów aplikacji sieciowych i mobilnych Łukasz Przywarty
Janusz Langer 19 wrzesień 2006, FTB/ZBP, Warszawa
XML – eXtensible Markup Language 3
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.
Symbole wieloznaczne w XML Schema
XML Publisher Przedmiot i zakres szkolenia Przedmiot i zakres szkolenia Przeznaczenie XML Publisher Przeznaczenie XML Publisher Definiowanie Definiowanie.
Model obiektowy bazy danych
Temat 1: Ogólne cechy języka PHP
Czyli króciutki opis języka programowania jakim jest HTML.
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.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
Visual Basic przygotował Michał Miłek Visual Basic – język programowania wysokiego poziomu i narzędzie programistyczne firmy Microsoft. Składnia jest oparta.
Założenia projektowe Javy
Zapis prezentacji:

Zaawansowana składnia XML XML Schema

Zaawansowana składnia XML Komentarz: <!-- komentarz --> Instrukcja przetwarzania: <?target processing-instruction-body?> Sekcja CDATA: <![CDATA[dowolny <tekst " nieprzetwarzany & przez [ parser]]> Odwołania do znaków: ¡ ¡ kody zgodne ze standardem ISO/IEC 10646.

Unicode Światowy standard kodowania narodowych znaków przy pomocy dwubajtowych par: podzbiór ISO/IEC 10646. Odmiany: UTF-7, UTF-8 (pierwsze 128 - ASCII), UTF-16. Obowiązkowy standard dla dokumentów XML: każde narzędzie XML-owe musi wspierać przynajmniej UTF-8.

Sekcje warunkowe Włączanie i wyłączanie fragmentów DTD: <![INCLUDE[ <!ELEMENT biogr (imie, nazwisko, data-ur, data-sm, opis)> ]]> <![IGNORE[ <!ELEMENT biogr (imienazw, data-ur, data-sm, opis)> ]]>

Sekcje warunkowe + encje parametryczne Zewnętrzny podzbiór DTD: <!ENTITY % ver1 "IGNORE"> <!ENTITY % ver2 "INCLUDE"> <![%ver2;[ <!ELEMENT biogr (imie, nazwisko, data-ur, data-sm, opis)> ]]> <![%ver1;[ <!ELEMENT biogr (imienazw, data-ur, data-sm, opis)> ]]> Dokument zgodny z wersją 1: <!DOCTYPE book SYSTEM "book.dtd" [ <!ENTITY % ver1 "INCLUDE"> <!ENTITY % ver2 "IGNORE"> ] <book> ... <imienazw>Szymon Zioło</imienazw> ... </book>

Dlaczego DTD nie wystarcza? Zastosowania w integracji aplikacji – struktury danych: przeniesienie zadania sprawdzania poprawności z tworzonej aplikacji na narzędzie walidujące daje spore oszczędności. 60% tworzonego kodu dotyczy weryfikacji poprawności danych. Roger L. Costello, XML Schema Tutorial Cechy DTD: jedynie podstawowa kontrola nad strukturą dokumentów, bardzo ogólne metody definiowania częstości wystąpień, mało "obiektowe", nierozszerzalne modele struktury. Taką kontrolę poprawności możemy oczywiście zaimplementować sami w kodzie naszej aplikacji (ewentualnie parametryzując aplikację przy pomocy atrybutów #FIXED), jest to jednak dość pracochłonne. Dobrze byłoby zrzucić walidację na parser XML. Standard XML Schema pozwala na definiowanie struktur dokumentów z dużo bardziej niż w DTD zaawansowaną kontrolą zawartości.

DTD – XML Schema Wywodzi się z SGML-a Zaprojektowany na potrzeby XML-a Specyficzna składnia Składnia XML 10 typów danych 41+ typów danych Brak kontroli tekstowej zawartości elementów Zaawansowana kontrola tekstowej zawartości elementów Typowy mieszany model zawartości Możliwość definiowania własnych typów danych.

Status XML Schema 15 lutego 1999: Dokument W3C opisujący wymagania stawiane przed nowym formatem: mechanizmy tworzenia struktury, typy proste, reguły przetwarzania. 2 maja 2001: XML Schema staje się oficjalną rekomendacją W3C: XML Schema Part 0: Primer, XML Schema Part 1: Structures, XML Schema Part 2: Datatypes. Obecnie: trwają prace nad wymaganiami do wersji 1.1 XML Schema. Przestrzeń nazw XML Schema: http://www.w3.org/2001/XMLSchema

Definiowanie elementów i atrybutów <xsd:element name="osoba"> <xsd:complexType> <xsd:sequence> <xsd:element name="imie" type="xsd:string"/> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="plec" type="xsd:string"/> <xsd:element name="wiek" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID"/> <xsd:attribute name="NIP" type="xsd:string"/> </xsd:complexType> </xsd:element>

Określanie typu elementu/atrybutu Atrybut type: <xsd:element name="imie" type="xsd:string"/> Podelement complexType lub simpleType: <xsd:element name="osoba"> <xsd:complexType> ... </xsd:complexType> </xsd:element>

Typy w XML Schema Wbudowane typy proste: string, boolean, integer, float, dateTime, ID, IDREF, CDATA, ... Typy proste definiują zbiory wartości atomowych (tzn. bez wewnętrznej struktury XML). Są nimi wszystkie typy wbudowane (np. liczba, napis, wartość logiczna), jak również typy stworzone na ich bazie (o tym później). Używa się ich do określania dopuszczalnych wartości atrybutów i zawartości elementów. Niektóre typy proste (ID, IDREF, CDATA) są zastrzeżone tylko dla atrybutów.

Typy w XML Schema Możliwość definiowania typów złożonych: sequence, choice, group, all. Kontrola użycia podelementów: minOccurs, maxOccurs. Kontrola użycia atrybutów: atrybut use o dopuszczalnych wartościach: required, optional lub prohibited. sequence - sekwencja wystąpień podelementów. chioce – alternatywa podelementów. group – grupowanie podelementów (nawiasy). all – wszystkie elementy muszą wystąpić, ale w dowolnej kolejności (konstrukcja dostępna w SGML DTD w postaci operatora &, lecz wycofana w XML DTD dla uproszczenia przetwarzania). Atrybuty minOccurs i maxOccurs określają liczby wystąpień elementów. Mogą one przyjmować wartości całkowite oraz specjalną wartość unbounded (nieograniczona liczba wystąpień).

Kontrola użycia elementów i atrybutów <xsd:element name="osoba"> <xsd:complexType> <xsd:sequence> <xsd:element name="imie" type="xsd:string" minOccurs="1" maxOccurs="2"/> <xsd:element name="nazwisko" type="xsd:string"/> <xsd:element name="plec" type="xsd:string"/> <xsd:element name="wiek" type="xsd:string"/> </xsd:sequence> <xsd:attribute name="id" type="xsd:ID" use="required"/> <xsd:attribute name="NIP" type="xsd:string"/> </xsd:complexType> </xsd:element>

Typy w XML Schema Tworzenie własnych typów prostych przy pomocy aspektów (facets): minInclusive, maxInclusive, minExclusive, maxExclusive, pattern, enumeration, list, union, length, minLength, maxLength. <xsd:element name="wiek"> <xsd:simpleType> <xsd:restriction base="xsd:integer"> <xsd:minInclusive value="0"/> <xsd:maxInclusive value="120"/> </xsd:restriction> </xsd:simpleType> </xsd:element> minInclusive, maxInclusive, minExclusive, maxExclusive – zawężają zakres dozwolonych wartości liczbowych. pattern – wzorzec wartości zgodny z podanym wyrażeniem regularnym. enumeration – typ wyliczeniowy. list – lista wartości typu prostego. length, minLength, maxLength – opowiednio wymagana, minimalna lub maksymalna długość napisu lub listy.

Przykłady Lista wartości: Wyrażenia regularne: <xsd:simpleType name="LotteryNumbers"> <xsd:restriction> <xsd:simpleType> <xsd:list itemType="OneToNinetyNine"> </xsd:simpleType> <xsd:length value="6"/> </xsd:restriction> </xsd:simpleType> Wyrażenia regularne: <xsd:attribute name="NIP"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-\d{3}-\d{2}-\d{2}"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute>

Typ złożony, ale prosty <xsd:element name="roślina"> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:string"> <xsd:attribute name="gatunek" type="xsd:string" use="required"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType> </xsd:element>

Model mieszany w XML Schema Możliwość kontroli ilości i kolejności podelementów: <xsd:element name="zeznanie"> <xsd:complexType mixed="true"> <xsd:sequence> <xsd:element name="poszkodowany" type="xsd:string"/> <xsd:element name="data" type="xsd:string"/> <xsd:element name="godzina" type="xsd:string" maxOccurs="2"/> </xsd:sequence> </xsd:complexType> </xsd:element> Model mieszany w DTD nie pozwala na ograniczenie ilości ani kolejności podelementów występujących w tekście. W XML Schema typ o modelu mieszanym definiuje się identycznie jak każdy inny typ.

Rozszerzanie typów <xsd:complexType name="Publikacja"> <xsd:sequence> <xsd:element name="Tytuł" type="xsd:string"/> <xsd:element name="Autor" type="xsd:string"/> <xsd:element name="RokPubl" type="xsd:year"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Książka"> <xsd:complexContent> <xsd:extension base="Publikacja"> <xsd:sequence> <xsd:element name="ISBN" type="xsd:string"/> </xsd:sequence> </xsd:extension> </xsd:complexContent> </xsd:complexType>

Deklaracja elementu a typ zawartości Oddzielenie deklaracji elementu od typu zawartości: typy anonimowe: <xsd:element name="osoby"> <xsd:complexType>...</xsd:complexType> </xsd:element> typy nazwane: <xsd:element name="osoba" type="osoba"/> ... <xsd:complexType name="osoba"> ... </xsd:complexType> W DTD deklaracja elementu definiuje jednocześnie typ jego zawartości. Jeśli chcemy przypisać ten sam model zawartości kilku elementom, to musimy wielokrotnie przepisać definicję modelu (ewentualnie upraszczając sobie życie przy pomocy encji parametrycznych). XML Schema oferuje byt pośredni – typ zawartości który definiujemy, nadając mu nazwę, a następnie przypisujemy do dowolnie wielu elementów/atrybutów. Dla uproszczenia, możemy zdefiniować typ bezpośrednio w deklaracji elementu (jak w DTD) i wtedy będzie to typ anonimowy.

Deklaracje lokalne i globalne <xsd:element name="Książka"> <xsd:complexType> <xsd:sequence> <xsd:element name="Autor" type="xsd:string"/> ... <xsd:element ref="ISBN"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="ISBN"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{2}-\d{3}"/> </xsd:restriction> </xsd:simpleType> </xsd:element>

Dokąd zmierzamy? Trendy w zastosowaniach technologii XML: coraz więcej zastosowań związanych z integracją aplikacji i wymianą dokumentów, rosnące potrzeby walidacji struktur XML. Odpowiedź: XML Schema: bardzo młody standard, czeka nas jeszcze wiele pracy, czy doczekamy się darmowych narzędzi? Czy XML Schema wyprze DTD? wieloletnie doświadczenie z SGML-owymi DTD, dostępność dobrych DTD, wygoda, przyzwyczajenie.