XML & XSLT voor DMO. Een XML datamodel. Van ERD naar XML schema. XML en XSLT DMO Datamodellering 2008

Vergelijkbare documenten
XML & XSLT voor DMO. Datamodellering Een XML datamodel. conceptueel model logisch / fysiek model: platform afhankelijk

SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.

Zelftest XML Basis. Document: n1006test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium

XSD.

DTD - Inleiding. Document Type Definitions (DTDs)

Schema. Schema - Inleiding. <hoofdstuk> </hoofdstuk> DTD? Eenstapjeverder. Schema XML

XML Introductie.

DATAMODELLERING XML SCHEMA DEFINITIONS

XMLType DEV. Native XML datatype in de database

Adlib Gebruikersdag adlibxml/xslt in de praktijk Breukelen 2 mei 2013 Solino de Baay s.debaay@adlibsoft.com

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Specificatie technisch formaat voor aanlevering meetgegevens Zorginhoudelijke Indicatoren

Correspondentie inzake overnemen of reproductie kunt u richten aan:

DATAMODELLERING ER DIAGRAM

XML. Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Marc de Graauw

KvK-FRIS Eisen aan en toelichting op gebruik SBR rapportages (XBRL instances) voor het deponeren van jaarrekeningen gebaseerd op de NT 2011

Reporting System CPA 2006

Ontwerprichtlijnen voor XML-Schemadefinities

Standaardisatie. XML Schema Definition Architectuurprincipes. Versie document 1.3. Datum: v1.3

Standaardisatie. XML Schema Definition. Architectuurprincipes. Versie document 1.0. Datum:

XSL = XSLT + XSL-FO + XPath

XML Introductie.

Rd 1 MULTIMEDIA DEEL2

Leeswijzer Uitwisselingstalen

Nieuws & RSS in DotNetNuke

Eindtoets XML: Theorie en toepassingen

Ontwerprichtlijnen voor XML-schemadefinities (XSD s) 18 juli 2017

Migratie PS API 40 naar 50

SQL & Datamodelleren

Info-books. Toegepaste Informatica. Deel 35: XML - XSL HO35. Jos Gils Erik Goossens

Creëren van een instantie van de gegenereerde.net class, standaard initialisatie door.net

DATAMODELLERING TOEPASSEN SOA

4XSLT. Davy Friedrich Joe Achten Wim Deprez

Dankwoord. Bedankt! Wim Janssen Juli 2005

MS-Office documenten integratie via SAP PI

Appendix Whois-interface Appendix bij DRS5 Handleiding

Inhoudsopgave Inleiding... 2

Elektronisch Journaliseren bij e-xperimenteren+

Koppelvlakstandaard Grote Berichten Digikoppeling 2.0

ER-modeling. Datamodellering Wat is ER-modeling?

ER-modeling. Wat is ER-modeling? ERD & relationeel model. ER-benadering DMO Datamodellering 2008

XML-Databases. Editie 10 jaargang Daniël Artois

Mogelijk onvolledige datum

Webinterface voor XSD-gebaseerde generatie van een invoer-ui m.b.v. J2EE technologie

Zelftest XML Concepten

Service Data Objects. Wat is SDO? Dynamic data API

Mogelijkheden RSS content in MailPlus

SQL datadefinitietaal

Voorstudie G80061-U1029-U024-A4-Z015 Studie Extlab Export-Import_nl.doc

GAB Postcode (geheel)

Aanmaak van een XML bestand voor de aangifte van de lijst van ingezeten klanten en aantal verrichtingen. Ed. 2007

De mogelijkheden van XML voor de langdurige bewaring van digitale documenten. DAVID studiedag 30 nov 2000

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling

XSD 1.5 aanpassingen

Ministerie van Infrastructuur en Milieu Standaard Platform - Aansluitvoorwaarden Applicaties en Componenten

One Gate (CSSR) XML File Upload Protocol F23CON

SIDN Whois interface

Eisen aan, en toelichting op, het gebruik van XBRL instance documenten gebaseerd op de Nederlandse Taxonomie versie 10.a.x

Geo semantiek. George Spoelstra, Senior consultant Ruimtelijke informatie voorziening. Ogh SIM bijeenkomst

Test doc.

DATAMODELLERING GEAVANCEERD UML KLASSEMODEL

WEBSECURITY INFORMATICA STUDENTENWERKING. Gemaakt door Bryan De Houwer en Yuri Moens

Eisen aan, en toelichting op, het gebruik van XBRL instance documenten gebaseerd op de Nederlandse Taxonomie NT

Binariseren van XML. Faculteit Toegepaste Wetenschappen Vakgroep Elektronica en Informatiesystemen Voorzitter: prof. dr. ir. J.

Inleiding tot XML en aanverwante specificaties

Wat is er mis met XML?

KvK-FRIS Eisen aan en toelichting op gebruik XBRLinstances voor het deponeren van jaarrekeningen gebaseerd op NT versie 2009

XPath voor beginners. HVA-IAM-V1-TDI Internetstandaarden /2009. Fons van Kesteren

SIDN Whois interface

Zelftest Inleiding Programmeren

ContentQueryWebpart en custom XSLT. Alles wat je moet weten over het CQW

Oefenvragen OMI eerste helft

Smartsite ixperion Faceted Search

STANDAARD TOEGANKELIJKHEID RUIMTELIJKE INSTRUMENTEN STRI2008. Bijlage 3 behorende bij de Regeling standaarden ruimtelijke ordening

Inleiding C++ Coding Conventions

Interactie: Document Object Model en JavaScript. Hoorcollege Webdesign 7 23 mei 2014 Christof van Nimwegen

Gebruikershandleiding e-line DNB: het XML-importbestand

Temperatuur logger synchronisatie

TradeTracker. Handleiding voor implementatie productfeeds in het CSV of XML formaat INT 09-M023_NL

XML-opslag en indexeringsopties in Oracle 11g

Datamodelleren en databases 2011

Datastructuren Werkcollege Intro

Veel informatie over XML en bijbehorende zaken (zoals DTD, XSL etc.) is te vinden via de Home page van XML 101 (URL: ).

Implementatie #-operator

aé=åçãéáä~íáé=î~å=ko`=éñéêéëëáéë=å~~ê=pni

Uitwerking. Noem overeenkomsten, verschillen en mogelijke relaties tussen:

Inleiding tot Func.oneel Programmeren les 3

Hand-out Introduction to Programming, werkcollege 7 Alex Reuneker 2013

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie

Zo kan je linken maken tussen je verschillende groepen van gegevens.

Data Definition Language

Datastructuren en Algoritmen voor CKI

Zonnepanelen Hoe krijg je de data op je website?

DATAMODELLERING BASIS UML KLASSEMODEL

< > Introductie. Structuur extraheren met XSLT

Third party mededeling

OAS en het Kennisplatform API s. Dimitri van Hees

Module V - XML. Stefan Flipkens - Cursus: Internet - Intranet ( ) V 1

Cascading Style Sheets

STANDAARD TOEGANKELIJKHEID IMRO2006 PLANNEN EN PLANCONTOUR & PDF "STRI2006"

Transcriptie:

XML & XSLT voor DMO Datamodellering 2008 1/24 Een XML datamodel Datamodelleren conceptueel model logisch / fysiek model: platform afhankelijk Logisch-fysieke model voor XML-platform = XML schema, b.v.: 1. DTD 2. W3C schema Schema een ruim begrip! (zie Møller, p. 96) 2/28 Van ERD naar XML schema Entitytype (in de regel) XML element Attributen attributen van een XML element of ook elementen Vergelijk nu constructies in: XML DTD XML Schema Herhaling stof UWT alleen in hoofdpunten! 3/28 DMO 2008 1

Elementen in DTD Elementen in een DTD (zie Møller, p. 98 e.v.) <!ELEMENT naam content model> b.v. <!ELEMENT book (title, author)> content model EMPTY ANY #PCDATA,? * + bijzonder: mixed content model (#PCDATA e1 e 2 e n )* 4/28 XML entities Built-in entities: < > & &apos; " <title>"computer Science "</title> Internal parsed entities b.v. <!ENTITY cs ComputerScience > <title>the department of &cs;</title> Parameter entities zie volgende slides 5/28 Gebruik entities <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE test [ <!ELEMENT test (title)> <!ELEMENT title (#PCDATA)> <!ENTITY cs "ComputerScience"> ]> <test> <title>" &cs; "</title> </test> 6/28 DMO 2008 2

Parameter entity Parameter entity is een macro in een DTD: <!ENTITY % naam " "> (zie Møller, p. 107) Voorbeeld: <!ENTITY % p "(#PCDATA)"> <!ELEMENT firstname %p;> <!ELEMENT surname %p;> 7/28 Attributen in DTD Attributen in een DTD (zie Møller, p. 101 e.v.) <!ATTLIST element-naam att-defs> vb.: <!ATTLIST box length CDATA 0 > attribuut-definitie: types, b.v.: CDATA, NAMETOKEN, ID, IDREF attribute modifiers: #REQUIRED, #IMPLIED, #FIXED enumeration, b.v.: <!ATTLIST person sex (male female) #REQUIRED> 8/28 DTD versus DDL van SQL DTD: gebrekkige attribuut-definitie nauwelijks domein constraints gebrekkige referentiële integriteit (ID-IDREF werkt alleen binnen een document) SQL: scala aan datatypes domein constraints goede referentiële integriteit Wil je méér in XML W3C schema 9/28 DMO 2008 3

XML schema Logisch/fysiek datamodel met veel meer mogelijkheden dan een DTD: geschreven in XML altijd extern meer datatypes namespace aware nauwkeurige definitie van structuur (volgorde, maar ook aantal child elements) 10/28 Elementen in XML schema Simple type alleen tekst (geen attributen) <xs:element name="lastname" type="xs:string"/> Complex type bevat andere elementen en/of attributen, b.v.: <xs:element name="employee"> <xs:complextype> <xs:sequence> <xs:elementname="firstname type="xs:string"/> <xs:element name="lastname" type="xs:string"/> </xs:sequence> </xs:complextype> </xs:element> 11/28 Attributen in XML schema Gedeclareerd als simple types <xs:attribute name="xxx" type="yyy"/> Voorbeeld: <xs:attribute name="lang" type="xs:string" use="required"/> Uitgebreide lijst van primitive simple types (zie Møller, p. 120): string, boolean, decimal, datetime, etc. 12/28 DMO 2008 4

Element met attribuut B.v. een US-adres: <xsd:complextype name="usaddress" > <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:nmtoken" fixed="us"/> </xsd:complextype> 13/28 Content model DTD vs. Schema DTD, ANY + * mixed content parameter entity NULL XML schema <sequence> <choice> <any> <all> maxoccurs/minoccurs mixed= true <group>, ref-attribute nillable= true 14/28 Mixed content Voornaam, achternaam (in willekeurige volgorde) plus tekst: <xs:complextype name="persname" mixed="true"> <xs:all> <xs:element name="firstname" type="xs:token"/> <xs:element name="familyname" type="xs:token"/> </xs:all> </xs:complextype> 15/28 DMO 2008 5

Domeindefinitie XML schema (1) Restricties op content door een primitive simple type in te perken via facets: <xs:element name="car"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:enumeration value="audi"/> <xs:enumeration value="golf"/> <xs:enumeration value="bmw"/> </xs:restriction> </xs:simpletype> </xs:element> 16/28 Domeindefinitie XML schema (2) Restricties op content door een primitive simpel type in te perken via een pattern facet: <xs:element name="initials"> <xs:simpletype> <xs:restriction base="xs:string"> <xs:pattern value="[a-z][a-z][a-z]"/> </xs:restriction> </xs:simpletype> </xs:element> 17/28 Data retrieval in XML XSLT met Xpath Xquery (b.v. in XML database) In al deze gevallen: navigeren ( setoperaties in SQL) Vereist kennis van de opslagstructuur de werking van een een XSLT processor de XML inputtekst 18/28 DMO 2008 6

XML document tree <?xml version="1.0"?> root node <!-- Dee-licious! --> <sandwich xmlns="http://www.food.org/ns"> <ingredient type="grape"> jelly</ingredient> <ingredient> <?spread thickly?> peanut-butter </ingredient> <ingredient> bread <!-- white bread, preferably --> </ingredient> </sandwich> root element 19/28 Nodes in de XSLT-boom Root node (= document node) een onzichtbaar punt boven het root element Element correspondeert met element in XML document Attribute correspondeert met een attribuut van een element in een XML document heeft een element als parent, maar wordt niet als een gewoon child behandeld in XSLT Text de tekstuele inhoud van het document Comment Processing instruction Namespace 20/28 Van boom tot boom Style sheet Stylesheet tree Source tree Result Tree Source document Result Document Transformatie proces 21/28 DMO 2008 7

Template rules De transformatie is op te vatten als een reis door de input-boom, waarbij stapsgewijs de output-boom wordt opgebouwd XSLT-instructies sturen dit proces = toepassen van: template rules specificeren de transformaties expliciet in de XSLT-file of built-in in de XSLT-processor bestaan twee delen: een actie een pattern (het match-attribute) op welk deel van de input-boom de actie moet worden toegepast Voorbeeld: <xsl:template name="booklist" match="booklist"> 22/28 Default situatie Schrijven we geen uitvoerige template rules, dan toch output. Voorbeeld: <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform "version="1.0"> <xsl:template name="basic"> <xsl:apply-templates/> </xsl:template> </xsl:stylesheet> dit doorloopt de hele input tree (depth first) en geeft alle text weer 23/28 Sturing template-gebruik <xsl:apply-templates/> <xsl:apply-templates select=""/> <xsl:for-each select=""/> in combinatie met: <xsl:call-template name=""/> of: <xsl:call-template name=""> <xsl:with-param name=""> value </xsl:with-param> </xsl:call-template> 24/28 DMO 2008 8

Wanneer welke stijl? Globale vuistregel: <apply templates> wanneer het voorkomen van elementen betrekkelijk onvoorspelbaar is b.v. bold, italic, afbeeldigen in tekst etc. <for-each> wanneer er een regelmatige, bekende datastructuur is b.v. een databaserecord-structuur of vaste volgorde van hoofdstukken, secties, etc. 25/28 Parameters - 1 XSLT-templates kunnen parameters hebben: <xsl:template name="calcarea" <xsl:param name="width"/> <xsl:param name="height"/> <xsl:value-of select="$width * $height"/> </xsl:template> Gebruik: <xsl:call-template name="calcarea"> <xsl:with-param name="width">5</xsl:with-param> <xsl:with-param name="height" select="7"/> </xsl:call-template> 26/28 Parameters - 2 Parameters kunnen ook globaal zijn voor het hele XSLT-programma. Dan is <xsl:param> een top-level element. Zij zijn vergelijkbaar met een XSLTvariabelen. Default waarde via select-attribuut of via template content. Voorbeelden: <xsl:param name="naam" select="expression"/> <xsl:param name="naam">value</xsl:param> 27/28 DMO 2008 9

Oefening: maak DTD <onderwijs <docenten> <docent doc-id="p1"> <voornaam>jan</voornaam> <tussen>van den</tussen> <achternaam>broek</achternaam> <expertise>logica</expertise> </docent> <docent doc-id="p6"> <voornaam>piet</voornaam> <achternaam>jansen</achternaam> <expertise>logica</expertise> </docent> <docent doc-id="p12"> <voornaam>koos</voornaam> <tussen>de</tussen> <achternaam>boer</achternaam> <expertise>engels</expertise> </docent> </docenten> <onderwijsaanbod> <cursus cur-id="c1" doc-id="p1"> <cnaam>databases</cnaam> <periode>1</periode> </cursus> <cursus cur-id="c2" doc-id="p1"> <cnaam>logica</cnaam> <periode>2</periode> </cursus> <cursus cur-id="c3" doc-id="p6"> <cnaam>nederlands</naam> <periode>2</periode> </cursus> </onderwijsaanbod> </onderwijs> 28/28 DMO 2008 10