marc de graauw xml alle tekortkomingen op een rijtje! (en een paar pluspunten...) innovation devday...

50
Marc de Graauw http:// www.marcdegraauw.com/ XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Upload: siebe-goossens

Post on 14-Jun-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XMLAlle tekortkomingen op een rijtje! (en

een paar pluspunten...)

Innovation DevDay 2009

Page 2: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Marc de Graauw

• studeerde biologie & filosofie• sinds 1989 in de ICT• sinds 1996 zelfstandig consultant

– semantiek– interoperabiliteit– XML & Web Services

• Landelijk Elektronisch Patiëntendossier, Strafrechtketen, verzekeraars, arbodiensten, UWV

• artikelen en presentaties: zie http://www.marcdegraauw.com/

Page 3: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

De geschiedenis van XML

• SGML– Standard Generalized Markup Language– IBM: back to the sixties...– Markup: structuur, niet processing

• HTML: SGML spinoff• 1998: XML

– SGML voor het Web, zonder ballast

• 2002: Hype• 2009: Waar staan we?

Page 4: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Waarom XML?

• XML als documentformaat– uitgevers: een bron, veel weergaven– SGML is te complex

• XML voor gegevensuitwisseling– ASCII, CSV is te simpel en foutgevoelig– EDI is te duur

• XML voor het Web– HTML kan geen semantiek uitdrukken– XML volgende generatie (‘Semantic Web’)

Page 5: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XML en Unicode

Page 6: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

HTML - een voorbeeld

<HTML><HEAD><TITLE>Marc de Graauw</TITLE></HEAD><BODY><H1>Marc de Graauw</H1><P>Geslacht: Man</P><H2>Opleidingen</H2><OL><LI>VWO</LI><LI>kandidaats Biologie</LI><LI>doctoraal filosofie</LI></OL></BODY></HTML>

Page 7: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XML - een voorbeeld

<?xml version="1.0" encoding="UTF-8"?>

<persoon> <persoonsgegevens geslacht="Man"> <achternaam>Graauw</achternaam> <voorvoegsel>de</voorvoegsel> <voornaam>Marc</voornaam> </persoonsgegevens> <opleiding>VWO</opleiding> <opleiding>kandidaats Biologie</opleiding> <opleiding>doctoraal filosofie</opleiding></persoon>

Page 8: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Vóór Unicode

• 7 bits, 128 tekens, 95 afdrukbaar• Engels: cijfers, letters, leestekens• niet: Frans: ê ç Duits: ß ä Grieks: ε Ω Nederlands: ë ï• Spaans, Arabisch, Fins, Russisch, Chinees, Thais, etc. etc.

bits 0110 1101 0110 0001 0111 0010 0110 0011

bytes dec 109 97 114 99

bytes hex 6d 61 72 63

ascii m a r c

Page 9: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Vóór Unicode

ASCII DEC Multi-national

Character Set

codepage850

code page473

bytes 0 - 127 bytes 128 - 255

Engels, meeste Frans, DuitsIBM PC

ISO-Latin + œ, €

ISO-Latin+ ‘IJ’sland+ ‘œ’uf

ISO-8859-1

(ISO-Latin)

West-Europees

ISO-8859-15

Windows1252

WestEuropees+ Á ß

Shift-JIS

Japans EBCDICIBMmainframe

etc. etc. etc....

Page 10: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Vóór Unicode

CP

437

CP

850

Windows 1252

ISO-Latin-1

ISO-Latin-15

Unicode

a 61 61 61 61 61 0061

á a0 a0 e1 e1 e1 00e1

ä 84 84 e4 e4 e4 00e4

€ - - 80 - a4 20ac

õ - e4 f5 f5 f5 00f5

Ç 80 80 c7 c7 c7 00c7

œ - - 9c - bd 0153

Page 11: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Unicode

code point

U+006D

karakter

LATIN SMALL LETTER M(de letter ‘m’)

glyph

m

m

m

m

m

Page 12: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 13: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 14: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 15: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 16: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 17: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Tengwar – Tolkien - niet officieel (private use range)

Page 18: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Unicode encodings• Unicode

– U+006D = ‘m’– karakter 0 – 255: gelijk aan ISO-Latin-1– 1.114.112 code points (0 – 10FFFF)

• UTF-16 encoding– 4 bytes– 0000 – FFFF: gelijk aan Unicode nummer– Byte Order Mark

• U+FEFF (ZERO-WIDTH NO-BREAK SPACE)• byte-swapped = U+FFFE = geen legaal karakter

– efficiënt voor Chinees en Japans• UTF-8

– 1 tot 4 bytes– 0 – 127: gelijk aan ASCII– ergo: ASCII tekst is altijd ook UTF-8 tekst– efficiënt voor Westerse talen

Page 19: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Unicode encodings

teken code point

UTF-8 UTF-16 ISO-Latin-1

ASCII

spatie U+0020 20 00 20 20 20

a U+0061 61 00 61 61 61

ä U+00E4 C3 A4 00 E4 E4 -

Page 20: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

• XML

• Java

• .NET

Page 21: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XML

• XML = SGML – ballast + Unicode– Een XML document is een boom– Een root node– Attributen, elementen, tekst

Page 22: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Page 23: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Documenten

• opmaak

• kleur

• plaatjes in de tekst

• vetgedrukte en schuingedrukte tekst

• titel / paragraaf / lijst

Page 24: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

wo do vr za zo

Zonneschijn (%) 20 40 50 40 40

Neerslagkans (%) 20 10 10 10 20

Neerslaghoeveelheid (mm) 2 0 0 0 0-1

Minimumtemperatuur (°C) 15 9/11 8/11 9/11 9/11

Middagtemperatuur (°C) 18 16/19 17/20 17/20 16/19

Windrichting W NW W W W

Windkracht (bft) 4 3 3 2 3

Page 25: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

• tabellen, rijen, kolommen

• cijfers

• korte teksten

• datatypes: %, mm, °C, bft

• datatypes en structuur van een XML document vastleggen in een schema

Data

Page 26: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Document Object Model (DOM)

• XML document wordt ingeladen in een object– de ‘DOM tree’

• methoden– getElementsByTagName(...)– getAttribute(...)– createElement(...)

• dezelfde methoden in iedere taal: Java, C, .NET...

Page 27: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Namespaces

• een document kan meerdere vocabulaires herbergen

• wat is dan de betekenis van <name>, <id>...

• namespace voorbeelden: • <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">• <schema xmlns="http://www.w3.org/2001/XMLSchema">• <element name="purchaseOrder" type="po:PurchaseOrderType"/>• <faultcode>SOAP-ENV:MustUnderstand</faultcode>

Page 28: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Pro XML

• combineert documenten met data

• software breed beschikbaar

• geen problemen met– encoding– regeleinden– afspraken

Page 29: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Contra XML

• overhead door start- en eindtags• DOM is complex• DOM sluit niet goed aan op programmeertalen• Namespaces zijn complex• Redundantie• <mdg:auteur naam="Marc"

xmlns:mdg="http://www.marcdegraauw.com/voorbeeld/"/>• <auteur xmlns="http://www.marcdegraauw.com/voorbeeld/"

naam="Marc"></auteur>

Page 30: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XPath en XSLT

Page 31: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XPath

• XPath: taal om nodes uit de boom te trekken

/ document root

/book alle <book> elementen onder root

/book[@id] alle <book> elementen onder root

met een ‘id’ attribuut

Page 32: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XSLT stylesheet

XML bronbestand XML resultaat

Page 33: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XSLT

• demo (stylesheet – bron – resultaat)

• voordelen– snel– veel implementaties op veel platforms

• nadelen– verbose– namespaces zijn foutgevoelig

Page 34: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Schematalen

Page 35: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Schematalen

• 1998: XML, DOM, XPath• 1999: Namespaces, XSLT• 2001: XML Schema• W3C versus ISO• 1999: Schematron• 2001: RelaxNG• 2003: ISO RelaxNG• 2006: ISO Schematron• demo L1, L2

Page 36: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

RelaxNG

Page 37: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XML Schema

ongeldige constructie!

ongeldige constructie!

Page 38: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Schematron

• rules

• in XML

• alleen een XSLT processor nodig

Schematronregels voorproject X

Stylesheetvoor project X

Rapport XMLbestandproject X

XMLbestandproject X

Schematronstylesheet(s)

Page 39: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Schematron

Page 40: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Schema pro en con

• Schema’s– zonder schema: eindeloze discussies

• XML Schema– is complex– kan veel simpele constraints niet uitdrukken– is overal aanwezig, m.n. in Microsoft en Web Services

• RelaxNG– simpeler– minder software

• Schematron– regelgebaseerd– XSLT processor is de hele toolkit

Page 41: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

JSON en Ajax

Page 42: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

JSON

• JavaScript Object Notation• compact• sluit goed aan op programmeertalen• geen schemataal• altijd Unicode; voorkeur UTF-8

Page 43: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

ServerBrowser

HTTP 200 OK + pagina

HTTP GET

HTML

HTTP 200 OK + pagina

HTTP GET

Page 44: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

XML

ServerBrowser

HTTP 200 OK + pagina

HTTP GET

XMLHttpRequest

HTTP 200 OK + pagina

HTTP GET

XMLHttpRequest

Page 45: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

AJAX

• Asynchronous JavaScript and XML– XMLHttpRequest– ‘XML’ is hier vaak JSON!– pulldowns, refresh, drag & drop– Javascript libraries– Prototype, jQuery e.v.a.

• AJAX– volledige applicatie in de browser– ASP

Page 46: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Web Services

Page 47: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Web Services basis

• XML voor de gegevens

• Schema voor– contract– design– codegeneratie– validatie

• Transport: SOAP en HTTP

• Servicebeschrijving: WSDL

Page 48: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Web Services stack (WS-*)

• Security– XML Signature, XML Encryption– XML Canonicalization (2x)– WS-Security, WS-SecureConversation, WS-Trust

• Transport– WS-Addressing– WS-ReliableMessaging– MTOM

• Metadata– WS-Policy

• Totaal: complex!

Page 49: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Waarom XML?

• XML als documentformaat– uitgevers: het werkt– SGML is grotendeels vervangen

• XML voor gegevensuitwisseling– veelgebruikt: EDI en CSV zijn geen alternatief– Web Services: complex...

• XML voor het Web– grotendeels mislukt– JSON vult een deel van deze niche

Page 50: Marc de Graauw  XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009

Marc de Graauwhttp://www.marcdegraauw.com/

Vragen?