nikos dimitrakas [email protected] 08-7904460 Rum 8522
description
Transcript of nikos dimitrakas [email protected] 08-7904460 Rum 8522
![Page 1: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/1.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
1
IV1023 ht2013Avancerad Datahantering med XML
Introduktion till kursenSemistrukturerade data och XML
nikos dimitrakas [email protected]
08-7904460Rum 8522
LäsanvisningarUtdrag från Data on the WebKapitel 1, 4, 5, 6, 10 (speciellt 10.6) i kursbokenDelar av kapitel 31 i Database Systems (Connolly, Begg) upplaga 5
![Page 2: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/2.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
2
Innehåll• Introduktion till semistrukturerade data och XML
– Data– Modell (DTD, XML Schema)– Representation
• Frågespråk – Lorel– XPath– XQuery– XSL/XSLT– SQL/XML (del av SQL 2003)– Proprietära lösningar (IBM, Oracle, Microsoft)
• XML-applikationer, XML-baserade språk– RDF/RDFS– DC– mm.
![Page 3: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/3.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
3
Upplägg• Föreläsningar• Lektioner• Quizzar• Seminarium med inlämning• Labbar• Inlämningsuppgifter• Handledning• Tenta
![Page 4: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/4.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
4
Material• Kursanvisningar• Föreläsningsbilder (endast elektroniskt)
• Kompendier om teknologierna och produkterna (endast elektroniskt)
– labbanvisningar
• Böcker– Grunddatabasbok (Database Systems, Connolly/Begg upplaga 5)– Kursbok (Querying XML, Melton/Buxton)– Andra XML-böcker
• Utdrag och Artiklar (endast elektroniskt)
• Annat material– Relevanta webbsidor– Lösningsförslag till lektioner– Exempeldatabaser– Gamla tentor
![Page 5: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/5.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
5
Material
![Page 6: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/6.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
6
Examination• Examination 1 (3 hp) F-A (TEN1 i Ladok)
– Tenta
• Examination 2 (4,5 hp) F-A (LAB1 i Ladok)– Quizzar– Inlämningsuppgifter
» Labbar» Seminarium
• ”Examination” 3 (0 hp)– Utvärdering
![Page 7: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/7.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
7
Kursanvisningar• Läs igenom kursanvisningarna!
– Förslag på arbetsgång– Handledning– Lektionsuppgifter– Seminarieuppgifter (Inlupp 1)– Inlämningsuppgifter
» Även för högre betyg– Gruppindelning för inlämningsuppgifterna
» 3 eller 2 per grupp » Anmäl er i Daisy
– Datormiljö» Administration och kommunikation (Bilda, Daisy)» Databashanteringssystem (Oracle 12c, DB2 10.5, SQL Server 2012)» XQuery-verktyg (XQuisitor)» Webbläsare (XSLT)
– Och mycket annat!
![Page 8: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/8.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
8
Data - Metadata• Data
– Johnny, Pasta, Lund, 2001-02-12, true, 677
• Metadata– namn, namn, stad, startdatum, skickad, vikt
• Typer av metadata– Struktur– Semantik– Katalog (klassificering)– Integration
![Page 9: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/9.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
9
Struktur• Modellering
– TechTarget: Data modeling is the analysis of data objects that are used in a business or other context and the identification of the relationships among these data objects.
• Databaslösningar– Relationsmodellen
» Tabeller, kolumner, domäner, nycklar, integritetsregler– Objekt-orientering/Objektdatabaser
» Klasser, attribut, referenser, regler– XML
» Element, attribut, regler– Annat
» ?
![Page 10: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/10.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
10
Semantik• Betydelsen av data och metadata
– Metadata» namn» pris» vikt» skickad
– Semantik» Det som unikt identifierar varje produkttyp vi har produkter av» Antalet SEK som kunden måste betala inkl moms för ett exemplar» Anger produktens vikt inkl förpackningen för ett exemplar i gram» Sant om beställningen har lämnat vårt lager, annars falskt
![Page 11: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/11.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
11
Semistrukturerade data• Ingen struktur (schemaless)• Implicit struktur (self-describing)
– metadata inbyggda i data» inga data inga metadata
• SSD{namn:{för:"Kalle", efter:"Lind"}, epost:"[email protected]", mobil:"07012345678"}
{namn:"Lisa", telefon:"0709999999"}
![Page 12: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/12.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
12
Representationer• SSD{namn:{för:"Kalle", efter:"Lind"}, epost:"[email protected]", mobil:"07012345678"}• Graf
• XML<Rot>
<namn för="Kalle" efter="Lind" /><epost>[email protected]</epost><mobil>07012345678</mobil>
</Rot>
namn
epost
mobil
förefter
07012345678
Kalle
Lind
![Page 13: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/13.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
13
Träd vs. Nätverk• SSD{person: &1{namn:{för:"Kalle", efter:"Lind"},
epost:"[email protected]",mobil:"07012345678"},
person: &2{namn:{för:"Mia", efter:"Dahl"}, mobil:"0709090909",chef: &1}
• Graf namn
epost
mobil
förefter
07012345678
Kalle
Lind
namn
mobil
förefter
0709090909
Mia
Dahl
person
person
&1
&2
chef
![Page 14: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/14.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
14
XML• Står för Extensible Markup Language• Ett språk för att definiera dokumentstrukturer• XML är en textuell representation av data• Används inom olika områden:
– Datalagring– Webb (XHTML)– Konfigurationsfiler– Transportformat
• Regler kan specificeras via– DTD (Document Type Definition)– XML Schema
• Case sensitive
![Page 15: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/15.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
15
XML-syntax• Element
<Person>Kalle</Person>• Attribut
<Person namn="Kalle"></Person>
• Nästlade element<Person id="59">
<Fnamn>Kalle</Fnamn><Enamn>Lind</Enamn><Adress>
<Gata>Kungsgatan 53</Gata><Postnr>12332</Postnr><Ort>Stockholm</Ort>
</Adress></Person>
• Tomt element<Person namn="Kalle"></Person><Person namn="Kalle" />
![Page 16: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/16.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
16
XML-dokument• XML-deklaration
<?xml version="1.1" encoding="UTF-8" ?>
• DOCTYPE – referens till regler<!DOCTYPE Person SYSTEM "Person.dtd">
• Namespaces– kvalificering av element- och attributnamn<iv1023:Person iv1023:namn="Kalle"></iv1023:Person>– default och andra namespaces<Root xmlns="default ns URI" xmlns:iv1023="iv1023 ns URI">…</Root>
![Page 17: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/17.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
17
XML-referenser• ID
<Person namn="Kalle" id="39"></Person>
• IDREF<Organisation namn="KTH" chef="39"></Organisation>
![Page 18: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/18.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
18
DTD (Document Type Definition)• Definierar XML-strukturen (element och attribut)
<!ELEMENT db (Person*)><!ELEMENT Person (Adress)><!ELEMENT Adress EMPTY><!ATTLIST Person
namn CDATA #REQUIREDid ID #REQUIREDfdatum CDATA #IMPLIEDpappa IDREF #IMPLIED>
<!ATTLIST Adress gatuadress CDATA #REQUIREDpostnr CDATA #REQUIREDpostort CDATA #REQUIRED>
![Page 19: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/19.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
19
XML Schema• Starkare än DTD
– flexiblare strukturer – datatyper
• XML-syntax
<element name="db" type="dbType"/><complexType name="dbType">
<sequence><element name="Person" type="PersonType" minOccurs="0" maxOccurs="unbounded"/>
</sequence></complexType><complexType name="PersonType">
<sequence><element name="Adress" type="AdressType" />
</sequence><attribute name="namn" type="string" use="required"/><attribute name="id" type="id" use="required"/><attribute name="fdatum" type="date" use="optional"/><attribute name="pappa" type="idref" use="optional"/>
</complexType><complexType name="AdressType">…
![Page 20: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/20.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
20
Well-formed & Valid• Well-formed XML
– Syntaktiskt korrekt– Börjar med XML-deklarationen– Innehåller endast ett rot-element– Matchade öppnings- och stängningstaggar
• Valid XML– Är well-formed– Följer reglerna i den kopplade DTD eller XML Schema
![Page 21: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/21.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
21
XML-baserade språk• Definition av struktur• Definition av semantik
• XML-grundregler– Alfabet, vokabulär
• XML Schema (eller DTD)– Grammatik, syntax
• XML Schema förklaringen (för människor)– Semantik, betydelse
![Page 22: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/22.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
22
XML-representation• Textuell representation (serialiserat XML-dokument)• Abstrakt nodstrukturrepresentation
– XML Infoset– PSVI (Post-schema-validation Infoset)– XPath 1.0-modellen– XQuery 1.0-modellen
![Page 23: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/23.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
23
XML Infoset• Representation av det väsentliga innehållet i ett XML-
dokument– Vissa syntaktiska detaljer ignoreras– Bryr sig inte om XML Schema eller datatyper
• 11 information items, bl a– Document Information Item ("roten")– Element Information Item– Attribute Information Item– Comment Information Item– Processing Instruction Information Item– Document Type Declaration Information Item– Character Information Item
![Page 24: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/24.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
24
PSVI• Post-Schema-Validation Infoset• Utökar Infoset med stöd för information från XML
Schema– datatyper– valideringstillstånd
![Page 25: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/25.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
25
XPath 1.0-modellen• Trädrepresentation av XML-dokument• 7 nodtyper
– root– element– attribute– text– namespace– comment– processing instruction
• Varje nod har ett värde– konkateneringen av alla underliggande textnoder
• Nodmängder (node sets)
![Page 26: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/26.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
26
XQuery 1.0-modellen (XPath 2.0)• Kan representera
– XML-dokument (trädstruktur)– noder– värden– sekvenser av noder och/eller värden
• 7 typer av noder– document– element– attribute– text– comment– processing instruction– namespace
http://www.w3.org/TR/xpath-datamodel/
![Page 27: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/27.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
27
XQuery-modellen - nodegenskaper• Elementnod
– children (elementnoder, PI-noder, kommentarnoder, textnoder) – parent (elementnod eller dokumentnod)– attributes (attributnoder)– namespaces (namespacenoder)– string-value, typed-value– Obs! namespaces och attribut är inte children
• Attributnod– parent (elementnod) (heter owner i Infoset)– string-value, typed-value
• Dokumentnod– children– string-value, typed-value
![Page 28: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/28.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
28
XQuery-modellen - nodegenskaper• Textnod
– string-value– typed-value– parent (elementnod)
• Kommentarnod– string-value– parent (elementnod eller dokumentnod)
• PI-nod– string-value– parent (elementnod eller dokumentnod)
• Namespace-nod– string-value– parent (elementnod)
![Page 29: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/29.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
29
DTD (Document Type Definition)• Definierar element och deras struktur
– subelement– innehåll (content)– attribut
• Använder egen syntax
![Page 30: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/30.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
30
DTD - element• Tomt element
<!ELEMENT Person EMPTY>• Subelement
<!ELEMENT Person (Namn, Adress)>• Subelement som kan saknas
<!ELEMENT Person (Namn, Adress?)>• Subelement som förekommer noll eller flera gånger
<!ELEMENT Person (Namn, Adress, Tel*)>• Subelement som förekommer en eller flera gånger
<!ELEMENT Person (Namn, Adress, Tel+)>• Element med textinnehåll
<!ELEMENT Person (#PCDATA)>• Element med godtyckligt innehåll
<!ELEMENT Person ANY>
![Page 31: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/31.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
31
DTD - element• Alternativa subelement
<!ELEMENT Person (Namn, (Anställd|Student))>
Namn, Adress, Tel, Anställd, Student måste förstås också definieras.
![Page 32: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/32.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
32
DTD - attribut• Attribut definieras per elementtyp• Ett eller flera attribut kan definieras i samma ATTLIST• Obligatoriskt attribut
<!ATTLIST Person pnr CDATA #REQUIRED>• Frivilligt attribut
<!ATTLIST Person längd CDATA #IMPLIED>• Frivilligt attribut med default-värde
<!ATTLIST Person födelseplats CDATA "Stockholm">• Attribut med fast värde
<!ATTLIST Person arbetsgivare CDATA #FIXED "KTH">• Attribut med begränsade möjliga värden
<!ATTLIST Person kön ("man", "kvinna") #REQUIRED>
![Page 33: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/33.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
33
DTD - attribut• Flera attribut i samma ATTLIST
<!ATTLIST Person pnr CDATA #REQUIREDfödelseplats CDATA "Stockholm"kön ("man", "kvinna") #REQUIREDlängd CDATA #IMPLIED>
• Attribut med unika värden<!ATTLIST Person pnr ID #REQUIRED>
• Attribut som refererar ett unikt ID-attribut<!ATTLIST Person chef IDREF #IMPLIED>
![Page 34: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/34.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
34
XML Schema• Definierar element och deras struktur
– subelement– innehåll (content)– attribut– datatyper– antal förekomster– komplexa ordningsregler
• Använder XML-syntax– XML Schema är ett XML-baserat språk
![Page 35: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/35.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
35
XML Schema-dokument• Namespace
– http://www.w3.org/2001/XMLSchema– rekommenderat alias: xs
• Rotelement– schema– attribut targetNamespace
• Definierar– element– attribut– typer
<schema xmlns="http://www.w3.org/2001/XMLSchema"targetNamespace="…">definitioner
</schema>
![Page 36: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/36.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
36
XML Schema - element• Elementet element definierar element
– attributet name definierar elementets namn– attributet type eller innehållet anger elementets typ
• Element kan ha en av följande typer– En grundtyp (string, integer, date, etc.)
» <element name="Namn" type="string" />– En typ definierad någon annanstans
» <element name="Namn" type="MinTyp" />– En typ definierad i innehållet
» <element name="Namn">typdefinitionen
</element>
![Page 37: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/37.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
37
XML Schema - attribute• Elementet attribute definierar attribut
– attributet name definierar attributets namn– attributet type eller innehållet anger attributets typ– attributet use anger om attributet är optional (default) eller required
• Attribute kan ha en av följande typer– En grundtyp (string, integer, date, etc.)
» <attribute name="Namn" type="string" />– En typ definierad någon annanstans
» <attribute name="Namn" type="MinTyp" />– En typ definierad i innehållet
» <attribute name="Namn"><simpleType … />
</attribute>
![Page 38: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/38.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
38
XML Schema - typer• Grundtyper
– string, integer, date, etc.
• Egendefinierade typer– complexType
» när man har subelement eller attribut– simpleType
» begränsning av en grunddatatyp
![Page 39: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/39.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
39
XML Schema - simpleType<xs:simpleType name="veckodag">
<xs:restriction base="xs:string"><xs:enumeration value="Måndag"/><xs:enumeration value="Tisdag"/><xs:enumeration value="Onsdag"/><xs:enumeration value="Torsdag"/><xs:enumeration value="Fredag"/><xs:enumeration value="Lördag"/><xs:enumeration value="Söndag"/>
</xs:restriction></xs:simpleType>
<xs:simpleType name="betyg"><xs:restriction base="xs:integer">
<xs:minInclusive value="0"/><xs:maxInclusive value="10"/>
</xs:restriction></xs:simpleType>
![Page 40: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/40.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
40
XML Schema - complexType• Kan innehålla ett av följande
– simpleContent» om elementets innehåll skall vara av en enkel datatyp (en textnod)
– complexContent» om elementets innehåll är baserat på en annan complexType
– all» definierar subelement i obestämd ordning
– choice» definierar alternativa subelement
– sequence» definierar sekvens av subelement
– group» använder en fördefinierad struktur av subelement
• Kan även innehålla (när inte Content)– noll eller flera element "attribute" eller "attributeGroup"
![Page 41: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/41.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
41
XML Schema - complexType<xs:complexType name="PersonType">
</xs:sequence><xs:element name="Förnamn" type="xs:string"/><xs:element name="Efternamn" type="xs:string"/><xs:element name="Födelsedatum" type="xs:date"/>
</xs:sequence></xs:complexType>
<xs:complexType name="PersonType"><xs:attribute name="Förnamn" type="xs:string"/><xs:attribute name="Efternamn" type="xs:string"/><xs:attribute name="Födelsedatum" type="xs:date"/>
</xs:complexType>
![Page 42: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/42.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
42
XML Schema - förekomster• Attributet minOccurs anger minsta antal förekomster
– default 1
• Attributet maxOccurs anger högsta antal förekomster– default 1– för obegränsat sätt "unbounded"
• Används för– choice – all (0..1 till 1..1)– sequence– group– element– any (godtyckligt element)
![Page 43: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/43.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
43
XML Schema - exempel<xs:group name="InfoGrupp">
</xs:choice><xs:element name="Epost" type="xs:string"/><xs:element name="Telefon" type="xs:string"/><xs:element name="Webbplats" type="xs:string"/>
</xs:choice></xs:group>
<xs:complexType name="PersonTyp"><xs:sequence>
<xs:group ref="InfoGrupp" minOccurs="0" maxOccurs="unbounded" /><xs:element name="Förnamn" type="xs:string"/><xs:element name="Efternamn" type="xs:string"/>
</xs:sequence><xs:attribute name="Födelsedatum" type="xs:date" use="optional"/>
</xs:complexType>
<xs:complexType name="PersonalTyp"><xs:complexContent>
<xs:extension base="PersonTyp"><xs:attribute name="Anställningsnummer" type="xs:string"/>
</xs:extension></xs:complexContent>
</xs:complexType>
![Page 44: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/44.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
44
XML Schema - Övrigt• list
– definierar att en simpleType är en lista
• union– definierar en ny typ som är unionen av flera andra typer
• annotation– för att ange kommentarer (med documentation eller appInfo)
• key, unique, field, keyref, selector– definierar "identifierare"/"kandidatnycklar" och referenser
• datatypbegränsningar med– length, minLength, maxLength– minExclusive, minInclusive, maxExclusive, maxInclusive– totalDigits, fractionDigits– pattern, whiteSpace
![Page 45: nikos dimitrakas nikosd@kth.se 08-7904460 Rum 8522](https://reader034.fdocument.pub/reader034/viewer/2022042719/5681436b550346895dafea76/html5/thumbnails/45.jpg)
IV1023 ht2013nikos dimitrakasKTH/ICT/SCS
45
Fortsättning• Quiz om semistrukturerade data, XML, DTD, XML Schema