SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Definiowanie typów dokumentów DTD, XML Schema
Tematyka ,[object Object],[object Object],[object Object]
Struktura XML Deklaracja XML Atrybut Zawartość tekstowa Element główny Element Znacznik początkowy Znacznik końcowy
Struktura logiczna dokumentu XML zeznanie-sprawcy miejsce autor tresc Jan Leski Sopot Wypadek dnia data 22.10.2007 o godzinie godzina 13:13 ( dzienTygodnia środa ... nr="1313/2001" …
Składnia XML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Encje predefiniowane ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unicode ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Definiowanie języków ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Poprawność struktury dokumentu ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modelowanie typów dokumentów ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Projektowanie struktury dokumentów wiersz autor tytuł zwrotka * ? wers *
DTD – prosty przykład <!DOCTYPE wiersz [ <!ELEMENT wiersz  (autor, tytul?, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) &quot;nie&quot;> <!ELEMENT autor  (#PCDATA)> <!ELEMENT tytul  (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers  (#PCDATA)> ]> element główny zawartość elementów atrybuty wyrażenia regularne
Braki DTD ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DTD vs XML Schema ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
XML Schema ,[object Object],[object Object],[object Object],[object Object],[object Object]
Elementy i atrybuty ,[object Object]
Kontrola użycia elementów i atrybutów ,[object Object]
Typy ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Typy nazwane i anonimowe ,[object Object],[object Object]
Typy proste i złożone ,[object Object],[object Object],[object Object],[object Object]
Typy złożone – typy zawartości ,[object Object],[object Object]
Typy złożone – typy zawartości ,[object Object],[object Object]
Definiowanie zawartości elementowej ,[object Object],[object Object],[object Object]
Grupa  all  – ograniczenia ,[object Object],[object Object],[object Object],[object Object],[object Object]
Definiowanie zawartości prostej ,[object Object]
Definiowanie zawartości mieszanej ,[object Object]
Definiowanie zawartości pustej ,[object Object]
Globalne i lokalne deklaracje elementów i atrybutów - lokalne ,[object Object]
Globalne i lokalne deklaracje elementów i atrybutów - globalne ,[object Object]
Elementy a atrybuty ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Elementy vs atrybuty ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Wartości domyślne i ustalone ,[object Object],[object Object],[object Object],[object Object]
Przestrzenie nazw ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nazwy przestrzeni nazw ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Użycie przestrzeni nazw XML ,[object Object]
Domyślna przestrzeń nazw ,[object Object]
Widoczność przestrzeni nazw ,[object Object]
Nazwy z prefiksem i bez ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Nazwy elementów bez prefiksów ,[object Object]
Nazwy atrybutów ,[object Object]
Atrybuty - analiza ,[object Object],[object Object],[object Object]
Przestrzenie nazw a schematy ,[object Object],[object Object],[object Object],[object Object]
Przestrzenie nazw a schematy osoba imię nazwisko NIP http://zajecia.edu.pl/osoby firma nazwa NIP http://zajecia.edu.pl/instytucje osoby.xsd inst.xsd import
Dokument schematu  ,[object Object]
Łączenie schematów ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
include ,[object Object],[object Object],[object Object],[object Object],http://zajecia.edu.pl/osoby osoba imię nazwisko NIP osoby.xsd firma nazwa REGON inst.xsd
redefine ,[object Object],[object Object],[object Object],[object Object],[object Object],http://zajecia.edu.pl/osoby osoba imię nazwisko NIP NIPTyp osoby.xsd firma nazwa REGON NIPTyp inst.xsd
import ,[object Object],http://zajecia.edu.pl/osoby osoba imię nazwisko NIP osoby.xsd firma nazwa NIP inst.xsd http://zajecia.edu.pl/instytucje
Wbudowane typy proste
Podstawowe typy proste 12.3 +000012.300 decimal 1968-04-02T13:20:00.887 dateTime 13:20:00.887 13:30:00-05:00 time 1968-04-02 1968-04-02-05:00 1968-04-02Z -0045-02-02 Date osoba string +24.3e-3 12   float ,  double Poprawne wartości Typ
Wyprowadzanie typów ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ograniczanie typów prostych ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ograniczanie typów prostych – przykłady ,[object Object]
Ograniczanie typów prostych ,[object Object],[object Object],[object Object],[object Object],[object Object]
Listy ,[object Object]
Unie ,[object Object]
Rozszerzenia ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Rozszerzanie zawartości prostej ,[object Object]
Rozszerzanie zawartości złożonej ,[object Object]
Ograniczanie typów złożonych ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ograniczanie zawartości prostej i atrybutów ,[object Object]
Ograniczanie zawartości złożonej ,[object Object]
Metody modularyzacji schematów ,[object Object],[object Object],[object Object],[object Object]
Grupy wielokrotnego wykorzystania ,[object Object],[object Object]
Grupy zamienne ,[object Object]
Grupy zamienne – wykorzystanie ,[object Object]
Więzy integralności ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Więzy integralności ,[object Object]
Tworzenie schematu XSD za pomocą .NET

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (11)

1 curs bpoc 2014
1 curs bpoc 20141 curs bpoc 2014
1 curs bpoc 2014
 
Biologiaiologia
BiologiaiologiaBiologiaiologia
Biologiaiologia
 
5971 789623
5971 7896235971 789623
5971 789623
 
Asystent.osoby.niepelnosprawnej 346[02] z2.01_u
Asystent.osoby.niepelnosprawnej 346[02] z2.01_uAsystent.osoby.niepelnosprawnej 346[02] z2.01_u
Asystent.osoby.niepelnosprawnej 346[02] z2.01_u
 
8
88
8
 
Prezentacja Ifs
Prezentacja IfsPrezentacja Ifs
Prezentacja Ifs
 
Ramy wykonania RPO WD 2014-2020
Ramy wykonania RPO WD 2014-2020Ramy wykonania RPO WD 2014-2020
Ramy wykonania RPO WD 2014-2020
 
Elearning administracja
Elearning administracjaElearning administracja
Elearning administracja
 
Flaktwoods fire ventilation guide PORADNIK WENTYLACJI POŻAROWEJ
Flaktwoods fire ventilation guide PORADNIK WENTYLACJI POŻAROWEJFlaktwoods fire ventilation guide PORADNIK WENTYLACJI POŻAROWEJ
Flaktwoods fire ventilation guide PORADNIK WENTYLACJI POŻAROWEJ
 
Technik.hotelarstwa 341[04] z2.04_u
Technik.hotelarstwa 341[04] z2.04_uTechnik.hotelarstwa 341[04] z2.04_u
Technik.hotelarstwa 341[04] z2.04_u
 
Diabetes Mellitus tipo 1 y 2
Diabetes Mellitus tipo 1 y 2Diabetes Mellitus tipo 1 y 2
Diabetes Mellitus tipo 1 y 2
 

Mehr von Michał Kuciapski (9)

Lesnictwo
LesnictwoLesnictwo
Lesnictwo
 
test
testtest
test
 
Untitledfdfdfd 2
Untitledfdfdfd 2Untitledfdfdfd 2
Untitledfdfdfd 2
 
Serwery WWW - wykład
Serwery WWW - wykładSerwery WWW - wykład
Serwery WWW - wykład
 
AJAX - wdw1
AJAX - wdw1AJAX - wdw1
AJAX - wdw1
 
Zaliczenie Sem 2
Zaliczenie Sem 2Zaliczenie Sem 2
Zaliczenie Sem 2
 
Koncepcja i formy e-learningu
Koncepcja i formy e-learninguKoncepcja i formy e-learningu
Koncepcja i formy e-learningu
 
Wykorzystanie e-learningu
Wykorzystanie e-learninguWykorzystanie e-learningu
Wykorzystanie e-learningu
 
Podstawowe technologie e-learningowe
Podstawowe technologie e-learningowePodstawowe technologie e-learningowe
Podstawowe technologie e-learningowe
 

Wyklad2 - XSD

  • 2.
  • 3. Struktura XML Deklaracja XML Atrybut Zawartość tekstowa Element główny Element Znacznik początkowy Znacznik końcowy
  • 4. Struktura logiczna dokumentu XML zeznanie-sprawcy miejsce autor tresc Jan Leski Sopot Wypadek dnia data 22.10.2007 o godzinie godzina 13:13 ( dzienTygodnia środa ... nr=&quot;1313/2001&quot; …
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Projektowanie struktury dokumentów wiersz autor tytuł zwrotka * ? wers *
  • 12. DTD – prosty przykład <!DOCTYPE wiersz [ <!ELEMENT wiersz (autor, tytul?, zwrotka*)> <!ATTLIST wiersz bialy (tak|nie) &quot;nie&quot;> <!ELEMENT autor (#PCDATA)> <!ELEMENT tytul (#PCDATA)> <!ELEMENT zwrotka (wers)*> <!ELEMENT wers (#PCDATA)> ]> element główny zawartość elementów atrybuty wyrażenia regularne
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43. Przestrzenie nazw a schematy osoba imię nazwisko NIP http://zajecia.edu.pl/osoby firma nazwa NIP http://zajecia.edu.pl/instytucje osoby.xsd inst.xsd import
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 50. Podstawowe typy proste 12.3 +000012.300 decimal 1968-04-02T13:20:00.887 dateTime 13:20:00.887 13:30:00-05:00 time 1968-04-02 1968-04-02-05:00 1968-04-02Z -0045-02-02 Date osoba string +24.3e-3 12 float , double Poprawne wartości Typ
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69. Tworzenie schematu XSD za pomocą .NET

Hinweis der Redaktion

  1. Slajd przedstawia jedynie podstawowe elementy składni dokumentu XML. Każdy dokument XML zaczyna się od deklaracji XML, określającej wersję składni XML-a, kodowanie znaków, itp. Cała zawartość dokumentu zawarta jest w jednym elemencie – elemencie głównym. On dopiero zawiera inne elementy oraz tekst. Elementy mogą posiadać atrybuty, opisujące pewne właściwości elementów. Element jest kodowany przy pomocy znacznika początkowego oraz znacznika końcowego.
  2. Drugi stopień poprawności (poprawność strukturalna) wymaga, aby spełniony był także pierwszy. Ma on sens jedynie dla dokumentów z określoną strukturą. Dokument, który nie jest poprawny składniowo, nie jest dokumentem XML.
  3. Podobnie jak implementacja (kodowanie) jest tylko jedną z wielu faz budowy systemu informatycznego, tak zapisywanie definicji języka przy pomocy DTD lub XML Schema jest jedynie jednym z etapów modelowania języka. Etap ten powinien być poprzedzony przez analizę oraz projektowanie struktury języka w sposób abstrakcyjny. Stosowanie pełnego cyklu modelowania ma sens w przypadku skomplikowanych języków, wykorzystywanych np. w systemach zarządzania aktami prawnymi czy zasobami encyklopedycznymi. Proces modelowania takich języków właściwie się nie kończy, ponieważ żyją i zmieniają się same reguły biznesowe będące podstawą modelu języka, lub pojawiają się nowe zależności, które trzeba zamodelować. Dlatego w profesjonalnych zastosowaniach, typy dokumentów muszą podlegać pielęgnacji. Oczywiście w prostych przypadkach (np. modelowanie komunikatu z klienta do serwera aplikacji), &amp;quot;rozgarnięty&amp;quot; projektant poradzi sobie od razu kodując definicję przy pomocy DTD lub XML Schema.
  4. Podczas abstrakcyjnego, niezależnego od notacji zapisu (DTD lub XML Schema), projektowania struktury dokumentów, używa się z reguły notacji graficznych. Istnieją specjalne programy, które pozwalają na takie graficzne projektowanie, np. XML Authority.
  5. Definicja typu dokumentu jest zawarta w deklaracji DOCTYPE , po której następuje nazwa elementu głównego. Pozycje ELEMENT określają dopuszczalną zawartość poszczególnych elementów przy pomocy wyrażeń regularnych. #PCDATA ( Parsed Characters Data ) oznacza &amp;quot;czysty&amp;quot; tekst, bez podelementów. DTD określa także atrybuty elementów.
  6. 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.