Definiowanie typw dokumentw Cz 3 XML Schema 2008
- Slides: 27
Definiowanie typów dokumentów Część 3. XML Schema 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema
Wbudowane typy proste Źródło: XML Enhancements to Java™ (XJ). User Manual for Release Version 1. 0 http: //www. research. ibm. com/xj/doc/XJmanual/ XJmanual. html 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 2
Wbudowane typy proste (wybrane) • string – napis • normalized. String – napis, w którym każdy biały znak jest podczas przetwarzania zastępowany przez spację • token – napis, w którym każdy ciąg białych znaków jest podczas przetwarzania zastępowany przez jedną spację, zaś białe znaki na początku i końcu są usuwane • QName – nazwa kwalifikowana • NCName – nazwa bez dwukropka • base 64 Binary – dane binarne zapisane w kodowaniu Base 64 • hex. Binary – dane binarne zapisane szesnastkowo 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 3
Wbudowane typy proste (wybrane) Typ Poprawne wartości decimal 12. 3 +000012. 300 float, double +24. 3 e-3 Na. N 12 -INF QName os: osoba date 1968 -04 -02 Z 1968 -04 -02 -05: 00 -0045 -02 -02 time 13: 20: 00. 887 13: 30: 00 -05: 00 date. Time 1968 -04 -02 T 13: 20: 00. 887 g. Year. Month 1968 -04 g. Month. Day --04 -02 duration P 2 Y 6 M 5 DT 12 H 35 M 30 S 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 4
Wyprowadzanie typów • Wyprowadzanie typów prostych: – ograniczanie, – tworzenie list, – tworzenie unii. • Wyprowadzanie typów złożonych: – ograniczanie, – rozszerzanie: • typów prostych, • typów złożonych. 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 5
Ograniczanie typów prostych • Aspekty (ang. facets): – – – – min. Exclusive, min. Inclusive, max. Exclusive, max. Inclusive, length, min. Length, max. Length, total. Digits, fraction. Digits, enumeration, pattern, white. Space. • Tylko pattern i enumeration można użyć wielokrotnie w jednej definicji typu. 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 6
Ograniczanie typów prostych – przykłady <xsd: simple. Type name="Numer. Lotto. Typ"> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="1"/> <xsd: max. Inclusive value="49"/> </xsd: restriction> </xsd: simple. Type> <xsd: simple. Type name="Dokument. Typ"> <xsd: restriction base="xsd: token"> <xsd: enumeration value="dowód osobisty"/> <xsd: enumeration value="paszport"/> </xsd: restriction> </xsd: simple. Type> <xsd: simple. Type name="NIPTyp"> <xsd: restriction base="xsd: string"> <xsd: pattern value="d{3}-d{2}-d{2}"/> <xsd: pattern value="d{3}-d{2}-d{3}"/> </xsd: restriction> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 7
Ograniczanie typów prostych • Przestrzeń wartości typu wyprowadzonego musi być podzbiorem przestrzeni wartości typu bazowego. • Typy wbudowane mają określone niektóre aspekty, np. : typ byte: – min. Inclusive: -128, – max. Inclusive: 127. • Przykład – niepoprawne wyprowadzenie: <xsd: simple. Type name="Extended. Byte"> <xsd: restriction base="xsd: byte"> <xsd: min. Inclusive value="-256"/> <xsd: max. Inclusive value="255"/> </xsd: restriction> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 8
Aspekt white. Space • preserve – wszystkie białe znaki są pozostawiane bez zmian • replace – każdy biały znak jest podczas przetwarzania zastępowany przez spację • collapse - każdy biały znak jest podczas przetwarzania zastępowany przez spację, a następnie każdy ciąg spacji jest zastępowany przez jedną spację, zaś spacje na początku i na końcu są usuwane 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 9
Tworzenie list <xsd: simple. Type name="Numer. Lotto. Typ"> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="1"/> <xsd: max. Inclusive value="49"/> </xsd: restriction> </xsd: simple. Type> <xsd: simple. Type name="Numery. Lotto. Typ"> <xsd: list item. Type="Numer. Lotto. Typ"/> </xsd: simple. Type> <xsd: simple. Type name="Kupon. Lotto. Typ"> <xsd: restriction base="Numery. Lotto. Typ"> <xsd: length value="6"/> </xsd: restriction> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 10
Tworzenie list – inaczej <xsd: simple. Type name="Kupon. Lotto. Typ"> <xsd: restriction> <xsd: simple. Type> <xsd: list> <xsd: simple. Type> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="1"/> <xsd: max. Inclusive value="49"/> </xsd: restriction> </xsd: simple. Type> </xsd: list> </xsd: simple. Type> <xsd: length value="6"/> </xsd: restriction> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 11
Tworzenie unii <xsd: simple. Type name="Rozmiar. Liczbowy. Typ"> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="2"/> <xsd: max. Inclusive value="18"/> </xsd: restriction> </xsd: simple. Type> <xsd: simple. Type name="Rozmiar. SMLTyp"> <xsd: restriction base="xsd: token"> <xsd: enumeration value="S"/> <xsd: enumeration value="M"/> <xsd: enumeration value="L"/> </xsd: restriction> </xsd: simple. Type> <xsd: simple. Type name="Rozmiar. Typ"> <xsd: union member. Types="Rozmiar. Liczbowy. Typ Rozmiar. SMLTyp"/> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 12
Tworzenie unii – inaczej <xsd: simple. Type name="Rozmiar. Typ"> <xsd: union> <xsd: simple. Type> <xsd: restriction base="xsd: integer"> <xsd: min. Inclusive value="2"/> <xsd: max. Inclusive value="18"/> </xsd: restriction> </xsd: simple. Type> <xsd: restriction base="xsd: token"> <xsd: enumeration value="S"/> <xsd: enumeration value="M"/> <xsd: enumeration value="L"/> </xsd: restriction> </xsd: simple. Type> </xsd: union> </xsd: simple. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 13
Rozszerzanie typów • Wartości typu bazowego nie muszą być poprawnymi wartościami typu wyprowadzonego. • Rozszerzanie zawartości prostej – dodawanie atrybutów do: – typu prostego, – typu złożonego o zawartości prostej. • Rozszerzanie zawartości złożonej: – dodawanie do typu bazowego dodatkowych elementów i/lub atrybutów, – elementy dodawane w rozszerzeniu występują zawsze na końcu, po elementach zadeklarowanych w typie bazowym. 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 14
Rozszerzanie zawartości prostej <xsd: complex. Type name="Masa. Typ"> <xsd: simple. Content> <xsd: extension base="xsd: decimal"> <xsd: attribute name="jm" type="xsd: string"/> </xsd: extension> </xsd: simple. Content> </xsd: complex. Type> <xsd: complex. Type name="Masa. Niedokładna. Typ"> <xsd: simple. Content> <xsd: extension base="Masa. Typ"> <xsd: attribute name="dokładność" type="xsd: decimal"/> </xsd: extension> </xsd: simple. Content> </xsd: complex. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 15
Rozszerzanie zawartości złożonej <xsd: complex. Type name="Osoba. Typ"> <xsd: sequence> <xsd: element name="imie" type="xsd: string"/> <xsd: element name="nazwisko" type="xsd: string"/> </xsd: sequence> </xsd: complex. Type> <xsd: complex. Type name="Osoba. ZDokumentem. Typ"> <xsd: complex. Content> <xsd: extension base="Osoba. Typ"> <xsd: choice> <xsd: element name="dowód-os" type="Dowód. Typ"/> <xsd: element name="paszport" type="Paszport. Typ"/> </xsd: choice> </xsd: extension> </xsd: complex. Content> </xsd: complex. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 16
Typy • Typy wg zasięgu definicji: – typy nazwane, – typy anonimowe. • Typy wg zawartości: – typy proste, – typy złożone o zawartości: • • prostej, elementowej, mieszanej, pustej. • Typy wg pochodzenia: – typy wbudowane, – typy zdefiniowane w schemacie: • rozszerzenia innych typów, • ograniczenia innych typów, • listy i unie. 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 17
Inne metody modularyzacji schematów • Ograniczanie typów złożonych. • Grupy do wielokrotnego wykorzystania (reusable groups): – nazwane grupy modeli, – grupy atrybutów. • Grupy zamienne (substitution groups). 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 18
Ograniczanie typów złożonych • Przestrzeń wartości typu wyprowadzonego musi być podzbiorem przestrzeni wartości typu bazowego. • Dozwolone operacje: – ograniczenie zawartości prostej (tak jak typu prostego), – ograniczenie atrybutu: • ograniczenie typu atrybutu, • zmiana atrybutu opcjonalnego na wymagany (required) lub zabroniony (prohibited), • dodanie, zmiana lub usunięcie wartości domyślnej, • dodanie wartości ustalonej, jeśli jej nie było. – ograniczenie modelu zawartości, np. : • • 2008 -10 -23 ściślejsze ograniczenia liczebności (min. Occurs, max. Occurs), usunięcie elementów opcjonalnych w grupach sequence i all, wybranie podzbioru elementów w grupie choice, ograniczenie typu poszczególnych podelementów. Definiowanie typów dokumentów – część 3: XML Schema 19
Grupy do wielokrotnego wykorzystania • Grupy używanych wspólnie deklaracji elementów lub atrybutów. <xsd: group name="ImięNazwisko"> <xsd: sequence> <xsd: element name="imie" type="xsd: string"/> <xsd: element name="nazwisko" type="xsd: string"/> </xsd: sequence> </xsd: group> <xsd: attribute. Group name="Biurokracja"> <xsd: attribute name="NIP" type="NIPTyp"/> <xsd: attribute name="PESEL" type="PESELTyp"/> </xsd: attribute. Group> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 20
Grupy do wielokrotnego wykorzystania • Odwołania do grup: <xsd: complex. Type name="Osoba. Typ"> <xsd: sequence> <xsd: group ref="ImięNazwisko"/> <xsd: element name="obywatelstwo" type="xsd: token"/> </xsd: sequence> <xsd: attribute. Group ref="Biurokracja"/> </xsd: complex. Type> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 21
Grupy zamienne • Możliwość deklaracji zamienników dla wybranych elementów. <xsd: element name="katalog"> <xsd: complex. Type> <xsd: sequence> <xsd: element ref="produkt" max. Occurs="unbounded"/> <xsd: sequence> <xsd: complex. Type> </xsd: element> <xsd: element name="produkt" type="Produkt. Typ"/> <xsd: element name="komputer" type="Komputer. Typ" substitution. Group="produkt"/> <xsd: element name="ubranie" type="Ubranie. Typ" substitution. Group="produkt"/> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 22
Grupy zamienne • Wykorzystanie grup zamiennych (egzemplarz): <katalog> <produkt>. . . </produkt> <komputer>. . . </komputer> <ubranie>. . . </ubranie> <produkt>. . . </produkt> </katalog> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 23
Ograniczenia integralności • Ograniczenia integralności (identity constraints): – unique – wartości w ramach określonego zakresu muszą być unikatowe, – key – wartości w ramach określonego zakresu muszą być unikatowe i nie mogą być puste, – keyref – odwołanie do wartości wskazanego klucza. • Odpowiednik bazodanowych kluczy pierwotnych i kluczy zewnętrznych. 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 24
Przykład <xsd: element name="zamówienia-i-faktury" type="Zamówienia. Faktury. Typ"> <xsd: unique name="faktura. Id"> <xsd: selector xpath="faktury/faktura"/> <xsd: field xpath="@nr"/> <xsd: field xpath="rok"/> </xsd: unique> <xsd: keyref name="zamówienie. Ref" refer="zamówienie. Id"> <xsd: selector xpath="faktury/faktura/do-zamówienia"/> <xsd: field xpath="@nr"/> </xsd: keyref> <xsd: key name="zamówienie. Id"> <xsd: selector xpath="zamówienia/zamówienie"/> <xsd: field xpath="numer"/> </xsd: key> </xsd: element> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 25
Przykład – egzemplarz (1) <xsd: unique name="faktura. Id"> <xsd: selector xpath="faktury/faktura"/> <xsd: field xpath="@nr"/> <xsd: field xpath="rok"/> </xsd: unique> <zamówienia-i-faktury> <faktura nr="123"> <rok>2007</rok> <do-zamówienia nr="125"/>. . . </faktura> <faktura nr="123"> <rok>2006</rok> <do-zamówienia nr="665"/>. . . </faktura> <faktura nr="127/2007"> <do-zamówienia nr="125"/>. . . <xsd: keyref name="zamówienie. Ref" </faktura> refer="zamówienie. Id"> </faktury> <xsd: selector xpath= "faktury/faktura/do-zamówienia"/> <xsd: field xpath="@nr"/> </xsd: keyref> 2008 -10 -23 Definiowanie typów dokumentów – część 3: XML Schema 26
Przykład – egzemplarz (2) <zamówienia> <zamówienie> <numer>125</numer>. . . </zamówienie> <numer>665</numer>. . . </zamówienie> <numer>233</numer>. . . </zamówienie> </zamówienia-i-faktury> 2008 -10 -23 <xsd: key name="zamówienie. Id"> <xsd: selector xpath="zamówienia/zamówienie"/> <xsd: field xpath="numer"/> </xsd: key> Definiowanie typów dokumentów – część 3: XML Schema 27
- The bold typw
- Matryca interesariuszy
- 2008 2008
- Schema l
- Xml schema root element
- Mapping an eer schema to an odb schema
- Tia portal openness download
- Office 365 odt configuration xml generator
- Mitarbeiterverwaltung open source
- Xml music
- Xml4
- Asynchronous javascript and xml
- Xml
- Ximpleware
- Xls to xml odk
- Dom4j xpath
- Xml file reader
- Tcl xml
- And xml
- Xml dom
- Xml dbms
- Xml maps are not exportable
- Canonical xml
- Haarcascade_upperbody.xml
- Transfert relationnel
- Microsoft xml schemas
- Coldfusion parse xml
- Xml stands