Marc de Graauw XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Innovation DevDay 2009
Marc de Graauw 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
Marc de Graauw 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?
Marc de Graauw 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’)
Marc de Graauw XML en Unicode
Marc de Graauw HTML - een voorbeeld Marc de Graauw Marc de Graauw Geslacht: Man Opleidingen VWO kandidaats Biologie doctoraal filosofie
Marc de Graauw XML - een voorbeeld Graauw de Marc VWO kandidaats Biologie doctoraal filosofie
Marc de Graauw 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 bytes dec bytes hex6d asciimarc
Marc de Graauw Vóór Unicode ASCII DEC Multi- national Character Set code page 850 code page 473 bytes bytes Engels, meeste Frans, Duits IBM PC ISO-Latin + œ, € ISO-Latin + ‘IJ’sland + ‘œ’uf ISO (ISO-Latin) West- Europees ISO Windows 1252 West Europees + Á ß Shift- JIS Japans EBCDIC IBM mainframe etc. etc. etc....
Marc de Graauw Vóór Unicode CP 437 CP 850 Windows 1252 ISO- Latin-1 ISO- Latin-15 Unicode a áa0 e1 00e1 ä84 e4 00e4 €--80-a420ac õ-e4f5 00f5 Ç 80 c7 00c7 œ--9c-bd0153
Marc de Graauw Unicode code point U+006D karakter LATIN SMALL LETTER M (de letter ‘m’) glyph m m m m m
Marc de Graauw
Marc de Graauw
Marc de Graauw
Marc de Graauw
Marc de Graauw
Marc de Graauw Tengwar – Tolkien - niet officieel (private use range)
Marc de Graauw Unicode encodings Unicode –U+006D = ‘m’ –karakter 0 – 255: gelijk aan ISO-Latin-1 – 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
Marc de Graauw Unicode encodings tekencode point UTF-8UTF-16ISO- Latin-1 ASCII spatieU aU äU+00E4C3 A400 E4E4-
Marc de Graauw XML Java.NET
Marc de Graauw XML XML = SGML – ballast + Unicode –Een XML document is een boom –Een root node –Attributen, elementen, tekst
Marc de Graauw
Marc de Graauw Documenten opmaak kleur plaatjes in de tekst vetgedrukte en schuingedrukte tekst titel / paragraaf / lijst
Marc de Graauw wodovrzazo Zonneschijn (%) Neerslagkans (%) Neerslaghoeveelheid (mm) Minimumtemperatuur (°C)159/118/119/11 Middagtemperatuur (°C)1816/1917/20 16/19 WindrichtingWNWWWW Windkracht (bft)43323
Marc de Graauw tabellen, rijen, kolommen cijfers korte teksten datatypes: %, mm, °C, bft datatypes en structuur van een XML document vastleggen in een schema Data
Marc de Graauw 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...
Marc de Graauw Namespaces een document kan meerdere vocabulaires herbergen wat is dan de betekenis van,... namespace voorbeelden: SOAP-ENV:MustUnderstand
Marc de Graauw Pro XML combineert documenten met data software breed beschikbaar geen problemen met –encoding –regeleinden –afspraken
Marc de Graauw Contra XML overhead door start- en eindtags DOM is complex DOM sluit niet goed aan op programmeertalen Namespaces zijn complex Redundantie
Marc de Graauw XPath en XSLT
Marc de Graauw XPath XPath: taal om nodes uit de boom te trekken /document root /bookalle elementen onder root elementen onder root met een ‘id’ attribuut
Marc de Graauw XSLT stylesheet XML bronbestandXML resultaat
Marc de Graauw XSLT demo (stylesheet – bron – resultaat) voordelen –snel –veel implementaties op veel platforms nadelen –verbose –namespaces zijn foutgevoelig
Marc de Graauw Schematalen
Marc de Graauw 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
Marc de Graauw RelaxNG
Marc de Graauw XML Schema ongeldige constructie!
Marc de Graauw Schematron rules in XML alleen een XSLT processor nodig Schematron regels voor project X Stylesheet voor project X Rapport XML bestand project X XML bestand project X Schematron stylesheet(s)
Marc de Graauw Schematron
Marc de Graauw 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
Marc de Graauw JSON en Ajax
Marc de Graauw JSON JavaScript Object Notation compact sluit goed aan op programmeertalen geen schemataal altijd Unicode; voorkeur UTF-8
Marc de Graauw Server Browser HTTP 200 OK + pagina HTTP GET HTML HTTP 200 OK + pagina HTTP GET
Marc de Graauw XML Server Browser HTTP 200 OK + pagina HTTP GET XMLHttpRequest HTTP 200 OK + pagina HTTP GET XMLHttpRequest
Marc de Graauw 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
Marc de Graauw Web Services
Marc de Graauw Web Services basis XML voor de gegevens Schema voor –contract –design –codegeneratie –validatie Transport: SOAP en HTTP Servicebeschrijving: WSDL
Marc de Graauw 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!
Marc de Graauw 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
Marc de Graauw Vragen?