Wat is er mis met XML?
|
|
|
- Pieter-Jan Wouters
- 10 jaren geleden
- Aantal bezoeken:
Transcriptie
1 Wat is er mis met XML? Marc de Graauw eerder gepubliceerd in <!ELEMENT Jaargang 14, nummer 2, juli 2008 Was XML maar dood. Dan hadden we de kans gehad iets beters ervoor in de plaats te creëren. Helaas is XML inmiddels diep verweven in de hele ICT wereld, en moeten we allemaal leven met de diepbedroevende reeks fouten en blunders die in de familie van XML specificaties zitten. Han Schouten is zo vriendelijk geweest mijn bescheiden verslag van het XML 2007 congres getiteld "XML is dood" 1. te bespreken. Han concludeert "Marc lijkt met het badwater ook het kindje te willen wegspoelen". Op een punt snijdt de kritiek van Han echter wel degelijk hout: "Marc... beweert dingen die hij op geen enkele wijze onderbouwt" en "Marc citeert vooral anderen...". (Het was ook een congresverslag, toch?) Er volgt ook een uitdaging: "Tenzij je een hekel hebt aan punthaakjes, is er in feite niets mis met XML", "misschien is XML gewoon wel grotendeels af" en "Geef mij een concreet voorbeeld!". Vooruit. Daar gaan we. Wat is er mis met XML? 1. XML De "kale" XML 1.0 specificatie zelf is heel redelijk "mostly harmless", zouden we kunnen zeggen. Toch kunnen heel basale dingen niet met XML: XML in XML inpakken en binaire data in XML inpakken. Als we dat toch proberen, lopen we het risico dat het zaakje in elkaar stort door conflicterende encodings, ongeldige tekens, dubbele XML declarations of dubbele ID's. Dat dwingt ons om wanneer we iets willen doen wat kinderlijk eenvoudig zou moeten zijn: een plaatje of een XML document in een XML document stoppen we gedwongen worden een inefficiënte (converteren naar Base64), krakkemikkige (Soap With Attachments) of complexe (MTOM) oplossing te gebruiken. XML is hier dus veel te simpel. 2. Zoek de Namespace Bij de volgende spec Namespaces wordt het erger. Namespaces zijn in theorie optioneel, in de praktijk niet. Wellicht als je XML alleen in de eigen keuken gebruikt, met zelfgebakken schema's en eigenbereide stylesheets, dat je ervoor kunt kiezen Namespaces links te laten liggen. Wanneer je zoals ik in een serieuze omgeving werkt waar gegevens uitgewisseld worden tussen verschillende organisaties, en je niet alle wielen zelf opnieuw uit gaat vinden, maar aansluit bij bestaande vocabulaires als UBL 2 (zaken) of HL7v3 3 (gezondheidszorg), zijn Namespaces helaas een noodzakelijk kwaad. Ik moet er niet aan denken hoeveel vocabulaires niet <name> of <id> definiëren, en zou niet weten hoe dit zonder Namespaces op te lossen. Namespaces dus. Namespaces zijn werkelijk een van de slechtst mogelijke specs die de XML familie kent. Na 10 jaar is de XML gemeenschap er nog steeds niet uit of de URI die een Namespace definieert naar een resource moet wijzen (b.v. een Schema of RDF bestand, of een HTML pagina) die iets zinnigs over die Namespace zegt of niet. Verwarring alom bij de (nieuwe) gebruiker, iedereen associeert een URI immers met een webpagina. Na deze hobbel is er de verkorte notatie prefix van een Namespace. Er is nooit een poging gedaan deze te registreren, zoals bijvoorbeeld Media Types. Gevolg: de prefix van XML Schema kan (en deze komen allemaal regelmatig voor) xs: zijn, of xsd:, of wxs: of zelfs iets zelfbedachts als kul:, en erger, we kunnen prima xs: gebruiken als prefix voor XSLT elementen. Iedere programmeur kan dus niets zinnigs zeggen over een element, zonder eerst de prefix op te zoeken bij de namespace declaratie, daar de hele betreffende URI te lezen (wie weet de URI van XML Schema uit het hoofd?) en te kijken of het nu écht XML Schema is waar het over gaat. 1 <!ELEMENT, Jaargang 14, nummer 1, april
2 "Tim and I were both on the old W3C XML Working Group that designed the Namespaces spec -- in retrospect, we got too far in front of implementors' requirements and delivered a spec to solve problems someone might have some day in the future, instead of problems people actually had at the time." 4 David Megginson Alsof deze mess nog niet erg genoeg is, is het mogelijk namespaces overal in een document te declareren. Zeker als een default Namespace gebruikt wordt (dus een Namespace zonder prefix) is het zoeken naar een Namespace-declaratie in een hooiberg. En zeg eens eerlijk wie weet nu op het eerste gezicht of een attribuut in een Namespace valt of niet? Ooit een XPath of XSLT fragment ingetikt, nul nodes als resultaat gekregen en na heel lang zoeken er achter gekomen dat er ergens een namespace te weinig of verkeerd gedeclareerd stond? Sommigen zullen zonder twijfel van mening zijn dat dit weliswaar allemaal kan, maar dat dit het resultaat is van een slecht documentontwerp, en dat bij een goed ontwerp prima in orde is. Een goede spec nodigt ons uit om de dingen op een heldere, leesbare wijze op te zetten. Namespaces nodigt ons uit er een zooitje van te maken, en is dus geen goede spec. Het wordt echter nog erger. Kijk naar het volgende fragment: <myns:greeting>hello world</myns:greeting> Prima. Dat hebben we dus nodig. Als "myns" goed gedeclareerd is, niets mis mee. Maar nu het volgende: <element name="purchaseorder" type="po:purchaseordertype"/> Iedere programmeur, ongeacht welke achtergrond, heeft bij de tekst "po:purchaseordertype" 5 dezelfde intuïtie: Ha! Dit staat tussen aanhalingstekens! Het is een literal ik, als programmeur, hoef me niet te bemoeien met de inhoud hiervan. Helaas niet zo bij namespaces. Tegen alle conventies in is wat er tussen aanhalingstekens staat, significant. Het kan nog erger 6 : <faultcode>soap-env:mustunderstand</faultcode> Jawel, de inhoud van een element is gekwalificeerd met een namespace! Hoe moet je dan weten of "SOAP-ENV" deel is van de platte tekst die men over wil brengen, of dat het een Namespace prefix is, en geen deel van de tekst? Mag "SOAP-ENV" dan dus niet in de tekst voorkomen? Antwoord: dat kun je niet weten. Giswerk. En dat alleen omdat de Namespace spec onvoldoende duidelijk is over wat nu precies wel en niet met een Namespace gekwalificeerd kan worden. 3. Schema? What Schema! Laten we Namespaces maar even rusten. Verder met XML Schema. Kijk eens naar het volgende fragment, in RelaxNG Compact Notation: element addressbook { element card { attribute contact_type { "business" "personal" }, ( ( element name { text }, element { text } ) 4 5 XML Schema Part 0: Primer, 6 Simple Object Access Protocol (SOAP) 1.1,
3 } }* ( element name { text }, element phone { text } ) ), element adres { text }?, element * { text }? Glashelder, niet? Een adreskaart bevat een contacttype, een naam en een adres of telefoonnummer, optioneel een adres, en mogelijk extra elementen. In XML Schema wordt exact ditzelfde fragment: <?xml version="1.0" encoding="utf-8"?> <xs:schema xmlns:xs=" elementformdefault="qualified"> <xs:element name="addressbook"> <xs:complextype> <xs:element minoccurs="0" maxoccurs="unbounded" name="card"> <xs:complextype> <xs:choice> <xs:element name="name" type="xs:string"/> <xs:element name=" " type="xs:string"/> <xs:element name="name" type="xs:string"/> <xs:element name="phone" type="xs:string"/> </xs:choice> <xs:element minoccurs="0" name="adres" type="xs:string"/> <xs:any processcontents="skip"/> <xs:attribute name="contact_type" use="required"> <xs:simpletype> <xs:restriction base="xs:token"> <xs:enumeration value="business"/> <xs:enumeration value="personal"/> </xs:restriction> </xs:simpletype> </xs:attribute> </xs:complextype> </xs:element> </xs:complextype> </xs:element> </xs:schema> U ziet het goed. Zelfs een eenvoudig schemaatje wordt een enorme lap tekst. Deze is wellicht nog te overzien: maar echte Schema's bijvoorbeeld die uit de eerder genoemde UBL of HL7v3 zijn alleen voor de echte ingewijde leesbaar zonder speciale tooling. Daar gaat dus het uniforme kennismodelleringsinstrument: in plaats van een leesbaar Schema zijn we weer afhankelijk van een tool. "...it s time to stop sweeping it under the rug. W3C XML Schemas (XSD) suck. They are hard to read, hard to write, hard to understand, have interoperability problems, and are unable to describe lots of things you want to do all the time in XML." 7 7
4 Tim Bray Maar het wordt erger: het bovenstaande XML Schema fragment mag helemaal niet. Een simpele constructie als: een adreskaart bevat naam en , of naam en telefoonnummer kan helemaal niet in XML Schema uitgedrukt worden! (Je kunt schrijven: naam en ( of telefoonnummer), maar dat werkt niet meer bij langere constructies). Dit is geen theoretische beperking: bij een poging een XML Schema te maken voor een klant die een XML-formaat gebruikte dat stamde van voor de tijd van XML Schema, bleek dit bestaande XML formaat helemaal niet in XML Schema uit te drukken te zijn! Ook de laatste constructie in het voorbeeld: na het adres mogen andere, niet nader gedefinieerde elementen (<xs:any>) volgen, is illegaal! Omdat het adres optioneel is, "weet" XML Schema niet meer of een adres in een document het "adres" is, of een deel van de onbekende content! Deze gevreesde regel, de "Unique Particle Attribution" heeft er toe geleid dat bij het eerder genoemde UBL voorstellen om voorwaartse compatibiliteit van berichten te ondersteunen met XML Schema zijn verlaten. Nu volgt UBL de veel eenvoudigere lijn van ondersteuning hiervan met XSLT. Tenslotte zijn er nog de "cooccurrence constraints": een eenvoudige regel als "het contact_type 'business' is, moet het adres gevuld zijn" is helemaal niet uit te drukken in XML Schema. En denk niet dat het alleen de critici van XML Schema zijn die dit als feilen beschouwen: in XML Schema 1.1 worden precies deze zaken veranderd. Aangezien XML Schema 1.1 nog volop in ontwikkeling is mogen we alleen maar hopen dat dit soort essentiële feilen nog binnen 10 jaar na het verschijnen van XML Schema 1.0 daadwerkelijk gerepareerd zijn... Er zijn uiteraard alternatieven: RelaxNG 8 (een ISO standaard) en Schematron 9 (dito). Jammer genoeg werken de meeste tools, bijvoorbeeld die van Microsoft, en de Web Services specificaties nagenoeg exclusief met XML Schema. Hinken op krukken, dus. 4. Wilt u hier maar even tekenen?... Maar weer even terug naar XML zelf? Een van de basale problemen met XML is natuurlijk de mogelijkheid een stukje tekst op te slaan in een attribuut of een element: <auteur> <naam>marc</naam> </auteur> <auteur naam="marc"/> Met de energie die het XML-wijze deel van de wereld al gestoken heeft in de discussie welke van de twee bovenstaande voorbeelden "beter" is hadden we heel wat ernstigere problemen op kunnen lossen. Maar het probleem is niet alleen elementen-versus-attributen. XML zit propvol met dergelijke redundante, overbodige verdubbelingen. Kijk eens naar: <mdg:auteur naam="marc" xmlns:mdg=" versus: <auteur xmlns=" naam="marc"></auteur> Volgens de XML theorie zijn deze twee regels volkomen gelijk. De expliciete eind-tag is gelijk aan de impliciete, de volgorde van attributen is niet significant in XML en een default namespace heeft
5 hetzelfde effect als een met prefixes gedeclareerde. Prima toch? Vrijheid, blijheid, iedereen mag doen wat 'ie wil, en het is toch precies hetzelfde? Jazeker, totdat je het document wilt voorzien van een digitale handtekening. De eerste string octets is heel anders dan de tweede. Wanneer je dus het eerste voorbeeld tekent, met de handtekening naar een ontvanger stuurt, wiens XML programmatuur er vrolijk het tweede van maakt (dat mag ook, volgens de XML theorie) is de handtekening niet meer geldig. "XML is an inherently unstable and therefore unsignable data format." 10 Peter Gutmann Er is een oplossing voor bedacht: XML Canonicalization. Daarmee wordt ieder XML document eerst in een canonieke vorm gebracht, waarna de handtekening wel valideert. Maar eerlijk, XML Canonicalization is eerder een hack dan een oplossing, en een hack die in de eerste plaats compleet overbodig had moeten zijn. XML Canonicalization is een bekende en vaak desastreuze performance bottleneck voor applicaties die handtekeningen nodig hebben, tot 96% (!) van de tijd die nodig is om de DOM te lezen, canoniek te maken en de handtekening te berekenen 11. Wie kent een ander dataformaat dat zoveel redundantie kent als XML? Dit is een van de fundamentele problemen van XML. De SGML-erfenis maakt het natuurlijk niet makkelijk, maar de kern van het probleem is dat XML teveel wil zijn voor iedereen. De "one size fits all" benadering waarmee XML zowel documentgeöriënteerde problemen als datageöriënteerde problemen op wil lossen, is de reden dat XML vaak zo'n kromme oplossing is. 5. DOM, DOMmer, DOMmest Het wordt nog erger bij de DOM en programmeren met XML. "I wrote a bunch of code to process arbitrary incoming XML, and I found it irritating, time-consuming, and error-prone." 12 Tim Bray Het begint natuurlijk met het simpele voorbeeld, wat iedereen die ooit met de DOM geprogrammeerd heeft zal herkennen: <doc> <naam>piet</naam> </doc> Wanneer we met de DOM het eerste element van <doc> ophalen en afdrukken, zien we niets het fragment kent immers drie nodes onder <doc>: newline plus tab, <naam>, newline. Het eerste "child" is dus een witregel, niet de <naam>. Hoewel dit voorbeeld uitermate simpel is, geeft het het wezenlijke probleem van de DOM goed weer: de DOM werkt voor nieuwe programmeurs tegenintuïtief. "And of all the things XML has brought to the table, about the only one I can think of that is worse than namespaces is DOM. It's ugly, inconsistent, memory-intensive, slow, thoroughly despised by users, and frankly just hideous."
6 Elliotte Rusty Harold Hieronder ligt een veel fundamenteler probleem. Programmeurs werken (uiteraard) graag met objecten uit de eigen programmeertaal. (En dat is meestal een objectgeöriënteerde taal. Van de 10 meestgebruikte programmeertalen, zijn er 7 ofwel objectgeöriënteerd, ofwel voorzien van uitgebreide objectgeöriënteerde uitbreidingen. 14 ) XML, en met name de DOM, passen slecht op objecten. Meestal is een hele slag nodig om met veel getelementsbytagname statements de XML boom in te lezen in lokale objecten. Precies de reden waarom programmeren met de DOM steeds meer vervangen wordt door XML API's die goed passen bij het lokale idioom. Het populaire ElementTree 15 bijvoorbeeld maakt het eenvoudig een XML boom in te lezen en te behandelen als typische Python structuren: dictionaries en lists. Dat maakt het bewerken van de XML voor de Python-programmeur tot een veel natuurlijker, "Pythonesque", proces dan werken met de DOM. Ook de Microsoft-taal LINQ 16 die inmiddels deels in het.net Framework 3.5 zit, had als een van de motivatoren een eenvoudiger manier om met XML te werken. 6. Over JSON en struisvogelpolitiek Op precies dit pijnpunt richt JSON 17 (JavaScript Object Notation) zich ook: JSON documenten zijn in wezen geserializeerde JavaScript objecten hoewel er op zich heel weinig Javascript specifieks aan JSON is, JSON past heel makkelijk op andere programmeertalen. Een voorbeeld (ontleend aan Simon Willison) 18 : person = { "name": "Simon Willison", "age": 25, "height": 1.68, "urls": [ " " " ] } Dit heeft in al zijn eenvoud geen uitleg nodig. Dit past precies op een object, maakt niet uit of dat in C++, Java, C#, Python of Perl moet gebeuren. JSON kent niet de desastreuze redundantie van XML. JSON is korter (zet het bovenstaande voorbeeld maar een om in XML en tel de bytes...). JSON past natuurlijk op programma-objecten. En deze eenvoud is heel belangrijk. Uiteraard kan iemand met de nodige informatieanalytische achtergrond en de nodige programmeertalen in de rugzak met XML wel een oplossing bouwen. Maar het probleem is dat er te weinig van zijn. Er is simpelweg onvoldoende IT-personeel om ieder project te bemannen met alleen de hoost gekwalificeerde medewerkers. Daarnaast is XML niet alleen een taal voor hardcore ontwikkelaars. Ook webontwerpers, met een achtergrond als grafisch ontwerper, programmeren er vaak wat bij in Javascript. Daarom is het zo belangrijk dat een taal, bijvoorbeeld XML, het leven van de programmeur simpel maakt. XML doet dat niet
7 JSON is uiteraard ook niet de oplossing voor alles. JSON heeft (nog) geen schemataal dat maakt het bij voorbaat ongeschikt voor heel veel grootschalige problemen zoals gegevensuitwisseling in de gezondheidszorg, mijn vakgebied. Maar we moeten de kritiek van Douglas Crockford en JSON serieus nemen. De jippie-mentaliteit waarmee velen XML omarmen getuigt van een wereldvreemde navelstaarderij. XML zit boordevol problemen. Ernstige, serieuze problemen, waar de opkomst van JSON een teken van is. Wanneer de reactie op kritiek is de kop in het zand te steken, en de problemen te ontkennen, is XML binnenkort echt dood. Het grote manco van de afgelopen 10 jaar dat we XML hebben, is dat alle problemen die hierboven genoemd zijn, al het grootste deel van die 10 jaar bekend zijn, en dat er 10 jaar lang niets of nauwelijks iets mee gedaan is. XML is niet dood als documentformaat de wereld zit propvol met XML documenten en berichten, en het worden er iedere dag meer en meer. XML is wel dood als veelbelovende technologie, als familie van specs die zich ontwikkelt naar de toekomst, en zich verbetert zonder zich onnodig te compliceren. Passed on! XML is no more! It has ceased to be! It's expired and gone to meet 'is maker! It's a stiff! Bereft of life, it rests in peace! If you hadn't nailed it to the perch it'd be pushing up the daisies! It's metabolic processes are now history! It's off the twig! It's kicked the bucket, it's shuffled off it's mortal coil, run down the curtain and joined the bleedin' choir invisibile!! Ex-ML!!
Ontwerprichtlijnen voor XML-Schemadefinities
Ontwerprichtlijnen voor XML-Schemadefinities Voor gebruik binnen iwlz, iwmo en ijw Datum 1 juni 2016 Status Definitief Colofon Publicatienummer Uitgave Projectnaam Projectnummer Versienummer 1.3 Projectleider
Standaardisatie. XML Schema Definition. Architectuurprincipes. Versie document 1.0. Datum:
Standaardisatie XML Schema Definition Architectuurprincipes Versie document 1.0 Status document concept Datum: 12-2-2016 Kenmerk: XML Schema Definition Architectuurprincipes v1.0 Adres- en contactgegevens
Versiecontrole in de keten
Versiecontrole in de keten Het probleem we hebben een keten, en een uitwisseling, met berichten, documenten et cetera iedereen is gelukkig... en nu komt versie 2.0 moet iedereen tegelijk over naar 2.0?
SQL en XML. XML schema s & DMO. Entiteitsklasse en attribuut. SQL en XML. Datamodellering Schema een ruim begrip (zie Møller, p.
SQL en XML Datamodellering 2007 1 XML schema s & DMO Schema een ruim begrip (zie Møller, p. 96) DTD schema W3C Schema In dit overzicht: Wat zijn de belangrijke zaken uit XML voor datamodellering? (onvolledig)
XML & XSLT voor DMO. Datamodellering 2008. Een XML datamodel. conceptueel model logisch / fysiek model: platform afhankelijk
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.:
Ontwerprichtlijnen voor XML-schemadefinities (XSD s) 18 juli 2017
Ontwerprichtlijnen voor XML-schemadefinities (XSD s) 18 juli 2017 Ontwerprichtlijnen voor XML-schemadefinities (XSD s) 1 / 20 Inhoud Inleiding 3 1 Namespaces 4 1.1 Target namespace 4 1.2 Default namespace
Standaardisatie. XML Schema Definition Architectuurprincipes. Versie document 1.3. Datum: v1.3
Standaardisatie XML Schema Definition Architectuurprincipes Versie document 1.3 Status document Definitief Datum: 2-8-2018 Kenmerk: XML Schema Definition Architectuurprincipes v1.3 Contact Bezoekadres
Comics FILE 4 COMICS BK 2
Comics FILE 4 COMICS BK 2 The funny characters in comic books or animation films can put smiles on people s faces all over the world. Wouldn t it be great to create your own funny character that will give
Gebruik van cryptografie voor veilige jquery/rest webapplicaties. Frans van Buul Inter Access
Gebruik van cryptografie voor veilige jquery/rest webapplicaties Frans van Buul Inter Access 1 Frans van Buul [email protected] 2 De Uitdaging Rijke en veilige webapplicaties Een onveilig en
XML & XSLT voor DMO. Een XML datamodel. Van ERD naar XML schema. XML en XSLT DMO Datamodellering 2008
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.:
Introductie OWMS 3.5
Identificatie http://standaarden.overheid.nl/owms/3.5/doc/introductie.pdf Informatietype Richtlijn Taal nl-nl Maker Overheid heeft Antwoord laatste wijziging Geldigheid vanaf 01-08-2008 Locatie Niet van
Ontwerprichtlijnen voor XML-Schemadefinities
Ontwerprichtlijnen voor XML-Schemadefinities Voor gebruik binnen WLZ, WMO en JW Datum 26 mei 2015 Status Concept Colofon Publicatienummer Uitgave Projectnaam Projectnummer Versienummer 1.1 Projectleider
S e v e n P h o t o s f o r O A S E. K r i j n d e K o n i n g
S e v e n P h o t o s f o r O A S E K r i j n d e K o n i n g Even with the most fundamental of truths, we can have big questions. And especially truths that at first sight are concrete, tangible and proven
Javascript oefenblad 1
Leer de basis van Javascript. Javascript oefenblad 1 Niels van Velzen Javascript oefenblad 1 Pagina 2 Inleiding Javascript is niet altijd even makkelijk. Vooral aan het begin is het even wennen hoe de
Taco Schallenberg Acorel
Taco Schallenberg Acorel Inhoudsopgave Introductie Kies een Platform Get to Know the Jargon Strategie Bedrijfsproces Concurrenten User Experience Marketing Over Acorel Introductie THE JARGON THE JARGON
Travel Survey Questionnaires
Travel Survey Questionnaires Prot of Rotterdam and TU Delft, 16 June, 2009 Introduction To improve the accessibility to the Rotterdam Port and the efficiency of the public transport systems at the Rotterdam
Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information
Activant Prophet 21 Prophet 21 Version 12.0 Upgrade Information This class is designed for Customers interested in upgrading to version 12.0 IT staff responsible for the managing of the Prophet 21 system
Tokenauthenticatie & XML Signature in detail
Tokenauthenticatie & XML Signature in detail Tokenauthenticatie QURX_ EX990011NL smartcard met private key Certificaat token maken SignedInfo maken RSA / SHA sig maken signeddata SignedInfo SignatureValue
Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland
Bijlage 2: Informatie met betrekking tot goede praktijkvoorbeelden in Londen, het Verenigd Koninkrijk en Queensland 1. Londen In Londen kunnen gebruikers van een scootmobiel contact opnemen met een dienst
XSD.
XSD [email protected] http://telescript.denayer.wenk.be/~jve Geldige XML Algemeen: Welgevormd Specifiek: Geldig hobo blaas hout
Y.S. Lubbers en W. Witvoet
WEBDESIGN Eigen Site Evaluatie door: Y.S. Lubbers en W. Witvoet 1 Summary Summary Prefix 1. Content en structuur gescheiden houden 2. Grammaticaal correcte en beschrijvende markup 3. Kopregels 4. Client-
Handleiding Word Press voor de bewoners Westerkaap 1
1 Handleiding Word Press voor de bewoners Westerkaap 1 Inhoud: Inloggen Pagina 1 Algemeen Pagina 2 Berichten Pagina 2 Bericht bewerken, Linken Pagina 3-4 Plaatje toevoegen bericht Pagina 5-6 Bericht publiceren
Als je je richt op resultaten, dan zul je niet veranderen. Als je je richt op verandering, dan zul je resultaten behalen.
Als je je richt op resultaten, dan zul je niet veranderen. Als je je richt op verandering, dan zul je resultaten behalen. Als alles tegenzit, bedenk dan dat een vliegtuig opstijgt bij tegenwind, niet met
Help er gaat iets mis
Help er gaat iets mis Krijg je een foutmelding tijdens het gebruik van SURFconext? De kans is groot dat het een van onderstaande foutmeldingen betreft. Lees hier meer over wat de foutmelding betekent en
Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.
Voorbeeldproject Een Haagse SOA Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag. Aanleiding Vanuit de visie
Aan de rechterkant is een werkbalk te zien. Onderaan krijg je de instructie: Dubbelklik of sleep een bestand op een plek om iets te plaatsen.
Web 2.0 tools Padlet We geven je een lege muur. Je kunt er van alles opzetten, overal. Eenvoudig, maar toch heel krachtig. Als ik dit lees, ben ik heel erg benieuwd wat er allemaal mogelijk is. Ik ga eens
The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:
Document properties Most word processors show some properties of the text in a document, such as the number of words or the number of letters in that document. Write a program that can determine some of
Reporting System CPA 2006
Reporting System CPA 2006 XML PROTOCOL (juni 2005) Versie 1.0 1/14 Inhoudsopgave 1. Inleiding... 3 2. Algemene principes... 3 2.1 Structuur content gedeelte... 3 2.2 CSSR admin parameters... 5 3. XML Schema...
DocBook XML documenten bewerken
LinuxFocus article number 201 http://linuxfocus.org door Egon Willighagen DocBook XML documenten bewerken Over de auteur: Haalde zijn masters degree in de chemie aan de Universiteit
Onderzoeksvaardigheden 2
Performance van Phonegap Naam: Datum: april 2012 Studentnummer: 0235938 Opleiding: CMD Docenten: Pauline Krebbers Modulecode: MEDMO101DT Modulenaam: Onderzoeksvaardigheden 2 / Media & Onderzoek Inhoudsopgave
De ijnmanager. Cartoons september 2012. Luc Timmers
De ijnmanager Cartoons september 2012 Luc Timmers Alle cartoons mogen gratis gekopieerd en verspreid worden Gratis? Jazeker! Tegenprestatie? De Lijnmanager Gratis is voor bijna niks Volg @Delijnmanager
SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead
7.1 Exploring Combinations of Ten Look at these cubes. 2. Color some of the cubes to make three parts. Then write a matching sentence. 10 What addition sentence matches the picture? How else could you
Security web services
Security web services Inleiding Tegenwoordig zijn er allerlei applicaties te benaderen via het internet. Voor bedrijven zorgt dit dat zei de klanten snel kunnen benaderen en aanpassingen voor iedereen
KvK-FRIS Eisen aan en toelichting op gebruik SBR rapportages (XBRL instances) voor het deponeren van jaarrekeningen gebaseerd op de NT 2011
Eisen aan en toelichting op gebruik SBR rapportages (XBRL instances) voor het deponeren van jaarrekeningen gebaseerd op de NT 2011 Versie: 2011 Datum: 1. Inleiding Dit document beschrijft de aanvullende
MyDHL+ Van Non-Corporate naar Corporate
MyDHL+ Van Non-Corporate naar Corporate Van Non-Corporate naar Corporate In MyDHL+ is het mogelijk om meerdere gebruikers aan uw set-up toe te voegen. Wanneer er bijvoorbeeld meerdere collega s van dezelfde
STRATEGIE VOOR KMO S PROF. DR. KURT VERWEIRE
STRATEGIE VOOR KMO S PROF. DR. KURT VERWEIRE TOOLS VOOR MANAGERS 2 Vlerick Business School 1WAT IS STRATEGIE? WHAT IS STRATEGY? 4 Vlerick Business School Formulating Winning Business Strategies MISSIE,
Expertise seminar SURFfederatie and Identity Management
Expertise seminar SURFfederatie and Identity Management Project : GigaPort3 Project Year : 2010 Project Manager : Albert Hankel Author(s) : Eefje van der Harst Completion Date : 24-06-2010 Version : 1.0
Cursus Programmeren en Dataverwerking.
Cursus Programmeren en Dataverwerking http://hay.github.io/codecourse Vanavond (18.00-21.30) Introductierondje Algemene introductie (60-90m) Iets over bits en bytes Iets over programmeurs en programmeertalen
Hunter-CRM. Documentatie Handleiding Spamfilter
Documentatie Handleiding Spamfilter 1 Voorwoord Deze handleiding is een product van Hunter-CRM. Onze CRM software is gemaakt met het oog op gemak. Voor verdere vragen kunt u contact opnemen met onze helpdesk.
Op zoek naar nieuwe business modellen
Op zoek naar nieuwe business modellen Oegstgeest, 15 november 2012 Vandaag leg ik uit waarom business as usual dood is Centrale vraag Wie voegt op welk moment waarde toe? Welk gereedschap kunnen we hiervoor
Seasondeals. p: +31 (0)20 894 6363 e: [email protected] w: http://nl.season.deals. Seasondeals, Postbus 717 9400AS, Assen, Nederland
Seasondeals, Postbus 717 9400AS, Assen, Nederland p: +31 (0)20 894 6363 e: [email protected] w: http://nl.season.deals Seasondeals The Rich Media Ad Company 01 PROBEER HET - WIN UW PRIJS GA MOBILE FIRST
Impact Masters Checklist
Impact Masters Checklist Inhoudsopgave 1. Inleiding 3 2. Vliegwiel van Impact 4 3. Checklist 6 4. Vervolgvragen 8 Blz. 2 Inleiding Impact Masters helpt ondernemers nieuwe kansen te ontdekken voor hun bedrijf
Nieuws & RSS in DotNetNuke
Nieuws & RSS in DotNetNuke Intro terminologie DNN content modules Feed modules Voorbeelden Nieuws op je website Doelen Publiceren unieke eigen content (bijv. overheid) Agregatie van nieuws rondom een thema
Blackboard Toetsvragen maken in Word
Blackboard Toetsvragen maken in Word Inleiding We gaan vragen maken in een Word en deze vragen via kopiëren en plakken vertalen naar een tekstbestand (.txt) wat Blackboard begrijpt. Opmerking: Dit is iets
Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen.
Lesbrief Les 2.1: My family Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen. Nouns: brother, sister, cousin, mother, father, aunt, uncle, grandmother,
Media en creativiteit. Winter jaar vier Werkcollege 7
Media en creativiteit Winter jaar vier Werkcollege 7 Kwartaaloverzicht winter Les 1 Les 2 Les 3 Les 4 Les 5 Les 6 Les 7 Les 8 Opbouw scriptie Keuze onderwerp Onderzoeksvraag en deelvragen Bespreken onderzoeksvragen
Zelftest XML Concepten
Zelftest XML Concepten Document: n1035test.fm 18/02/2010 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING Om een idee te hebben van wat we verwachten als voorkennis
Schema. Schema - Inleiding. <hoofdstuk> </hoofdstuk> DTD? Eenstapjeverder. Schema XML
Schema schema inleiding elementen attributen datatypes en verder... structuur software
Eigen Widgets in CRM. Introductie. Limitering. Widgets beschikbaar stellen. Tips & Tricks Eigen Widgets in CRM
Tips & Tricks Eigen Widgets in CRM Eigen Widgets in CRM Introductie De WebUI van CRM 7.0 maakt het mogelijk om je eigen widgets te maken en deze in je eigen view te gebruiken. Dat kan door gebruik te maken
Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam.
Model Driven Software Development: Geen toekomst maar realiteit. 4 juni 2009, WTC, Amsterdam. Welke hoort in dit rijtje niet thuis? Weg- en waterbouw Huizen- en kantoorbouw Stedenbouw Auto- en vliegtuigbouw
Werken met SNAP pakketten in Ubuntu 16.04
Werken met SNAP pakketten in Ubuntu 16.04 Eén van de nieuwe zaken die Canonical in zijn Ubuntu-reeks heeft geïntodruceerd zijn SNAP packages. Met convergency in het achterhoofd (zelfde look & feel zowel
Kennissessie INSPIRE. Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum.
Kennissessie Algemene vereisten & architectuur Metadata View Services Download Services Ondersteuning vanuit Geonovum Thijs Brentjens Inhoud Download Services Pre-defined datasets via Atom feeds Pre-defined
BeCloud. Belgacom. Cloud. Services.
Cloud Computing Steven Dewinter [email protected] February 13 th, 2012 Cloud computing is niet nieuw. Het is een evolutie, geen revolutie! Personal Computer, Tekstverwerker, Rekenblad, MS DOS,..
Koppelvlakstandaard Grote Berichten Digikoppeling 2.0
Koppelvlakstandaard Grote Berichten Digikoppeling 2.0 Versie 1.2 Datum 10/06/2014 Status Definitief Colofon Logius Servicecentrum: Postbus 96810 2509 JE Den Haag t. 0900 555 4555 (10 ct p/m) e. [email protected]
De plug-in is heel eenvoudig te installeren met een setup-programma. Waarna je een aantal menu opties in het tools menu er bij krijgt.
Plsqldoc Genereer je documentatie Beeklaan 444 2562 BK Den Haag www.darwin-it.nl [email protected] KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren
Introductie Veiligheidseisen Exploiten Conclusie. Browser security. Wouter van Dongen. RP1 Project OS3 System and Network Engineering
Browser security Wouter van Dongen RP1 Project OS3 System and Network Engineering Februari 4, 2009 1 Introductie Onderzoeksvraag Situatie van de meest populaire browsers Client-side browser assets vs.
B1 Woordkennis: Spelling
B1 Woordkennis: Spelling Bestuderen Inleiding Op B1 niveau gaan we wat meer aandacht schenken aan spelling. Je mag niet meer zoveel fouten maken als op A1 en A2 niveau. We bespreken een aantal belangrijke
Linked Data: stap voor stap, deel 3bis Table of Contents
Linked Data: stap voor stap, deel 3bis Table of Contents Linked Data: stap voor stap, deel 3bis...1 Inleiding...2 Van triples naar concrete syntax...2 N-Triples...2 Turtle...3 RDF/XML...5 Van syntax naar
ICT: HOOFDROLSPELER OF BACKSTAGE ASSISTANT? Steven Van Uffelen INCA Networks NV
ICT: HOOFDROLSPELER OF BACKSTAGE ASSISTANT? Steven Van Uffelen INCA Networks NV Nieuwe Wereld Nieuwe Business Nieuwe IT Uw nieuwe werknemers The times they are changing Uw medewerkers toen How can I help
Davide's Crown Caps Forum
pagina 1 van 6 Davide's Crown Caps Forum A Forum for Crown Cap Collectors Zoeken Uitgebreid zoeken Zoeken Forumindex Crown Caps Unknown Caps Lettergrootte veranderen vriend Afdrukweergave Gebruikerspaneel
Naam: Valérie den Besten Klas: G&I A Datum: 06-11-15 Module: Project 100% presence Begeleider: Irene van Peer Groep 11 (team 14)
Naam: Valérie den Besten Klas: G&I A Datum: 06-11-15 Module: Project 100% presence Begeleider: Irene van Peer Groep 11 (team 14) Reflectieverslag Maandag hebben we gebrainstormd en we hebben voor mijn
The OSI Reference Model
Telematica Applicatielaag Hoofdstuk 16, 17 Applicatielaag 4Bevat alle toepassingen die van het netwerk gebruik maken n E-mail n Elektronisch nieuws n WWW n EDI (Electronic Data Interchange) n Napster,
Connect Social Business
Connect Social Business Joey Kaan September 2014 Inhoudsopgave 1 Achtergronden 4 2 Probleemstelling & Doelstelling 5 2.1 Leren Professioneel Functioneren.................. 5 2.2 Facebook API leren door
1. In welk deel van de wereld ligt Nederland? 2. Wat betekent Nederland?
First part of the Inburgering examination - the KNS-test Of course, the questions in this exam you will hear in Dutch and you have to answer in Dutch. Solutions and English version on last page 1. In welk
9 daagse Mindful-leSs 3 stappen plan training
9 daagse Mindful-leSs 3 stappen plan training In 9 dagen jezelf volledig op de kaart zetten Je energie aangevuld en in staat om die batterij op peil te houden. Aan het eind heb jij Een goed gevoel in je
7 tips voor een onverslaanbare. LinkedIn showcasestrategie
7 tips voor een onverslaanbare LinkedIn showcasestrategie Hoe bereik je de klant met LinkedIn showcasepagina s? Sommige producten, diensten of merken die onder een organisatie vallen zijn dusdanig speciaal
Object Oriented Programming
Object Oriented Programming voor webapplicaties Door Edwin Vlieg Waarom OOP? Basis uitleg over OOP Design Patterns ActiveRecord Model View Controller Extra informatie Vragen OOP Object Oriented Programming
A2 Workshops Grammatica Heden
Bestuderen Present Simple Normaal Hoe maak je de Present Simple? Kijk eerst maar even naar het volgende rijtje. I You He She It We You see see sees sees sees see see They see Je ziet dat het heel eenvoudig
INSPIRE ruimtelijke datadiensten. INSPIRE Kennissessie Amersfoort, 5 juli 2016
INSPIRE ruimtelijke datadiensten INSPIRE Kennissessie Amersfoort, 5 juli 2016 Agenda Ruimtelijke datadiensten ook wel.. Spatial Data Services of SDS ook wel diensten met betrekking tot ruimtelijke gegevens
WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn
WFS 3.0 De geo-api van de toekomst Linda van den Brink, Geonovum 13 februari 2019 @brinkwoman #DataToBuildOn Eerste versie uit 2002 https://nl.wikipedia.org/wiki/web_feature_service Web Feature Service
We moeten de accommodaties selecteren die 3 sterren hebben, en in land met ID 10 zitten.
MySQL talk Trage website? Het optimaliseren van een bestaande website die een MySQL database heeft is niet altijd even makkelijk. Het probleem kan namelijk op veel verschillende plekken zitten: de database
Geo-data als onderdeel van het eco-systeem van het web. Marcel Reuvers 2 september 2015
Geo-data als onderdeel van het eco-systeem van het web Marcel Reuvers 2 september 2015 de informatiesamenleving Ontwikkeling van de samenleving Oude samenleving (voorontwikkelingsfase) Kantelperiode Nieuwe
Linked data als klittenband voor de Basisregistraties en meer!
Live : Linked Data & Basisregistraties Linked data als klittenband voor de Basisregistraties en meer! Erwin Folmer, 30-9-2015 (slides hergebruikt van Linda van den Brink) Het project BGT Linked Data Drie
Voor vragen: http://www.richard3332.nl/ of mail naar [email protected]
Welkom bij mijn website tutorial (Deel 3) Ik ga uit van Microsoft XP voor de duidelijkheid. Ik heb dus geen idee of de programma s die ik gebruik ook op Vista werken. Notepad++ werkt zowieso op xp en Vista.
Puzzle. Fais ft. Afrojack Niveau 3a Song 6 Lesson A Worksheet. a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel.
Puzzle a Lees de omschrijvingen. Zet de Engelse woorden in de puzzel. een beloning voor de winnaar iemand die piano speelt een uitvoering 4 wat je wil gaan doen; voornemens 5 niet dezelfde 6 deze heb je
RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM
Read Online and Download Ebook RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM DOWNLOAD EBOOK : RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN STAFLEU
This appendix lists all the messages that the DRS may send to a registrant's administrative contact.
This appendix lists all the messages that the DRS may send to a registrant's administrative contact. Subject: 1010 De houdernaam voor #domeinnaam# is veranderd / Registrant of #domeinnaam# has been changed
4 ASP.NET MVC. 4.1 Controllers
4 ASP.NET MVC ASP.NET is het.net raamwerk voor het bouwen van webapplicaties. De MVC variant hiervan is speciaal ontworpen voor het bouwen van dergelijke applicaties volgens het Model-View-Controller paradigma.
De ijnmanager. Cartoons juli 2013. Luc Timmers
De ijnmanager Cartoons juli 2013 Luc Timmers Die goede oude tijd Kijk, dat is één van de belangrijkste nadelen van Het Nieuwe Werken Ik heb geen kantoor meer De Interim Manager De Interim Manager What
Deny nothing. Doubt everything.
Deny nothing. Doubt everything. Hack to the Future Marinus Kuivenhoven Sr. Security Specialist Houten, 23 juni 2015 [email protected] 2 Het valt op Wij leren niet van het verleden Zekerheid
Standaarden en richtlijnen epv. Versienummering. Datum 19 december 2006. Onderwerp Standaarden en richtlijnen Versienummering
Standaarden en richtlijnen epv Versienummering Datum 19 december 2006 Onderwerp Standaarden en richtlijnen Versienummering Auteur Marc de Graauw Hugo den Hollander E-mail [email protected] Versie 1.0 - Definitief
