Leukere documenten dankzij DTD en schema Diederik Gerth van Wijk XML Holland 2005 Papendal, 23 november.

Slides:



Advertisements
Verwante presentaties
HET CSE NEDERLANDS. Je spreekt toch al jaren
Advertisements

Het doen van eigen onderzoek
Sudoku puzzels: hoe los je ze op en hoe maak je ze?
SQL deel 2: datamodel ontwerp
Les 2 Vandaag •Vragen over voorgaande stof •Plaatjes •Tabellen •Links •Huiswerk.
Mijn gegevens op het web!?
Aandachtspunten voor een jeugdtraining
E-RADEN Roadmap. AGENDA • Overzicht van nieuwe ontwikkelingen 2009 • Interfaces • Document Types : Meta-data • E-raden gratis ? • Perspectieven.
Leesvaardigheid (ook te vinden op LaPlaza)
Veilig Internet Geef antwoord op de vragen en ontdek of jij veilig gebruik maakt van het internet!
Databases via internet
(c) Marc de Graauw Presentatie XML Marc de Graauw 2 maart 2000.
Metadata proces april 2009 train de trainers. Waar in het werkproces metadata Binnen de organisatie zal afgesproken moeten worden van welke data er metadata.
Duidelijk schrijven voor iedereen
HTML Les 1: Introductie HTML
WordPress les 3.
Crashcursus HTML en CSS 2013
How to tackle a text Vakgroep Engels.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
In stappen naar de innerlijke structuur
EXtensible Markup Language Theorie 1 © Jan De Cooman
Webmaster Training: CSS CSS2 & XHTML By Frederik Van Outryve.
1 OMI XML schema’s. 2 XML schema - betekenissen 1. eng : W3C XML schema 2. ruim : DTD en W3C schema Literatuur: Bradley, ch. 14 (& 15)
1 OMI Technisch ontwerp. 2 Technisch ontwerp ‘content’ Veel breder dan business portals (Carlson) Verschillende aspecten / aandachtspunten:
Joost van Dijk Web Technology
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
Webtechnologie 1 labo Dieter Roobrouck Kristel Balcaen Claudia Eeckhout Koen De Weggheleire Frederik Duchi An Deraedt 1 Les 10: XML basics.
Les 12: DTD.
MET DANK AAN COLLEGA’S IN DEN LANDE ! vee 2012
26 mei  Wie ben je?  Verwachtingen? Wettelijk Meerwaarde Valkuilen NODEN – VRAGEN?
Stappenplan Samenvatten
De dag van het solliciteren Blok 1
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Werkstukken en rapporten
Samenvatten.
Samenvatten Klas 4A de Foorakker.
HTML De basis-elementen.
1 XSLT processing & control Datamodellering 2006.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Altijd online!.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Torens van Hanoi ● Uitgevonden door Franse Wiskundige Edouard Lucas in ● Beschreven in zijn wiskundig “spelletjesboek” Récréations Mathématiques.
Hogeschool van Amsterdam - Interactieve Media – Internet Development – Jochem Meuwese - -
Training Webrichtlijnen Maar moet je je als webredacteur aan houden?
Java Objectgeoriënteerd Programmeren in Java met BlueJ
Docentinstructie: Het is aan te bevelen de eerste dia’s klassikaal te tonen en met uitleg te bespreken. Als na zes dia’s een korte demo van Celsius/Fahrenheit.
Java Objectgeoriënteerd Programmeren in Java met BlueJ Hoofdstuk 8: Gebruikersinterface © 2014, Gertjan Laan, versie 2.
Let’s go! ›Beginnerspresentatie ›Starten met prospero ›Verschil CMS en web navigator ›Nieuwe content > nieuwe folder aanmaken ›Bestanden uploaden ›Linkobject.
Analyse 3 INFANL01-3 week 2 CMI Informatica.
ANALYSE 3 INFANL01-3 WEEK CMI Informatica.
Een enquête maken met Google Docs Je gaat leren hoe je een enquête kunt maken in Google Docs met een Formulier. De link kun je vespreiden zodat de vragenlijst.
8 Samengestelde Redeneringen identificeren
Les 4 havo Leesvaardigheistraining;
Meest voorkomende vragen bij examenteksten.
1. Wat gaan we vandaag doen ?
Meest voorkomende vragen bij examenteksten.
Direct Realisatie Les 3 HTML en CSS in s Direct Realisatie Les 3.
E-Boeken van binnen Of wat zit er in een epub
Het postkantoor van windows
Digi(bord)boek project <titel project>
DRIE pilaren van Een gebruikersgerichte website
Transcript van de presentatie:

Leukere documenten dankzij DTD en schema Diederik Gerth van Wijk XML Holland 2005 Papendal, 23 november

CountryDiederik Gerth van Wijk2 Leukere documenten dankzij DTD en schema Wat maakt een document leuk? Wat zijn schema’s? Wie gebruikt schema’s? Wat voor soorten schema’s zijn er? Hoe maak je een schema? Moet je zelf wel een schema maken? Hoe beheer je schema’s? The DTD to end all DTDs

CountryDiederik Gerth van Wijk3 Wat maakt een document leuk? Een leuk document is —leuk om te schrijven —leuk om te lezen “leuk” = “goedkoop”, “gemakkelijk”, “correct”, “consequent”, “voorspelbaar”, “informatief” Schrijven / Lezen: —Een database die moet uitwisselen met een andere database —Een programma dat een verslag maakt / een mens die de fouten leest, een programma dat statistieken bijwerkt —Een auteur die in Word® een document tikt / een mens die PDF leest —Een auteur die in XMetal een XML-document tikt / een mens die een site leest —Een conversie- of transformatieprogramma (leest en schrijft) XML-documenten zijn er om automatisch verwerkt te worden Markup zonder processing is waardeloos

CountryDiederik Gerth van Wijk4 Een voorbeeld Zin Het is verbazend hoe moeilijk het is een voorbeeld te vinden van een tijdschrift waarvan de artikelen alleen uit alinea’s bestaan, zonder paragrafen dus. Vandaar dat ik nu een verzonnen voorbeeld moet tikken, dat u dan ook niet op vindt. Artikel Titel Alinea nadruk href

CountryDiederik Gerth van Wijk5 Voorbeeld (2) Zin Het is verbazend hoe moeilijk het is een voorbeeld te vinden van een tijdschrift waarvan de artikelen alleen uit alinea’s bestaan, zonder paragrafen dus. Vandaar dat ik nu een verzonnen voorbeeld moet tikken, dat u dan ook niet op vindt.

CountryDiederik Gerth van Wijk6 Wat zijn schema’s? Een schema beschrijft waar documenten van een bepaald type aan moeten voldoen Hulpmiddel om leuke documenten van nare te scheiden (valideren, parseren, redigeren) Voegt informatie over het document toe die niet in het document staat of zelfs kan staan Een goed schema heeft een formeel deel, voor machinale validatie Een goed schema heeft een informeel deel, voor mensen! De verzameling valide documenten wordt bepaald door wat verwerkt kan worden De verzameling valide documenten volgens het informele deel is een piepkleine deelverzameling van de verzameling valide documenten volgens het formele deel!

CountryDiederik Gerth van Wijk7 Wie gebruikt schema’s? De redacteur die een auteur moet instrueren De beheerder die een XML-editor moet inrichten Die XML-editor De programmeur die een conversiescript van RTF naar XML schrijft De zetter die een PDF moet maken van XML De webmaster die een site moet vullen De parser die een PSVI op moet leveren voor XPath 2.0 / XSLT 2.0

CountryDiederik Gerth van Wijk8 Een PSVI??????? Post Schema Validation Infoset Vertelt van attributen en eenvoudige elementen wat hun datatype is 3e2 < 4 Vertelt van attributen en elementen van welk type (class) ze zijn En XSLT 2.0 en XPath 2.0 kunnen daar dan wat mee

CountryDiederik Gerth van Wijk9 Van tikken of database via XML naar PDF, web, database

CountryDiederik Gerth van Wijk10 Wat staat er in een schema? Een lijst van benoemde elementen en attributen Datatypen en andere aanwijzingen over de semantiek Verplicht, een of meer keer Binnen welke elementen In welke volgorde Extra restricties (bijv. elke rij even veel kolommen) Omschrijving van gedacht gebruik: —“De van kort samen waar zijn moeder-element over gaat, op een manier die ook buiten zijn context, bijvoorbeeld in een inhoudsopgave of een hitlist begrijpelijk is.” —“Omdat een titel hergebruikt moet kunnen worden in een contekst waar tabellen en voetnoten niet op de normale wijze verwerkt kunnen worden, worden deze ontraden in een titel.” —“Een titel is herkenbaar door korps, lettertype en/of zwaarte”

CountryDiederik Gerth van Wijk11 Wat voor soorten schema’s zijn er? SGML DTD: XML DTD: XML Schema: Relax NG: element artikel { titel, alinea+ } Schematron Examplotron XSLT CSS FOSI

CountryDiederik Gerth van Wijk12 DTD’s Standaard in SGML en XML “meegebakken” SGML kent meer (maar irrelevante) datatypen en opties dan XML In SGML kan de volgorde van verplichte elementen willekeurig zijn, in XML-DTD’s niet (andere schematalen wel) Document kan zelf de DTD aanpassen via parameter-entiteiten DTD kan algemene (en in SGML ook systeem-)entiteiten specificeren DTD kan verstekwaarden van attributen bepalen Eigen notatie, die van documenten afwijkt Uit document-wereld: —mixed content belangrijk —data in elementen bestemd voor mensen —data in attributen bestemd voor machines (metadata)

CountryDiederik Gerth van Wijk13 Voorbeeld DTD <!-- typische aanroep: -->

CountryDiederik Gerth van Wijk14 W3C XML Schema Vanuit datawereld Nadruk op eenvoudige attributen en elementen, niet op mixed content Veel ingebouwde datatypes (deel 2) Mogelijkheid voor ontwikkelen nieuwe datatypes Objectgeöriënteerd Elementen en attributen kunnen van bepaald type zijn XPath 2.0 en XSLT 2.0 kunnen op dat type werken Types zitten alleen in het schema, niet in het document Aanval op well formed documenten die stand alone verwerkbaar zijn

CountryDiederik Gerth van Wijk15 Voorbeeld W3C XML Schema (1)

CountryDiederik Gerth van Wijk16 Voorbeeld W3C XML Schema (2)

CountryDiederik Gerth van Wijk17 Relax NG Relax + Trex = Relax NG Op reguliere expressies (patronen) gebaseerd Zelfde, zo niet meer zeggingskracht als XML Schema Types heten nu “patronen” Twee notaties: —Voluit —Compact Gebruikt Datatypen van W3C XML Schema (deel 2)

CountryDiederik Gerth van Wijk18 Voorbeeld Relax NG XML-notatie (1)

CountryDiederik Gerth van Wijk19 Voorbeeld Relax NG XML-notatie (2)

CountryDiederik Gerth van Wijk20 Voorbeeld Relax NG Compacte notatie # artikel1.rnc, Relax NG schema voor artikelen # (c) copyright 2005 Diederik Gerth van Wijk # versie 1.0, # verwijzingen mogen geen verwijzingen bevatten, wel nadruk etc lopendetekstzondervw = text | nadruk verwijzingen = href lopendetekst = lopendetekstzondervw | verwijzingen bloktekst = lopendetekst URItype = string artikel = element artikel { titel, alinea+ } titel = element titel { lopendetekst* } alinea = element alinea { bloktekst* } nadruk = element nadruk {lopendetekst* } href = element href { attlist.href, lopendetekstzondervw* } attlist.href &= attribute uri { URItype } start = artikel

CountryDiederik Gerth van Wijk21 Hoe maak je een schema? Documentanalyse is data-analyse: 1-op-n, n-op-n relaties Praat met gebruikers Stel de granulariteit vast: de kleinste dingen die een effect moeten hebben Vind uit hoe die genoemd worden, of iedereen ze zo noemt Verplicht wat nodig is Maar niet wat onmogelijk is Verbied alleen wat fataal is Bedenk dat voor elke stap in het proces een ander schema handiger kan zijn: speel met content models, pas content model algebra toe Documenteer Markeer alleen wat verwerkt kan worden!

CountryDiederik Gerth van Wijk22 Hoe maak je een schema (2) Maak voorbeelddocumenten Maak stijlbladen om die te kunnen verwerken Genereer aan de hand van de voorbeelden een schema en pas dat aan Wees niet te strak, want dan moet je te vaak verruimen Generaliseer: of je nu veel of heel veel te ruim bent is niet relevant Wees consequent: —als a in x optioneel is, waarom niet in y ook? —als a in x voor b komt en in y erna, is dat dan echt de bedoeling? De volgordeparadox: —Als de volgorde niet belangrijk is, kan hij beter vast zijn —Als de volgorde belangrijk is, moet hij vrij zijn —Als de volgorde echt belangrijk is: moet er dan niet een doosje rond?

CountryDiederik Gerth van Wijk23 Hoe maak je een schema (3) Je codeert om te verwerken Maar documenten worden hergebruikt, en bij elk gebruik kan een andere verwerking nodig zijn Dus je codeert geen verwerkingsinstructies, maar inhoud: Vorm is een functie van inhoud en stijlblad Maar het is een illusie dat je codeert wat “is” Je codeert geen volzinnen, tenzij je een taalkundige applicatie wilt maken; je codeert alinea’s, omdat het enige dat je wilt een nieuwe regel is “U dacht”, schreef hij smalend, “dat een volzin altijd in een XML-boom te vangen was?”.

CountryDiederik Gerth van Wijk24 Hoe maak je een schema (4) Tel als een kind: 0, 1, veel: (titel, auteur*, alinea+) (titel, (auteur, (auteur, auteur?)?)?, alinea, alinea+) Herhaalbare of optionele sequentie is slecht teken: (titel, ((alinea+) | (auteur+, ((alinea+, paragraaf*) | paragraaf+)))) (term, definitie)+ maak twee elementen, of geef die groep een naam! Vermijd dat een kind meer dan eens genoemd wordt

CountryDiederik Gerth van Wijk25 Moet je zelf wel een schema maken? Voor uitwisseling van data: alleen als je een consortium bent Voor opslag van documenten: niet als die 13 in een dozijn zijn Maar als ze een USP vormen, met jouw extra slimme dingen: ja Maar: —Baseer je op bestaande schema’s: XHTML, DocBook, TEI, ISO 12083, AAP, CALS, Ditta —Laat weg wat voor jou irrelevant is —Vertaal eventueel 1-op-1 naar Nederlands —Al was het maar de documentatie —Voeg toe wat voor jou nodig is —Pas de convertors, editor, transformaties naar HTML en PDF aan

CountryDiederik Gerth van Wijk26 Hoe beheer je schema’s? Markeer wat je kunt verwerken Beschrijf van elk element wat de betekenis is, welke klasse het is, of het typisch verplicht is, en herhaalbaar, wat het typische gedrag is, zijn content Beschrijf van elke klasse of zijn leden in een volgorde staan, of vrije volgorde hebben, wat de typische content is Bepaal of je in- en uitschakelbare opties wilt, en welke Zet je schakelaars Genereer aan de hand daarvan je schema’s, CSS, FOSI’s, xslt-scripts Als de verzameling valide documenten volgens het nieuwe schema een deelverzameling van de oude is, is dat een verstrakking Verstrakkingen: naar voor bestaande content, soms voor applicaties Verruimingen: oude content mogelijk inconsistent, applicaties aanpassen

CountryDiederik Gerth van Wijk27 Bottom Up Constraint Language (vapourware!)

CountryDiederik Gerth van Wijk28 The DTD to end all DTDs <!DOCTYPE ding [ <!ATTLISTding aard (element | attribuut | pi | commentaar | entiteit | CDsectie) element naam CDATA #IMPLIED> ]> Zin Het is verbazend hoe moeilijk het is een voorbeeld te vinden van een tijdschrift waarvan de artikelen alleen uit alinea’s bestaan, zonder paragrafen dus. Vandaar dat ik nu een verzonnen voorbeeld moet tikken, dat u dan ook niet op vindt.

CountryDiederik Gerth van Wijk29 Was dat een grapje? Nee: naar en van die DTD is elk XML-document zonder verlies van informatie volautomatisch te verwerken Toch voel je aan je water dat het niet lekker werkt Want het gebruikt XML niet op de manier waarop het bedoeld is: —Voor mensen leesbare tekst als data in inhoudelijk benoemde elementen —Metadata in attributen Maar is een rode auto een of een ? Of een ? Of ? Stijlbladen en editors zijn makkelijker op elementen dan op attributen in te richten

CountryDiederik Gerth van Wijk30 Praktijkvoorbeelden Tabellen Voetnoten Opsommingen Naam

CountryDiederik Gerth van Wijk31 Vragen? Stel ze nu of mail En lees ook: — (XML DTD, XML Schema) — (Relax NG, Schematron, SGML DTD) — (Relax NG, CALS tables, DocBook, DITA) —Eric van der Vlist, Relax NG, O’Reilly —Eric van der Vlist, XML Schema, O’Reilly —Norman Walsh & Leonard Muellner, DocBook, O’Reilly —Maler & El Andaloussi, Developing SGML DTD’s, Prentice Hall —David Megginson, Structuring XML Documents, Prentice Hall