Definiowanie typ - PowerPoint PPT Presentation

About This Presentation
Title:

Definiowanie typ

Description:

Title: XML i nowoczesne technologie zarz dzania tre ci Author: Szymon Ziolo Last modified by: Szymon Zio o Created Date: 9/27/2004 2:02:47 PM – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 28
Provided by: Szym91
Category:
Tags: definiowanie | java | typ

less

Transcript and Presenter's Notes

Title: Definiowanie typ


1
Definiowanie typów dokumentówCzesc 3. XML Schema
2
Wbudowane typy proste
ZródloXML Enhancements to Java (XJ). User
Manual for Release Version 1.0 http//www.research
.ibm.com/xj/doc/XJmanual/XJmanual.html
3
Wbudowane typy proste (wybrane)
  • string napis
  • normalizedString napis, w którym kazdy bialy
    znak jest podczas przetwarzania zastepowany przez
    spacje
  • token napis, w którym kazdy ciag bialych znaków
    jest podczas przetwarzania zastepowany przez
    jedna spacje, zas biale znaki na poczatku i koncu
    sa usuwane
  • QName nazwa kwalifikowana
  • NCName nazwa bez dwukropka
  • base64Binary dane binarne zapisane w kodowaniu
    Base64
  • hexBinary dane binarne zapisane szesnastkowo

4
Wbudowane typy proste (wybrane)
Typ Poprawne wartosci
decimal 12.3 000012.300
float, double 24.3e-3 12 NaN -INF
QName ososoba osoba
date 1968-04-02 1968-04-02-0500 1968-04-02Z -0045-02-02
time 132000.887 133000-0500
dateTime 1968-04-02T132000.887
gYearMonth 1968-04
gMonthDay --04-02
duration P2Y6M5DT12H35M30S
5
Wyprowadzanie typów
  • Wyprowadzanie typów prostych
  • ograniczanie,
  • tworzenie list,
  • tworzenie unii.
  • Wyprowadzanie typów zlozonych
  • ograniczanie,
  • rozszerzanie
  • typów prostych,
  • typów zlozonych.

6
Ograniczanie typów prostych
  • Aspekty (ang. facets)
  • minExclusive, minInclusive,
  • maxExclusive, maxInclusive,
  • length, minLength, maxLength,
  • totalDigits, fractionDigits,
  • enumeration,
  • pattern,
  • whiteSpace.
  • Tylko pattern i enumeration mozna uzyc
    wielokrotnie w jednej definicji typu.

7
Ograniczanie typów prostych przyklady
  • ltxsdsimpleType name"NumerLottoTyp"gt
    ltxsdrestriction base"xsdinteger"gt
    ltxsdminInclusive value"1"/gt
    ltxsdmaxInclusive value"49"/gt
    lt/xsdrestrictiongtlt/xsdsimpleTypegtltxsdsimpleT
    ype name"DokumentTyp"gt ltxsdrestriction
    base"xsdtoken"gt ltxsdenumeration
    value"dowód osobisty"/gt ltxsdenumeration
    value"paszport"/gt lt/xsdrestrictiongtlt/xsdsimp
    leTypegtltxsdsimpleType name"NIPTyp"gt
    ltxsdrestriction base"xsdstring"gt
    ltxsdpattern value"\d3-\d3-\d2-\d2"/gt
    ltxsdpattern value"\d3-\d2-\d2-\d3"/gt
    lt/xsdrestrictiongtlt/xsdsimpleTypegt

8
Ograniczanie typów prostych
  • Przestrzen wartosci typu wyprowadzonego musi byc
    podzbiorem przestrzeni wartosci typu bazowego.
  • Typy wbudowane maja okreslone niektóre aspekty,
    np. typ byte
  • minInclusive -128,
  • maxInclusive 127.
  • Przyklad niepoprawne wyprowadzenieltxsdsimpleT
    ype name"ExtendedByte"gt ltxsdrestriction
    base"xsdbyte"gt ltxsdminInclusive
    value"-256"/gt ltxsdmaxInclusive
    value"255"/gt lt/xsdrestrictiongtlt/xsdsimpleTyp
    egt

9
Aspekt whiteSpace
  • preserve wszystkie biale znaki sa pozostawiane
    bez zmian
  • replace kazdy bialy znak jest podczas
    przetwarzania zastepowany przez spacje
  • collapse - kazdy bialy znak jest podczas
    przetwarzania zastepowany przez spacje, a
    nastepnie kazdy ciag spacji jest zastepowany
    przez jedna spacje, zas spacje na poczatku i na
    koncu sa usuwane

10
Tworzenie list
  • ltxsdsimpleType name"NumerLottoTyp"gt
    ltxsdrestriction base"xsdinteger"gt
    ltxsdminInclusive value"1"/gt
    ltxsdmaxInclusive value"49"/gt
    lt/xsdrestrictiongtlt/xsdsimpleTypegtltxsdsimpleT
    ype name"NumeryLottoTyp"gt ltxsdlist
    itemType"NumerLottoTyp"/gtlt/xsdsimpleTypegtltxsd
    simpleType name"KuponLottoTyp"gt
    ltxsdrestriction base"NumeryLottoTyp"gt
    ltxsdlength value"6"/gt lt/xsdrestrictiongtlt/xsd
    simpleTypegt

11
Tworzenie list inaczej
  • ltxsdsimpleType name"KuponLottoTyp"gt
    ltxsdrestrictiongt ltxsdsimpleTypegt
    ltxsdlistgt ltxsdsimpleTypegt
    ltxsdrestriction base"xsdinteger"gt
    ltxsdminInclusive value"1"/gt
    ltxsdmaxInclusive value"49"/gt
    lt/xsdrestrictiongt lt/xsdsimpleTypegt
    lt/xsdlistgt lt/xsdsimpleTypegt
    ltxsdlength value"6"/gt lt/xsdrestrictiongtlt/xsd
    simpleTypegt

12
Tworzenie unii
  • ltxsdsimpleType name"RozmiarLiczbowyTyp"gt
    ltxsdrestriction base"xsdinteger"gt
    ltxsdminInclusive value"2"/gt
    ltxsdmaxInclusive value"18"/gt
    lt/xsdrestrictiongtlt/xsdsimpleTypegtltxsdsimpleT
    ype name"RozmiarSMLTyp"gt ltxsdrestriction
    base"xsdtoken"gt ltxsdenumeration
    value"S"/gt ltxsdenumeration value"M"/gt
    ltxsdenumeration value"L"/gt lt/xsdrestrictiongt
    lt/xsdsimpleTypegtltxsdsimpleType
    name"RozmiarTyp"gt ltxsdunion
    memberTypes"RozmiarLiczbowyTyp
    RozmiarSMLTyp"/gtlt/xsdsimpleTypegt

13
Tworzenie unii inaczej
  • ltxsdsimpleType name"RozmiarTyp"gt
    ltxsduniongt ltxsdsimpleTypegt
    ltxsdrestriction base"xsdinteger"gt
    ltxsdminInclusive value"2"/gt
    ltxsdmaxInclusive value"18"/gt
    lt/xsdrestrictiongt lt/xsdsimpleTypegt
    ltxsdsimpleTypegt ltxsdrestriction
    base"xsdtoken"gt ltxsdenumeration
    value"S"/gt ltxsdenumeration value"M"/gt
    ltxsdenumeration value"L"/gt
    lt/xsdrestrictiongt lt/xsdsimpleTypegt
    lt/xsduniongtlt/xsdsimpleTypegt

14
Rozszerzanie typów
  • Wartosci typu bazowego nie musza byc poprawnymi
    wartosciami typu wyprowadzonego.
  • Rozszerzanie zawartosci prostej dodawanie
    atrybutów do
  • typu prostego,
  • typu zlozonego o zawartosci prostej.
  • Rozszerzanie zawartosci zlozonej
  • dodawanie do typu bazowego dodatkowych elementów
    i/lub atrybutów,
  • elementy dodawane w rozszerzeniu wystepuja zawsze
    na koncu, po elementach zadeklarowanych w typie
    bazowym.

15
Rozszerzanie zawartosci prostej
  • ltxsdcomplexType name"MasaTyp"gt
    ltxsdsimpleContentgt ltxsdextension
    base"xsddecimal"gt ltxsdattribute
    name"jm" type"xsdstring"/gt
    lt/xsdextensiongt lt/xsdsimpleContentgtlt/xsdcomp
    lexTypegtltxsdcomplexType name"MasaNiedokladnaTy
    p"gt ltxsdsimpleContentgt ltxsdextension
    base"MasaTyp"gt ltxsdattribute
    name"dokladnosc"
    type"xsddecimal"/gt lt/xsdextensiongt
    lt/xsdsimpleContentgtlt/xsdcomplexTypegt

16
Rozszerzanie zawartosci zlozonej
  • ltxsdcomplexType name"OsobaTyp"gt
    ltxsdsequencegt ltxsdelement name"imie"
    type"xsdstring"/gt ltxsdelement
    name"nazwisko" type"xsdstring"/gt
    lt/xsdsequencegtlt/xsdcomplexTypegtltxsdcomplexTy
    pe name"OsobaZDokumentemTyp"gt
    ltxsdcomplexContentgt ltxsdextension
    base"OsobaTyp"gt ltxsdchoicegt
    ltxsdelement name"dowód-os"
    type"DowódTyp"/gt ltxsdelement
    name"paszport"
    type"PaszportTyp"/gt lt/xsdchoicegt
    lt/xsdextensiongt lt/xsdcomplexContentgtlt/xsdcom
    plexTypegt

17
Typy
  • Typy wg zasiegu definicji
  • typy nazwane,
  • typy anonimowe.
  • Typy wg zawartosci
  • typy proste,
  • typy zlozone o zawartosci
  • prostej,
  • elementowej,
  • mieszanej,
  • pustej.
  • Typy wg pochodzenia
  • typy wbudowane,
  • typy zdefiniowane w schemacie
  • rozszerzenia innych typów,
  • ograniczenia innych typów,
  • listy i unie.

18
Inne metody modularyzacji schematów
  • Ograniczanie typów zlozonych.
  • Grupy do wielokrotnego wykorzystania (reusable
    groups)
  • nazwane grupy modeli,
  • grupy atrybutów.
  • Grupy zamienne (substitution groups).

19
Ograniczanie typów zlozonych
  • Przestrzen wartosci typu wyprowadzonego musi byc
    podzbiorem przestrzeni wartosci typu bazowego.
  • Dozwolone operacje
  • ograniczenie zawartosci prostej (tak jak typu
    prostego),
  • ograniczenie atrybutu
  • ograniczenie typu atrybutu,
  • zmiana atrybutu opcjonalnego na wymagany
    (required) lub zabroniony (prohibited),
  • dodanie, zmiana lub usuniecie wartosci domyslnej,
  • dodanie wartosci ustalonej, jesli jej nie bylo.
  • ograniczenie modelu zawartosci, np.
  • scislejsze ograniczenia liczebnosci (minOccurs,
    maxOccurs),
  • usuniecie elementów opcjonalnych w grupach
    sequence i all,
  • wybranie podzbioru elementów w grupie choice,
  • ograniczenie typu poszczególnych podelementów.

20
Grupy do wielokrotnego wykorzystania
  • Grupy uzywanych wspólnie deklaracji elementów lub
    atrybutów.
  • ltxsdgroup name"ImieNazwisko"gt
    ltxsdsequencegt ltxsdelement name"imie"
    type"xsdstring"/gt ltxsdelement
    name"nazwisko" type"xsdstring"/gt
    lt/xsdsequencegtlt/xsdgroupgtltxsdattributeGroup
    name"Biurokracja"gt ltxsdattribute name"NIP"
    type"NIPTyp"/gt ltxsdattribute name"PESEL"
    type"PESELTyp"/gt lt/xsdattributeGroupgt

21
Grupy do wielokrotnego wykorzystania
  • Odwolania do grup
  • ltxsdcomplexType name"OsobaTyp"gt
    ltxsdsequencegt ltxsdgroup ref"ImieNazwisko"/gt
    ltxsdelement name"obywatelstwo"
    type"xsdtoken"/gt lt/xsdsequencegt
    ltxsdattributeGroup ref"Biurokracja"/gt
    lt/xsdcomplexTypegt

22
Grupy zamienne
  • Mozliwosc deklaracji zamienników dla wybranych
    elementów.
  • ltxsdelement name"katalog"gt ltxsdcomplexTypegt
    ltxsdsequencegt ltxsdelement
    ref"produkt"
    maxOccurs"unbounded"/gt ltxsdsequencegt
    ltxsdcomplexTypegt lt/xsdelementgt ltxsdelement
    name"produkt" type"ProduktTyp"/gtltxsdelement
    name"komputer" type"KomputerTyp"
    substitutionGroup"produkt"/gt ltxsdelement
    name"ubranie" type"UbranieTyp"
    substitutionGroup"produkt"/gt

23
Grupy zamienne
  • Wykorzystanie grup zamiennych (egzemplarz)
  • ltkataloggt ltproduktgt...lt/produktgt
    ltkomputergt...lt/komputergt ltubraniegt...lt/ubraniegt
    ltproduktgt...lt/produktgtlt/kataloggt

24
Ograniczenia integralnosci
  • Ograniczenia integralnosci (identity
    constraints)
  • unique wartosci w ramach okreslonego zakresu
    musza byc unikatowe,
  • key wartosci w ramach okreslonego zakresu musza
    byc unikatowe i nie moga byc puste,
  • keyref odwolanie do wartosci wskazanego klucza.
  • Odpowiednik bazodanowych kluczy pierwotnych i
    kluczy zewnetrznych.

25
Przyklad
  • ltxsdelement name"zamówienia-i-faktury"
    type"ZamówieniaFakturyTyp"gt ltxsdunique
    name"fakturaId"gt ltxsdselector
    xpath"faktury/faktura"/gt ltxsdfield
    xpath"_at_nr"/gt ltxsdfield xpath"rok"/gt
    lt/xsduniquegt ltxsdkeyref name"zamówienieRef"
    refer"zamówienieId"gt
    ltxsdselector xpath"faktury/faktura/do-zamó
    wienia"/gt ltxsdfield xpath"_at_nr"/gt
    lt/xsdkeyrefgt ltxsdkey name"zamówienieId"gt
    ltxsdselector xpath"zamówienia/zamówienie"/gt
    ltxsdfield xpath"numer"/gt lt/xsdkeygtlt/xsdelem
    entgt

26
Przyklad egzemplarz (1)
ltxsdunique name"fakturaId"gt ltxsdselector
xpath"faktury/faktura"/gt ltxsdfield
xpath"_at_nr"/gt ltxsdfield xpath"rok"/gt
lt/xsduniquegt
  • ltzamówienia-i-fakturygt ltfakturygt ltfaktura
    nr"123"gt ltrokgt2007lt/rokgt
    ltdo-zamówienia nr"125"/gt ...
    lt/fakturagt ltfaktura nr"123"gt
    ltrokgt2006lt/rokgt ltdo-zamówienia nr"665"/gt
    ... lt/fakturagt ltfaktura
    nr"127/2007"gt ltdo-zamówienia nr"125"/gt
    ... lt/fakturagt lt/fakturygt

ltxsdkeyref name"zamówienieRef"
refer"zamówienieId"gt ltxsdselector xpath
"faktury/faktura/do-zamówienia"/gt
ltxsdfield xpath"_at_nr"/gt lt/xsdkeyrefgt
27
Przyklad egzemplarz (2)
  • ltzamówieniagt ltzamówieniegt
    ltnumergt125lt/numergt ... lt/zamówieniegt
    ltzamówieniegt ltnumergt665lt/numergt ...
    lt/zamówieniegt ltzamówieniegt
    ltnumergt233lt/numergt ... lt/zamówieniegt
    lt/zamówieniagtlt/zamówienia-i-fakturygt

ltxsdkey name"zamówienieId"gt
ltxsdselector xpath"zamówienia/zamówienie"/
gt ltxsdfield xpath"numer"/gt lt/xsdkeygt
Write a Comment
User Comments (0)
About PowerShow.com