Documentverwerking Deel 3 Dieter Fiems 24 april 2009 1.

download Documentverwerking Deel 3 Dieter Fiems 24 april 2009 1.

If you can't read please download the document

  • date post

    18-Jun-2015
  • Category

    Documents

  • view

    214
  • download

    0

Embed Size (px)

Transcript of Documentverwerking Deel 3 Dieter Fiems 24 april 2009 1.

  • Dia 1
  • Documentverwerking Deel 3 Dieter Fiems 24 april 2009 1
  • Dia 2
  • Vandaag XSLT (vervolg) XML Schema 2
  • Dia 3
  • Beperkingen van DTDs DTDs kennen maar een beperkt aantal data-types (text,ID,IDREF,IDREFS,ENTITY,ENTITIES,...) Aparte syntax, geen XML Moeilijk uitbreidbaar Geen ondersteuning voor namespaces Deterministisch content-model Bijvoorbeeld: 3 kindelementen in willekeurige volgorde? Er kan geen structuur opgelegd worden bij mixed content 3
  • Dia 4
  • Schemata Een schema is een document dat de toelaatbare inhoud van andere documenten beschrijft. Document Type Definition XML Schema w3c standaard zie verder RELAX NG REgular LAnguage for XML Next Generation OASIS (Organization for the Advancement of Structured Information Standards) standaard ISO/IEC 19757 Heeft zowel XML syntax als niet-XML syntax 4
  • Dia 5
  • XML Schema "Hello World" Hello World! 5
  • Dia 6 Hello "> Hello World! > 6 namespace van noNamespaceSchemaLocation attribuut verwijzing naar het schema"> Hello " title="Associatie van document en schema Hello ">
  • Associatie van document en schema Hello World! > 6 namespace van noNamespaceSchemaLocation attribuut verwijzing naar het schema
  • Dia 7
  • Een uitgebreider voorbeeld 7 Voorbeeld: po.xml (http://www.w3.org/TR/xmlschema-0/#po.xml) po.xsd (http://www.w3.org/TR/xmlschema-0/#po.xsd)http://www.w3.org/TR/xmlschema-0/#po.xmlhttp://www.w3.org/TR/xmlschema-0/#po.xsd Schema bestaat uit: element declaraties type definities: simple en complex annotaties Orde heeft geen belang Er is geen root element (in tegenstelling tot DTD)
  • Dia 8
  • Elementdeclaratie Content: (annotation?, ((simpleType| complexType)?, (unique | key | keyref)*)) 8
  • Dia 9
  • Attribuutdeclaratie Content: (annotation?, (simpleType?)) 9
  • Dia 10
  • Declaraties... namede naam van het gedeclareerde element. typehet type van het element. minOccurs maxOccurs minimaal/maximaal aantal keren dat het element moet voorkomen; maxOccurs kan ook "unbounded" zijn. fixed default geeft het element/attribuut een vaste (fixed) of een default (default) waarde;de element/attribuutdeclaratie bevat slechts n van beiden. SimpleType ComplexType het type van het element kan ook binnen de element/attribuutdeclaratie gedefinieerd worden. refEen referentie naar een globaal gedefineerd element/attribuut (elementdefinitie is kindelement van schema). Dit is nuttig als eenzelfde element/attribuut in verschillende type definities voorkomt. usegeeft aan of een attribuut al dan nietmag/moet voorkomen. 10
  • Dia 11
  • Simple versus complex types Complex Alle elementen met kindelementen en/of attributen zijn complex Complexe type definities leggen de structuur van documenten vast Simple Noch attributen, noch kind-elementen Enkel content Er kunnen beperkingen aan de content worden opgelegd met behulp van facets 11
  • Dia 12
  • Complex types 12
  • Dia 13
  • Complex Types Content: (annotation?, (simpleContent | complexContent | ((group | all | choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?)))) 13
  • Dia 14
  • Complex Types nameDe naam van het complexe type simpleContentHet type bevat geen kindelementen. Er kunnen wel restricties op de data en attributen worden gedefinieerd door middel van restricties/extenties van types zonder kindelementen. Voor restricties: zie SimpleTypes complexContentHet type is geen simple Content. Kan vaak weggelaten worden. choiceSlecht n element van een choice groep wordt geselecteerd. sequenceDe elementen van moeten in de opgegeven volgorde voorkomen. allDe elementen kunnen in gelijk welke volgorde voorkomen. Een all groep is kindelement van complexType en kan niet met sequence en choice gecombineerd worden. mixeder kan karakter data aanwezig zijn tussen de elementen 14
  • Dia 15
  • Empty / Any Empty element met n attribuut Element zonder restricties op kindelementen 15
  • Dia 16
  • Uitbreiding van complex types Creatie van een nieuw type door elementen toe te voegen aan bestaande types 16
  • Dia 17
  • Build-in types Strings ENTITIES, ENTITY, ID, IDREF, IDREFS, language, Name, NCName, NMTOKEN, NMTOKENS, normalizedString, QName, string, token Datums date, dateTime, duration, gDay, gMonth, gMonthDay, gYear, gYearMonth, time Getallen base64Binary, byte, decimal, double, float, hexBinary, int, integer, long, negativeInteger, nonPositiveInteger, positiveInteger, short, unsignedLong, unsignedInt, unsignedShort, unsignedByte Andere anyURI, boolean, NOTATION,... 17
  • Dia 18
  • Simple Types Content: (annotation?, (restriction | list | union)) 18 facets
  • Dia 19
  • Simple Types 2 18 9 15 17 2 15 9 17 18 Hello World! 19
  • Dia 20
  • Facets 20 facetomschrijving enumerationdefinieert een lijst van mogelijke waarden fractionDigitsaantal decimalen na de komma lengthlegt het aantal karakters/list items vast maxExclusive maxInclusive minExclusive minIncluse legt boven- en ondergrenzen vast van numerieke waarden maxLength minLength legt een bovengrens/ondergrens voor het aantal karakters vast patternde data moet aan een reguliere expressie voldoen totalDigitslegt het totaal aantal decimalen vast whiteSpaceGeeft weer hoe white space wordt behandeld (preserve, replace, collapse)
  • Dia 21
  • Voorbeelden 21
  • Dia 22
  • Voorbeelden 22
  • Dia 23
  • Reguliere expressies een karakter: bijvoorbeeld a of c speciale karakters: \n (nieuwe lijn) \? (vraagteken) \s (white space karakter)... een keuze groep, a of b: (a|b) Een karakterklasse: [abc],[0-9],[a-z] Een karakter buiten de klasse: [^abc],[^0-9] Quantifiers: ?n of geen *een willekeurig aantal +minstens n {n}exact n {n,}ten minste n {n,m}tussen de n en m 23
  • Dia 24 ... 24 default ns heeft ns """>
  • Namespaces Verschillende woordenschatten in zelfde document Onderscheid door middel van namespaces Namespace gedefinieerd voor alle kind-elementen van een element ... 24 default ns heeft ns ""
  • Dia 25 ... Eerste regel: alle elementen in het schema worden in deze namespace gedefinieerd Tweede regel: default namespace is de schema namespace Derde regel: gebruik ipo prefix om naar de targetnamespace te verwijzen Vierde en vijfde regel: globale attribuut- en elementdefinities behoren steeds tot de namespace, lokale ook indien "qualified". 25">
  • Namespaces en XML Schema Target namespace ... Eerste regel: alle elementen in het schema worden in deze namespace gedefinieerd Tweede regel: default namespace is de schema namespace Derde regel: gebruik ipo prefix om naar de targetnamespace te verwijzen Vierde en vijfde regel: globale attribuut- en elementdefinities behoren steeds tot de namespace, lokale ook indien "qualified". 25
  • Dia 26 .... 26">
  • Namespaces en XML Schema Associatie met schema .... 26
  • Dia 27
  • Namespaces en XML Schema Meerdere schema's specifeer de namespaces in het XML document associeer het schema van het root element importeer de andere schema's in het schema van het root element 27
  • Dia 28
  • Voorbeeld Hot Cop Jacques Morali 1978 Village People 28
  • Dia 29
  • Voorbeeld 29
  • Dia 30
  • Voorbeeld ... 30
  • Dia 31
  • Referenties XML Schema http://www.w3.org/TR/xmlschema-0/ 31