Leeswijzer Uitwisselingstalen

Maat: px
Weergave met pagina beginnen:

Download "Leeswijzer Uitwisselingstalen"

Transcriptie

1 Leeswijzer Uitwisselingstalen Versie 0.7, 17 juni 2004 Johan Jeuring en Frans Wiering Algemeen Deze leeswijzer bevat: Overzicht van hoofdstukken en secties die bestudeerd moeten worden. Puntsgewijs overzicht van de leerstof in hoofdlijnen (begrippen, modellen, problemen enz.). Begripsomschrijvingen e.d. moet je in het algemeen zelf opzoeken! Enkele aanwijzingen en opmerkingen. [aanvullende opmerkingen] 1. Using this book categorie: conceptueel Book structure Bradley geeft in zijn boek een overzicht van algemene XML-standaards, waarbij hij werkt vanuit de kern, XML 1.0, naar toepassingsondersteundende standaards. Het bouwplan van het boek dat Bradley geeft in dit hoofdstuk is merkwaardig genoeg niet precies dat van de inhoudsopgave. Hieronder beide indelingen: gedeelte volgens hoofdstukken gedeelte volgens onderwerp inhoudsopgave hoofdstuk 1 The XML Standard 2-8 The XML Standard XML zelf, de kern waar alles om draait? Underlying Standards dit gedeelte ontbreekt Extensions to XML 9-15 Extension Standards standaards die de XML-kern uitbreiden Processing and Transforming XML Processing and Transforming gereedschappen en technieken voor verwerking XML Formatting XML documents Formatting XML XML zichtbaar maken voor eindgebruiker Document management beheer van XML References naslag Uiteraard geeft de opbouw volgens de eerste 2 kolommen de feitelijke inhoud van het boek. XML lijkt in een aantal opzichten op HTML, maar vaak zijn de overeenkomsten misleidend. SGML is de voorloper van XML, die we inhoudelijk niet behandelen. Style conventions, Editorial policies Deze secties spreken voor zich. 2 Elementary XML categorie: technisch. Kern van XML: verdelen van data in zinvolle componenten (meaningful components) 1

2 Introduction XML = Extensible Markup Language XML-standaard: ontwikkeld door W3C (World Wide Web Consortium) toepassingen: data-uitwisseling publicatie van documenten Text XML steunt op onderliggend tekstformaat (bv. ASCII). Nadeel ASCII: onderscheiden zinvolle componenten binnen tekst problematisch. Markup Markup: toevoegen van extra betekenislaag aan ASCII. Markup is geen onderdeel van data. Voorbeelden: CSV (beperking: tabelstructuur, betekenis ligt niet vast) en RTF. XML documents Document: term voor elk XML data-object. Elements Element: zinvolle documentcomponent. Elk XML-document bestaat tenminste uit één element, dat het gehele document omvat Container element: start tag <...> end tag </...> element content (tussen <...> en </...> Element names: maken betekenis duidelijker zijn in document zelf opgenomen liggen niet in de standaard vast beperkingen aan naamgeving XML Application specificeert (onder andere) toegestane elementnamen Sequential significance: volgorde elementen is wezenlijk Empty elements placeholder verkorte notatie <.../> Special characters vorm: &...; voorgedefinieerd: < > & &apos; " voor < > & Parsing wellformed parser XML processor 2

3 Element types element type element instance case sensitivity Appropriate element types XML is een zelfbeschrijvend formaat informatie zonder ambiguïteit vastleggen geen vormgeving vastleggen Document modelling document model: model klasse documenten met vergelijkbare structuur Modelling rules model: verzameling regels betekenis: controle mogelijk Configuration schemes Verschillen in: mate controle syntaxis Belangrijke schemataken: DTD: Document Type Definition (hoofdstuk 5-6; deze cursus) XML Schema (hoofdstuk alleen conceptueel) Validating parsers validating parser validation XML-sensitive editor Element hierarchies hiërarchie boomstructuur document element (root element) Layout of element hierarchies Mixed content Element kan zowel tekst als elementen bevatten Element content Element kan uitsluitend andere elementen bevatten Recursion Geneste elementen: element bevat ander element van zelfde elementtype. Contextual significance Precieze betekenis van element kan mede afhangen van zijn context. Structure constraints 3

4 Hiërarchie is strikt: géén overlappende elementen Terminology hiërarchische relaties: sibling parent, child descendant, ancestor leaf Attributes Attributen zijn metadata van elementen toevoegen aan start-tag of empty tag Attribute construction attribute name attribute value attname= attvalue Attribute names case sensitive gereserveerde namen: xml:... Attribute values tussen (enkele of dubbele) aanhalingstekens Uses of XML Enkele toepassingsgebieden: publishing industry uitwisseling complexe data, speciaal over Internet configuration files multimedia: SVG, SMIL 3 More document markup categorie: technisch Naast elementen en attributen kan een XML document ook nog andere markup bevatten. Dit hoofdstuk beschrijft deze markup structuren. Introduction Elementen en attributen beschrijven de inhoud van een document. Andere markup structuren zoals commentaar, en links naar stylesheets worden gebruikt beschrijven hoe software een document moet verwerken. Reserved attributes Attribuutnamen die beginnen met `xml:'zijn gereserveerde namen. Languages De taal die gebruikt wordt in de tekst van een document wordt gespecificeerd mbv het attribuut xml:lang. 4

5 Significant spaces Spaces in tekst zijn significant, spaces die gebruikt worden tussen elementen zijn normaliter insignificant. Het xml:space attribuut wordt gebruikt om de significantie van spaces tussen elementen aan te geven: "default" is insignificant, "preserve" maakt spaces significant. Processing instructions Een processing instruction in een document vertelt een software applicatie wat er met het document moet gebeuren, en heeft het volgende formaat: <?keyword instruction?>. XML declaration De XML declaratie is een speciale processing instructie, met een version parameter, en optionele encoding en standalone parameters. Markup declarations Alle andere markup wordt gegeven in de vorm <!keyword... >. Geneste markup wordt gespecificeerd tussen [.. ]. Document type declaration Een document type declaration wordt gegeven door <!DOCTYPE...>. Deze markup wordt voornamelijk gebruikt als een externe DTD gebruikt wordt. Character data sections De characters `<', `&'etc.. hebben een speciale betekenis in XML. Om hieraan te ontsnappen kan je ze in een character data section zetten: <![CDATA[... ]]> Comments <!-- Dit is commentaar --> Syntax overview Dit is een belangrijk overzicht van de syntax van XML, waarvan je de details moet kennen. 4 Physical structures (entities) categorie: technisch Introduction Entities worden onder meer gebruikt voor gemakkelijke representaties van ongewone characters, het opdelen van documenten in kleinere eenheden, het creeren van herbruikbare componenten die gedeeld kunnen worden, het includeren van non-xml data in een XML document. Een entity wordt gedefinieerd mbv een entity declaratie, en gebruikt mbv een entity reference. De naam van de entity wordt gegeven in de declaratie, en gebruikt voor het opzoeken van de entity. Entity references Een entity reference is een naam voorafgegaan door een &, en gevolgd door een ;. Een XML parser vervangt de entity reference door de inhoud van de entity. 5

6 Built-in entity references Er zijn built-in entities voor gereserveerde characters in XML zoals:&, nl &, en `<', nl <. Character entity references Character entities zijn built-in, en worden gebruikt voor het representeren van (ongewone) characters. Notatie &#...;, waar op de punten de positie van het character in de gebruikte character set (ASCII, ISO 8859/1, Unicode) staat. Immediate replacement Character entities worden vervangen door hun waarde, en niet opnieuw ontleed. Hexadecimal references Ipv decimale getallen mogen ook hexidecimale getallen (in het 16-tallig stelsel) worden gebruikt voor character entities. Notatie: &#x...;. Declaring an entity Alle entities, behalve de built-in, moeten worden gedeclareerd. De declaratie van entities staat aan het begin van een document, in de DTD, en heeft de vorm: <!ENTITY entitynaam...> Internal text entities Een internal text entity wordt gebruikt om ongewone characters of vaak voorkomende stukken tekst af te korten. Notatie: <!ENTITY entitynaam "entitytekst">. External text entities Als een internal text entity groot is, of ook in andere documenten gebruikt moet worden, dan is het beter een external text entity te gebruiken. Use of external entities De `document entity'is de entiteit van het document dat door een gebruiker aangemaakt of verwerkt wordt. Een document kan alleen uit content bestaan, of gebruik maken van een aantal external entities, of een framework zijn dat voornamelijk bestaat uit entity references. System identifier De locatie van een external entity wordt gegeven mbv de SYSTEM identifier. Notatie: <!ENTITY MyEnt SYSTEM "..."> waar de punten vervangen dienen te worden door een URL. Public identifier Een PUBLIC identifier geeft niet de exacte locatie van een entity, maar een identifier die gebruikt kan worden voor het opzoeken van de locatie. Notatie: <!ENITITY MyEnt PUBLIC "..." "A URL"> Entities within entities De waarde van een entiteit kan zelf weer bestaan uit entity references, maar niet uit entity declaraties, en mag ook niet cyclisch zijn. 6

7 Binary entities Een binary entity is een non-xml file waarin bv een plaatje of muziek is opgeslagen. Separate data XML data en binary data worden gescheiden gehouden om parsers niet in de war te brengen. Binary data worden door XML applicaties afgehandeld, afhankelijk van de data notatie van de binary data. Binary and notation declaration Een binary entity is an external entity plus de specificatie van het formaat van de data. Notatie: <!ENTITY MyEnt SYSTEM "A URL" NDATA "formaat"> Binary entity references hebben een ander formaat dan gewone entities: een binary entity reference wordt in een attribuut met de naam ent gegeven. General entities Alle soorten entities die we hebben gezien kunnen gebruikt worden in XML documenten. In in attribuut mogen echter alleen maar interne entities gebruikt worden. Parameter entities Een parameter entity wordt alleen maar gebruikt in document type declarations. Declaration and reference Het enige verschil met een gewone entity declaratie is het voorkomen van een % in de parameter declaratie: <!ENTITY % aparament SYSTEM "..."> De reference ziet er als volgt uit: %aparament; Constraints Parameter entities worden genegeerd in XML documenten, en hebben alleen betekenis in DTDs (hoofdstuk 5). Reusable entity sets Grote verzamelingen entities kunnen worden samen genomen in een entity file, die in een document type declaration gedeclareerd en gereferenced wordt. Rational for parameter entities Gewone entities kunnen gebruikt worden in een document; parameter entities worden gebruikt om documenten te configureren. Document Type Declaration Een Document Type Declaration kan een naamloze entiteit bevatten die een aantal declaraties bevat die ingevoegd worden na de interne declaraties (en daarmee een lagere prioriteit hebben dan de interne declaraties). Notatie: <!DOCTYPE book SYSTEM "decls.xml" [...]> Alternatives to entities Entities stammen nog uit de SGML standaard, en zijn in XML overgenomen voor backwards compatibility. Er zijn een aantal (soms betere) alternatieven: Character referencing: Direct gebruik van Unicode is mogelijk. XML fragment inclusions: XML Include en XLink kunnen een gedeelte van de functionaliteit van entities overnemen. Binary object inclusions: Een XLink feature. 7

8 5 Document type definitions (the DTD) categorie: technisch Introduction DTD legt vast welke elementen (en attributen) voor kunnen komen, en waar in het document ze gebruikt kunnen worden. Vergelijking met stylesheet-mechanisme van tekstverwerkers gaat m.i. mank. Models DTD is een van de mogelijke document modellen. DTD bestaat uit markup declarations Model tree Net als een document kan een DTD als boom worden weergegeven. NB wij gebruiken bij UWT een andere methode om de boom te tekenen dan Bradley (pag. 60); zie voorbeeld college 3. When to use a DTD Ondubbelzinnig vastleggen van documentkarakteristieken voor programma s stylesheets XML editors Avoiding a DTD Software die automatisch XML genereert kan specifiekere checks uitvoeren dan in een DTD kunnen worden geïmplementeerd Attributes Vastgelegd wordt: welof niet verplicht type evt. default-waarde Validating parsers validating parser batch validation Interactive validation Parsing limitations DTD location DTD als internal subset DTD als external subset document instance conditional section DTD markup Er soorten declaraties, ELEMENT, ATTLIST, ENTITY en NOTATION External subsets DTD voor een groep documenten, op één plaats vastgelegd Internal subsets 8

9 Kan complete DTD bevatten, maar gebruikelijk is alleen documentspecifieke aanvullingen Overriding declarations Entity- en attribuutdeclaraties in de interne subset gaan vóór die in de externe subset. Doel: slim configureren. Element declarations model: <!ELEMENT elementname...contentmodel...> voor contentmodel kun je invullen: EMPTY (empty element) ANY (elk element) een model group: element content of mixed content, tussen haken, eventueel genest operatoren in content model:, (komma) sequence choice Let op de syntax diagrammen. quantity indicators:? (0 of 1) + (1 of meer) * (0 of meer) kunnen op elementen en model groups worden toegepast Tekst alleen wordt angegeven met keyword #PCDATA Mixed content tekst en elementen vermengd; notatie altijd: (#PCDATA a b )* Contentmodellen mogen niet ambigu zijn Attribute declarations Model: <!ATTLIST elementname attribuutdefinitie(s)> attribuutdefinities bestaan uit: naam, type en defaultwaarde Attribuuttypen: CDATA NMTOKEN, NMTOKENS (let op rol whitespace) ENTITY, ENTITIES (van belang voor externe binaire entities) NOTATION (van belang voor embedded niet-xml data) ID, IDREF, IDREFS (zie hoofdstuk 7) Name token group: lijst mogelijke waarden, als in (a b c) Extra whitespace (zie hoofdstuk 8) wordt door parser uit attribuutwaarde verwijderd. Default waarde van attribuut kan zijn: #REQUIRED #IMPLIED (letterlijke) waarde #FIXED default-waarde: kan niet in document instance veranderd worden. Alle attribuutnamen die beginnen met xml: zijn gereserveerd. In de praktijd zijn dat xml:lang en xml:space. Een element mag meerdere atttribuutdeclaraties hebben. Eerste elementdefinitie gaat voor 9

10 Parameter entities Vergelijk gewone general entities, maar dan uitsluitend voor gebruik in DTD. Onderscheid: % in declaratie reference door %...entityname...; er wordt een spatie voor en na de tekstwaarde geplakt General entity references mogen niet in DTD voorkomen. Conditional sections Twee typen <![INCLUDE[...declaraties...>: voert declaraties uit <![IGNORE[...declaraties...>: slaat declaraties over Is interessant in combinatie met entity-controlled switching Notation declarations Dienen om aan systeem te melden hoe niet-xml data wordt verwerkt. Werkt samen met NDATA keyword in declaratie van binary entities. DTD processing issues Zonder DTD heb je gen beschikking over: entity declaraties default-waarde attributen typen attributen DTD processing eerst internal subset (met hierin documentspecifieke attlist- en entitydeclaraties) dan external subset Standalone parameter in XML-declaratie: wel of niet externe DTD lezen 6 Document modelling techniques categorie: conceptueel Stages of development DTD-ontwikkeling gaat in vier stappen: 1. analysis 2. model definition 3. writing the DTD 4. testing Document analysis Alleen hoofdgedachte kennen. Document analysis heeft betrekking op publishing-applicaties, niet op data-uitwisseling Existing rules bestuderen documenten en richtlijnen Human expertise kennis van domein-experts 10

11 Formatting constraints beperkingen die het productieproces oplegt Relevant features Bestudeer de gevonden kenmerken Database schema analysis Van belang voor data-uitwisseling. Structuur van een database wordt vaak in E-R diagrammen vastgelegd. Een op een-relatie en een op veel-relatie laten zich makkelijk in XML omzetten. Anders dan XML kennen relationele databases geen natuurlijke volgorde van de componenten. Future-use analysis Ontwerpen voor hergebruik. Voorbeelden voor papier heb je geen hyperlinks nodig, maar hergebruik je het materiaal voor online publicatie, dan wil je wel over hyperlinks kunnen beschikken. granulariteit van de markup bepaalt toekomstige functionaliteit. Legally overlapping structures Groot ontwerpprobleem. Oplossingsmethode: paren van lege elementen, die een tekstblok omspannen. Appropriate names XML stelt weinig beperkingen aan naamgeving, maar houd rekening met case-sensitivity software-conventies niet-ambigue namen korte namen voor veelgebruikte elementen Element or attribute Vaak kun je kiezen tussen een element of een attribuut om een stukje informatie te modelleren. Richtlijnen hierbij zijn de volgende: Data and metadata Document content in elementen, metadata (informatie over het document) in attributen Sub-structures gestuctureerde informatie moet in elementen Text length lange tekst in elementen, korte in attributen Published output informatie die niet voor de eindgebruiker is in attributen Restricted values bij een keuze uit een beperta aantal mogelijke waarden: attributen Conformity issues Kies oplossingen die in overeenstemming zijn met andere ontwerp-beslissingen Summary 11

12 Attributen zijn makkelijker te controleren dan elementen Other modelling tips (hoofdlijn) Using the context Definieer zo min mogelijk elementen, maar gebruik de context (voorbeeld: title element voor boek, hoofstuk en tabel) Headings or wrappings Gebruik waar mogelijk container-elementen om de relatie met sub-elementen expliciet te maken. Voorbeeld: zet een chapter element om een title en serie paragraphs. Dangerous attribute assumptions Attributen van een element kennen geen natuurlijke volgorde. Let op de default-waarden in DTD Appropriate granularity Hoe fijner de granulariteit, des te duurder en moeilijker beheer document, maar ook des te meer mogelijkheden voor verwerking Industry standard models Vaak ligt de keuze van DTD vast door afspraken tussen organisaties. Gebruik van standaard-dtds heeft voordelen: geen ontwikkelkosten, niet opnieuw wiel uitvinden makkelijke uitwisseling Nadelen: gewenste features ontbreken aanwezigheid ongewenste features teveel vrijheid bij coderen Oplossing: leid een eigen, strakker en beperkter schema af: materiaal blijft in het algemeen valide tegen oorspronkelijke DTD uitbreiden met gewenste elementen: meer problemen Lists Naslag Table standards Naslag Architectural forms Applicaties voor specifieke DTDs begrijpen betekenis van elementen en attributen. Voor generieke applicaties ligt dat moeilijker: die moeten functionaliteit aan groot aantal verschillende modellen kunnen koppelen. Overeenkomstige elementen (bv auteursnaam) kunne verschillende elementnamen hebben. Oplossing: Architectural form. Gereserveerde attributen (vastgelegd in DTD of ander documentschema, niet in document zelf!) geven aan naar welke architectural form het element vertaald moet worden om door een applicatie begrepen te worden. Dit is een ISO-standaard. 12

13 ICADD is een voorbeeld van een vocabulair van architectural forms voor document-publicatie DTD writing tools Er zijn geredschappen voor het schrijven van DTDs die de code voor eindgebruikers kunnen verbergen. DTD formatting Naslag Debugging the DTD Naslag Case study (quotations) Naslag Case study (this book) Naslag 7 Hypertext links categorie: technisch Dit hoofdstuk bespreekt alleen de linking-features uit de XML-standaard. Zie ook XLink en XPointer. Background Basic links verbindt source en target, of linking element en resource. transversal van een link Attribute types attributen van het type ID dienen als target/resource attributen van het type IDREF dienen als source/linking element ze hebben een overeenkomstige locator value. NB: attributen van het type IDREFS kunnen meer dan een locator value bevatten locator value is aan beperkingen onderhevig. Met name kan deze niet met een cijfer beginnen! Limitations begin- en eindpunt moeten in zelfde document liggen werkt alleen bij valide documenten (want afhankelijk van attribuuttypen) ondersteunt geen geavanceerde typen linking ID/IDREF waarden van attributen van het type ID moeten uniek zijn waarden van attributen met type IDREF moeten overeenkomen met een attribuut van type ID beide eisen worden door validerende parser gecontroleerd Link value strategies Hoe kies je locator values? strategieën: 1. sequentieel (maar dat is niet altijd intuïtief) 13

14 2. zinvolle namen (werkt alleen bij kleine documenten) 3. reference numbering: afgeleid van documentstructuur (en is dus voorspelbaar) Merging to publish Interessante publicatie-truc voor grote documenten samengesteld uit componenten. 8 Whitespace issues categorie: hoofdlijn Whitespace Onder whitespace worden verstaan de karakters spatie, tab, carriage return en line feed. Het probleem van whitespace is dat niet altijd duidelijk is of deze deel uitmaakt van het document (en dus betekenis heeft) of uitsluitend dient om de code beter leesbaar te maken. Op sommige plaatsen kan de betekenis van whitsepace expliciet worden aangegeven, op andere niet. Line-end normalization naslag Whitespace in markup Alle whitespace in markup (dus tussen < en >) wordt samengetrokken tot een spatie. Element content space Ignorable whitespace: bij element content (in een element komen alleen kind-elementen voor, geen #PCDATA) is whitespace tussen elementen niet van belang. Is er geen DTD, dan kunnen we niet weten of er spake is van element content of mixed content, en ontstaat er ambiguïteit. Preserved space Door middel van het xml:space attribuut kan de betekenis van whitespace expliciet gemakt worden xml:space= preserve bewaar whitespace, want is betekenisdragend xml:space= collapse trek whitespace samen, want niet betekenisdragend Een handige methode om dit vast te leggen is door middel van een #FIXED attribuut in de DTD Line ending interpretation naslag Ambiguous space naslag 9 XML extensions categorie: conceptueel Extension standards Belangrijke ontwerpbeslissingen: XML moet klein zijn (ontwerp applicaties aanmoedigen) compatibel met SGML (SGML tools bruikbaar) Tendenzen: 1. verouderde features uit SGML vervangen 14

15 2. verbetering SGML-gerelateerde standaards 3. XML krachtig genoeg maken voor datauitwisseling 4. andere vernieuwingen Benadering adjunct standards in plaats van XML zelf veranderen. General extensions Extensies die niet op een specifiek toepassingsgebied betrekking hebben namespaces (elementen uit verschillende DTDs in een document) XML Base: relatieve URLs (van belang voor behoud adressering bij invoegen documentcomponenten) XInclude: opbouwen documenten uit componenten navigatie: XPath alternatieven voor DTD: schema s Significant XML domains Voorzieningen voor bepaalde toepassingsgebieden data-uitwisseling. XML voor serialiseren en verzenden complexe data (bij EDI) beschrijving metadata (RDF) structuurverandering XML publicatie-toepassingen stylesheets uitgebreide hypertext-voorzieningen (XLink, XPointer) 10 Namespaces Categorie: technisch Compound documents Soms wil je in een XML document stukken opnemen die verschillende DTD's volgen. Mixed model problems Het is relatief eenvoudig om elementen en attributen van verschillende DTD's in een document op te nemen. Echter: Context identification Hoe weet ik uit welke DTD een specifiek element komt? Moet elke tool een volledige beschrijving van alle DTD's en elementen die daar in voorkomen bijhouden? Duplication conflicts Wat gebeurt er als in twee verschillende DTD's hetzelfde element wordt gedefinieerd? The standard De Namespaces standaard maakt het mogelijk documenten te creeren die bestaan uit fragmenten die aan verschillende DTD's voldoen. Namespaces lossen de bovenstaande problemen op: het levert een mechanisme voor het specificeren van de gebruikte DTD's, en een mechanisme voor het bepalen tot welke DTD een element behoort. Elke DTD heeft een ǹamespace', waarin alle elementen en attributen uniek zijn. 15

16 Namespace identification Een Namespace wordt gedefineerd mbv een URL. Om aan te geven uit welke namespace een element komt, wordt een elementnaam voorafgegaan door een prefix. Notatie: prefix:elementnaam. De prefix is een afkorting die in de namespace declaratie gedefinieerd wordt. Using namespaces Een namespace wordt gedeclareerd in een attribuut. Vb <X:html xmlns:x=" </X:html> Hier is X de prefix. declaration locations Een namespace mag bij elk element gedeclareerd worden. Vaak staat de namespace declaratie in het root element. Multiple declarations Er mag meer dan een namespace declaratie in een element voorkomen. Mixed attributes Attributen van een namespace mogen in elementen van een andere namespace gebruikt worden. Defaults Als elk element een prefix heeft wordt de hoeveelheid markup in een document groter. Je hoeft echter niet altijd een prefix te geven: als een element geen prefix heeft behoort het tot de default namespace. Element defaults Door geen prefix te definieren in een namespace wordt een namespace de default namespace. Overriding defaults In een element waarvoor een default namespace bestaat kan je een nieuwe default namespace definieren, die de oude vervangt. Attributes Attributen zonder prefix krijgen de namespace van het element waar ze bij horen. DTD handling Als een document elementen of attributen van verschillende DTD's gebruikt, dan moet een nieuwe DTD die alle elementen bevat gedefinieerd worden. Namespace modelling Om een document te kunnen ontleden volgens een DTD moeten de prefixes ook in de element definities in de DTD worden meegenomen. Prefix flexibility Soms wil je verschillende prefixes voor dezelfde namespace kunnen gebruiken. Daar bestaan technieken voor. Constraints DTD's bestonden voor namespaces, en dat leidt tot een aantal problemen bij het gezamenlijk gebruik van beide standaarden. 16

17 Examples of Usage XLink en XSLT gebruiken beide namespaces. 11 Relative URLs (XML Base) categorie: hoofdlijn Background Relatieve URL hebben als startpunt de directory van het document dat de URL bevat. Het kan nodig zijn dit startpunt op een andere manier vast te leggen, speciaal wanneer documenten verplaatst worden maar de links/entities waarheen ze verwijzen niet. XML Base markup xml:base attribuut legt startpunt vast. Geldt voor alle descendants van element waarop dit attribuut gedefinieerd is. Descendants kunnen weer nieuwe XML base geven (absoluut of relatief ten opzichte van vorige. External entity declarations Hierop heeft XML Base geen invloed External entity content bij verplaatsing van een document blijven verwijzingen naar externe entities intact bij gebruik XML Base. DTD declarations Het attribuut xml:base moet in DTD gedeclareerd worden 12 Composite documents (Xinclude) categorie: hoofdlijn Overview Doel: opnemen externe documenten in document (net als externe entities) maar met gewone XMLsyntax, en zonder bepaalde bezwaren die aan externe entities kleven. Identifying objects to include Op te nemen objecten worden met een URL aangeduid; wanneer het om gedeelten van documenten gaak kan XPointer gebruikt worden (zie hoofdstuk 28). Recursive processing Opgenomen documenten kunnen zelf weer documenten opnemen. Inclusion markup Deze standaard specificeert een namespace xi en daarbinnen twee elementen: <xi:include href=... /> <xi:fallback> alternatieve oplossing wanneer materiaal niet gevonden wordt (staat niet in Bradley) 17

18 Text inclusions naslag Duplicate entity and notation declarations naslag Including complete documents Externe documenten kunnen XML-decaratie en/of doctype declaratie bevatten. Deze worden verwijderd (anders is het resultaat-document niet welgevormd) Contextual base URLs XML Base is nuttig als het externe document verwijzingen bevat. Namespace complications naslag Illegal inclusions naslag Document modelling naslag Alternatives to XInclude Vergelijkbaar zijn: XLink. XLink maakt tijdelijke samengevoegde view; XInclude maakt nieuw document. externe entities. Twee stappen: declaratie en inclusie; alleen complete entities; samenvoeging alleen bij parsing. XInclude is eleganter en eenvoudiger mechanisme. XSLT implementation naslag 13 Navigation (XPath) categorie: technisch XPath wordt gebruikt om door een document te navigeren. Background De betekenis van element hangt af van de positie van het element in het document. Unique context Elk element in een XML document heeft een context. Common requirements De standaarden XPointer, XSLT, XQuery, en XML Schema maken gebruik van XPath Limitation of IDs 18

19 Mbv XPath kan je een element in een document selecteren. Een alternatieve selectiemethode is een ID bij ieder element te definieren, en vervolgens de ID gebruiken om een element te selecteren. Deze aanpak heeft echter duidelijk beperkingen, en het kost werk om IDs te definieren, en vervolgens weer te vinden. Expressions XPath gebruikt expressies om objecten in een XML document ( ǹodes') te selecteren. Een node kan zowel tekst, een element, of een attribuut zijn. Environments and syntax Het gebruik van XPath expressions in andere standaarden verschilt. In de meeste standaarden worden expressies in een attribuut gedeclareerd. Types of expressions Expressies worden gebruikt als lokatiepaden voor het beschrijven van een lokatie in een document, en als patronen om te bepalen of een element ergens in het document voorkomt. Single and multiple expressions Xpath expressions kunnen zowel geen, een of meerdere elementen selecteren. Simple location paths Relative paths Een relatief pad is een pad dat vanuit een bestaande lokatie in het document start. Hetzelfde relatieve pad selecteert verschillende elementen als het vanaf verschillende lokaties start. Een pad dat uit een enkele naam bestaat selecteert alle kind elementen van het huidige geselecteerde element. Multiple steps Mbv een expressie bestaande uit twee namen gescheiden door een /: naam1/naam2, worden alle kind elementen met naam2 uit de kind elementen met naam1 van het huidige geselecteerde element opgeleverd. `/'scheidt de twee stappen in dit selectieproces. Wildcard steps Het symbool * wordt gebruikt om een willekeurig element aan te geven. Dus naam1/* selecteert alle kindelementen direct onder onder het element naam1. Om een willekeurige diepte te specificeren gebruik je de symbolen //: naam1//naam2 selecteert alle voorkomens van naam2 onder naam1, met willekeurige elementen daartussen. Het symbool `.'wordt gebruikt voor het huidige element. Parents and grandparents De ouder van het huidige element wordt geselecteerd mbv... Absolute paths Er zijn twee manieren om een absoluut pad aan te geven: een pad dat begint met `/'begint in de root van het document, en een pad dat begint met een identifier id("...")/ begint in het element met die identifier. Complex location paths Voor flexibele navigatie worden àssen'gebruikt. 19

20 Close family parent::naam1 selecteert de elementen met de naam naam1 onder de ouder van het huidige element. Andere assen: child::, preceding-sibling::,following-sibling::. parent::node() is hetzelfde als `..'. Ancestors and descendants De assen ancestor:: en descendant:: selecteren ouders, respectievelijk kinderen (kleinkinderen etc.) op willekeurige diepte. Ancestors and descendants including current object De as ancestor-or-self:: (en descendant-or-self::) as neemt ook de huidige selectie mee. Remaining axis specifiers self:: selecteert de huidige selectie. attribute:: selecteert de attributen van de huidige node. De preceding:: as selecteert alle objecten die volledig voor (al afgesloten zijn) de huidige selectie komen. De following:: as selecteert alle objecten die volledig na (nog niet geopend zijn) de huidige selectie komen. Patterns Een patroon wordt gebruikt om te bepalen of een object aan een bepaalde conditie voldoet. Bijvoorbeeld, in het patroon naam2/naam1 wordt gecontroleerd of het huidige element wel de naam naam1 heeft, en de ouder naam2. Het symbool ` 'wordt gebruikt om de disjunctie van meerdere patronen te specificeren. Predicate filters Een predicate filter wordt gebruikt om een meer precieze selectie te kunnen specificeren. naam[...] betekent dat de queries tussen haken worden uitgevoerd op alle naam elementen. Position tests De position() functie geeft de sequentiele positie van het geteste element. Dus naam1[position()=1] (of naam1[1]) selecteert het eerste element met naam naam1. De filtering gebeurt pas nadat alle naam1 elementen zijn geselecteerd. Contained element tests naam1[naam2] selecteert alle naam1's die tenminste een naam2 bevatten. Ook op inhoud van een element kan getest worden: naam1[naam2="een tekst"] selecteert alle naam1's die een naam2 bevatten die de tekst "eentekst" bevat. Attribute tests De expressie naam1[@naam2=`een waarde'] selecteert alle naam1's waarvan het attribuut naam2 de waarde èen waarde'heeft. Boolean tests In een predicate filter mag gebruik gemaakt worden van de boolse functie not, van boolse operatoren and en or, en van vergelijkingsoperatoren =,!=, <=, etc. 20

21 Alle getallen behalve nul worden als true geinterpreteerd, net zoals niet lege lijsten en strings, en de `functie'true(). Strings De functie contains(een node,"bla") bepaalt of de string "bla" in een node voorkomt. Als de node een element is, dan worden ook alle subelementen doorzocht. De functie starts-with() bepaalt of een node (het eerste argument) begint met een gegeven tekst (het tweede argument). De functie translate(tekst,lijst1,lijst2) vertaalt alle voorkomens van characters uit de lijst1 in tekst door de characters op dezelfde positie uit lijst2. Als lijst1 langer is dan lijst2 worden de overgebleven symbolen verwijderd uit de tekst. substring-before(tekst,scheider) (substringafter(tekst,scheider)) geeft de substring van de tekst tot aan (na) het scheider symbool. Er is nog een tiental andere functie gedefinieerd op strings. Numbers De functie number() converteert waarden van andere types naar getallen. De functies round(), floor(), en ceiling() converteren reele getallen naar integers. De operatoren +, -, *, mod en div kunnen op integers gebruikt worden. Precedence Precedence voor de bovenstaande operatoren (van hoog naar laag) is als volgt: *, div, mod +, - <, >, <=, >= =,!= and or Multiple filters Filters kunnen worden samengesteld door ze achter elkaar te schrijven. Dus naam1[filter1][filter2] selecteert alle naam1 nodes die aan filter1 voldoen, en vervolgens aan filter2 voldoen. ID limitations Required effort Als je alleen maar IDs gebruikt om te selecteren moet je alle elementen een ID geven. Dit kan heel veel werk zijn. Voor specifieke subdocumenten is dit juist wel de geeigende manier. Limited scope Je kan geen ID's binden aan stukken tekst in je document. Knowledge of identifier Ook al ken je de DTD, vaak weet je niet van te voren welke namen de identifiers hebben die gebruikt worden in een document. Necessity for identifiers Vaak wil je bv alle paragrafen op dezelfde manier behandelen. Op dit moment zou het alleen maar onhandig zijn als je een paragraaf alleen maar via z'n ID zou kunnen selecteren. 21

22 14 Schemas categorie: conceptueel DTD limitations Bezwaren tegen DTDs: algemeen gebrekkige modelleerfunctionaliteit: aantal mogelijkheden uit SGML is verdwenen specifiek gebrekkige ondersteuning applicaties voor data-uitwisseling: normale datatypen ontbreken DTDs begrijpen namespaces niet aparte syntaxis: je kunt geen XML-tools gebruiken om DTDs te bewerken Alternative modelling languages Alternatieven staan bekend als schematalen. Alle hebben ze XML-syntaxis. De voornaamste zijn: RELAX NG: sterke logische onderbouwing XML (W3C) Schema: ondersteund door softwareindustrie Schematron: definieert regels waaraan document moet voldoen (in XSLT). Validatieregels kunnnen afhangen van productiestadium document XML Schemas bedoeld voor breed publiek krachtig maar eenvoudig backward-compatible met DTD Hoofdlijn schema syntaxis schema namespace (meestal gemarkeerd als xsd) De twee volgende secties beschrijven in feite hoe W3C-schema DTD-functionaliteit kan nabootsen. Er worden enkele uitbreidingen genoemd; andere zijn in college behandeld. Syntax van de declaraties hoeft niet gekend te worden. Element definitions any content simple content (string of ander datatype) complex content (overige, inclusief empty elementen en mixed content) sequence of choice nieuw: voorkomen van elementen kan geregeld worden met minoccurs en maxoccurs dit kan ook op modelgroepen worden toegepast mixed content kan preciezer gemodelleerd worden: kan sequence zijn, en minoccurs en maxoccurs kunnen worden gebruikt Attributes default: optional; #REQUIRED en #FIXED kunnen worden gespecificeerd normale attribuuttypen keuzegroepen Namespaces and schema references Validering van XML schema s als het te valideren document geen namespace definieert, moet er op een andere manier een schema aan het document worden gekoppeld 22

23 als het document wel een of meer namespaces bevat, moet de schema-processor het bijbehorende schema of schema s vinden en toepassen om aan te geven waar in een document materiaal toegestaan is dat tot een andere namespace behoort (en dus door een ander XML schema gevalideerd wordt) gebruik je in het XML schema een <any> element met daaraan gekoppeld de nieuwe namespace. er is ook een losse validering mogelijk, bij voorbeeld voor documenten die nog niet af zijn (processcontents attribuut). Including other models XML schema s kunnen uit componenten zijn opgebouwd (vergelijk parameter entities). Efficiency shortcuts Contentmodellen, attribuutdefinities en attribuutgroepen kunnen hergebruikt worden voor verschillende elementen. 16 Processing XML data Categorie: conceptueel Writing XML XML documenten kunnen met de hand worden geschreven, maar voor het uitwisselen van data is het gewenst XML automatisch te genereren. Outputting markup Het is eenvoudig om XML als tekst (strings) te genereren in de meeste programmeertalen. Escaping special characters Vergeet niet dat je sommige characters moet escapen. Creating lines Om het output document leesbaar te maken is het verstandig ook newlines in het output document te genereren, zodat de output niet op een lange regel staat. Ook kunnen dan regelnummers worden gebruikt in foutmeldingen. Het enige probleem zou kunnen zijn dat een XML tool betekenis toekent aan linebreaks/newlines. Reading XML Reading XML Het inlezen van XML is niet altijd eenvoudig door een aantal subtiele concepten in de taal. Voor de meeste programmeertalen bestaan er echter al libraries voor het inlezen van XML (XML parsers). XML processors Een XML processor stelt de inhoud van een XML document ter beschikking aan de gebruiker. Een XML processor bevat een entity manager die zorgt voor het vinden van document fragmenten in entity declarations. De meeste XML processors hebben ook en ìntegriteitschecker'of parser. Deze controleert of een document well-formed is, en controleert mogelijk of het document aan een DTD voldoet. Er zijn twee manieren om de data in een XML document aan de gebruiker ter beschikking te stellen: event-driven of tree-walking. Voor beide manieren bestaan API's (Application Programmers Interfaces): SAX en DOM. 23

24 Event processing Als een XML processor event-based parsing ondersteunt, dan bevat het functies die aangeven wat te doen als er een opentag in de invoer staat, od een DTD declaratie, etc. Single-pass limitations Als de structuur van het resultaat niet exact de structuur van de input volgt moet je meerdere keren over het document lopen. Simple API for XML (SAX 1.0) Als je gebruik maakt van een standaard API voor het processen van XML data, dan is je applicatie makkelijker te porten naar andere programmeertalen en platformen. Hoewel SAX niet door een standaarden organisatie is ontwikkeld, is het wel de de facto standaard voor event-based XML processing. Tree manipulation De meeste XML processors ondersteunen ook een tree-walking methode voor het benaderen van de data. De XML processor leest het volledige document in memory, en staat vervolgens willekeurige traversals over de boom van het document toe. Nodes Elke node wordt door de tree-walking XML processor als een apart object, met een bijbehorend type, in memory opgeslagen. Properties Elke node bevat informatie over zichzelf in zogenaamde properties. Elke property heeft een naam en een waarde. Iedere node heeft tenminste het type property. Connected nodes Een property mag ook naar een andere node verwijzen. Zo'n verwijzing wordt een arc genoemd. Hierarchical structures De hierarchische structuur van XML documenten kan mbv arcs gecopieerd worden in nodes. Het bewaren van de sequentiele structuur is ietsje lastiger, maar niet onmogelijk. Non-hierarchical structures Verzamelingen nodes representeren niet noodzakelijk alleen maar bomen: het is ook mogelijk grafen te representeren in nodes. Document Object Model (DOM 1.0) De DOM standaard is een API voor tree-walking toegang tot XML documenten. Processing approach decisions Pull method Als je in je programmeertaal geen gebruik van de SAX of DOM kan maken kan je proberen een pull methode te gebruiken: de events uit de invoer worden aan de gebruiker ter beschikking gesteld. Event or DOM Event benefits De event-driven aanpak is vooral geschikt voor het processen van grote hoeveelheden data omdat niet alle data in memory hoeft te zijn. 24

25 Tree-walking benefits Als je voor je toepassing het XML document in niet-lineaire volgorde wilt bekijken, of de data meerdere keren wilt processen, dan is de tree-walking aanpak beter geschikt. Ook is het makkelijker te controleren of een document aan een DTD voldoet. Transformation tools Voor veel toepassingen is het niet nodig een document te ontleden, een bewerking uit te voeren, en het document weer weg te schrijven met de boven beschreven technieken. Sommige scripting talen of XSLT kunnen ook een goede oplossing bieden. 17 Transformations (XSLT) Categorie: technisch Overview XSLT (extensible Stylesheet Language Transformations) wordt gebruikt om documenten te transformeren. XSLT and XSL XSL XSL was bedoeld om het gat tussen het eenvoudige CSS en het complexe DSSSL te vullen. XSLT extracted from XSL Oorspronkelijk bevatte XSL zowel een taal voor het specificeren van hoe een document gepubliceerd moet worden, als voor het specificeren van transformaties. Deze twee talen zijn nu gesplitst in XSL en XSLT. XSLT and XSL together XSLT en XSL worden veel samen gebruikt voor het transformeren en vervolgens publiceren van documenten. XSLT DTD Een XSLT document gebruikt elementen uit de namespace General structure Het root element van een XSLT document heet stylesheet (of transform). Een XSLT document mag ook in een ander XML document voorkomen. De processing instruction in het XML document die de te gebruiken stylesheet aangeeft bevat dan een pointer naar het Id attribuut van de stylesheet. Templates De body van een stylesheet kan templates bevatten. Bradley schrijft dat er tenminste een template moet zijn, maar als je er geen schrijft, dan wordt de default template gebruikt. Multiple element template Een template kan op meerdere elementen worden toegepast door de elementen in de match expressie van de template op te sommen, gescheiden door een. Ook kan hier gebruik gemaakt worden van een wildcard. Context Mbv XPath expressies kan de vereiste context van een element in de match expressie gespecificeerd worden. 25

26 Recursive processing In XSLT moet je expliciet aangeven welke kinderen je wilt verwerken. Applying templates Mbv het apply-templates element kan je aangeven dat de kinderen van het huidige element verwerkt moeten worden. Default template Alle XSLT processoren hebben een default rule die gebruikt wordt als geen van de templates matched. De default rule verwerkt alle kinderen van het element waarop het aangeroepen wordt. Text processing default De default rule voor text nodes kopieert de tekst naar de output. PIs and comments Processing instructions en comments worden niet default geprocessed. Selective processing Het apply-templates element werkt overal. Dat kan soms wat teveel van het goede zijn. Specific children Mbv het select attribuut van het apply-templates element kan je door een XPath expressie meer precies specificeren welke nodes je wilt verwerken. Specific descendants en Specific elements elsewhere Met de XPath expressie in het select attribuut van het apply-templates element kan je niet alleen specifieke kinderen selecteren, maar ook nodes dieper in de boom, of elders in het document. Multiple passes Het apply-templates element kan meerdere keren gebruikt worden in een template. Priorities Er kan maar een template tegelijk op een node toegepast worden. Soms matchen meerdere templates. In dat geval wordt de template met de hoogste prioriteit gebruikt. Default weightings Elke match expressie heeft een prioriteit tussen -0.5 en 0.5. Hoe specifieker de match expressie, hoe hoger de prioriteit. Overriding Mbv het priority attribuut van het template element kan je zelf de prioriteit van een template geven. Output XSLT wordt gebruikt om output documenten te produceren. Direct element output Mbv namespaces kan je direkt output elementen in de templates specificeren. Alle niet XSLT elementen worden geinterpreteerd als output elementen. De stukken document die als output worden gegeven moeten well-formed zijn. 26

27 Ignoring extension elements In een stylesheet kan je in het extension-element-prefixes attribuut aangeven welke processor-specifieke uitbreidingen op de XSLT standaard meegenomen moeten worden. Namespaces aliases Je kan in een stylesheet een alias voor een namespace prefix gebruiken, zodat de namespace prefix in de output verschilt van de in de stylesheet gebruikte namespace prefix. Gebruik hiervoor het element namespace-alias met de attributen stylesheet-prefix en result-prefix. Comments and processing instructions Mbv de comment en processing-instruction elements kunnen comments en processing instructions in de output geconstrueerd worden. Prefix and suffix text Mbv tekst voor of na het apply-templates element in een template wordt tekst geconstrueerd in de output. Reserved characters Om ervoor te zorgen dat entities niet vervangen worden door hun waarde, of juist wel, wordt het disableoutput-escaping attribuut van het text element gebruikt. CDATA sections Mbv het CDATA Section Elements attribuut van het output element kan gespecificeerd worden welke elementen direkt een CDATA sectie bevatten in de output. Text mode output In het method attribuut van het output element kan je specificeren of je text of html wilt produceren. In de text output worden alle tags genegeerd. HTML mode output Omdat lege elementen van HTML zoals <BR> niet voldoen aan de XML standaard, kan je als output method html opgeven, en de lege elementen op de XML manier, <BR/> in je templates schrijven. Media type In het media type attribuut van het output element kan je het internet MIME type van het output document geven. Breaking well-formed constraints Mbv het disable-output-escaping attribuut van het text element kan je ook de well-formedness eis omzeilen. Whitespace Als een template alleen whitespace bevat tussen twee output tags, dan komt deze whitespace niet terecht in de output. Preserve space Als je de whitespace wilt bewaren voor een element, dan moet je dit element opnemen in het elements attribuut van het preserve-space element. Indentation Het indent attribuut van het output element wordt gebruikt om aan te geven of de output de hierarchische structuur van een document met indentatie aan moet geven. 27

28 Stylesheet space Alleen in het text element wordt whitespace standaard naar de output geschreven. Sorting elements Het sort element wordt gebruikt in het apply-templates element om de kind-elementen te sorteren, waarbij gesorteerd wordt op inhoud. Basic sorting Je kan in het sort element mbv van het select attribuut aangeven hoe de kind-elementen gesorteerd moeten worden. Secondary sorting Door meerdere sort elementen te geven kan je ook een `secondary key'aangeven om mee te sorteren (als de `primary key'geen onderscheid maakt tussen twee elementen). Sort options In het order attribuut van sort kan je aangeven of de items in oplopende of aflopende volgorde moeten worden gepresenteerd. Het data type attribuut wordt gebruikt om bv in numerieke volgorde ipv tekstuele volgorde te sorteren. Automatic numbering Mbv het number element kan je er voor zorgen dat ieder element in een lijst van elementen een nummer krijgt. Simple numbering Mbv het level attribuut van het element number kan je aangeven of er door het hele document doorgenummerd moet worden, of alleen onder het huidige element. Re-start numbering Mbv het from attribuut van het element number kan je aangeven binnen welk element je moet beginnen met nummeren. Multi-part numbering Door het attribuut level de waarde multiple te geven kan je meer complexe manieren van nummeren krijgen. In het format attribuut geef je aan hoe het formaat van je nummering eruit ziet, en in het count attribuut geef je aan welke elementen genummerd worden. Advanced formatting Het element number heeft nog een aantal meer attributen, die meer flexibiliteit geven in het formaat van de nummers. Sorted output numbering Als je elementen sorteert en nummert, gebeurt het nummeren eerst. Vaak is dit ongewenst. Om de elementen te nummeren in de uiteindelijke volgorde kan je het attribuut value de waarde position() geven. Modes Om informatie op verschillende manieren te behandelen kan je het mode attribuut gebruiken. Voor verschillende modes kan je verschillende templates definieren, en in het apply-templates element kan je dan vervolgens de mode selecteren waarop je het huidige template van toepassing wilt laten zijn. 28

29 Variables and named templates Variables Als je meerdere malen dezelfde waarde gebruikt in je templates, dan kan je een zogenaamde variable definieren met die waarde, en vervolgens de variable gebruiken. Een variable kan niet veranderd worden. Een variable kan je gebruiken in output tekst door in het value-of element het attribuut select de variable naam, voorafgegaan door een $ mee te geven. Om een variable te gebruiken in output elements moet je verzamelingshaken om de variable plaatsen. Named templates Met behulp van named templates kan je `functies'definieren. Bradley geeft in eerste instantie alleen maar het voorbeeld van het toepassen van dezelfde template op verschillende elementen. Je definieert een named template door in het template de naam in het attribuut name te specificeren. Je gebruikt een named template door in het element call-templates het attribuut name te specificeren. Template parameters Named templates worden pas functies als je ze parameters mee geeft. Een parameter definieer je mbv het element param met een attribuut name, en de default waarde in de content. Je kan de default waarde van een parameter overschrijven door in het element with-param, met het attribuut name van de parameter, een nieuwe waarde voor de parameter in de content te specificeren. Het element with-param wordt in het element call-template meegegeven. Ook in het apply-templates element kunnen parameterwaarden worden meegegeven. Die worden dan gebruikt op de plekken waar ze aangeroepen worden. Using attribute values Attribuutwaarden kunnen worden gecopieerd naar attribuutwaarden in de output door ze vooraf te laten gaan door en er verzamelingshaken omheen te schrijven. Om attribuutwaarden te gebruiken in de output tekst gebruik je het element value-of, met het attribuut select, waarin je de attribuutnaam vooraf laat gaan door Creating and copying elements XSLT bevat een aantal mechanismen voor het construeren van XML output. Create element Je kan een element construeren in het outputdocument door het element èlement'te gebruiken, met de attributen namespace en name. Het name attribuut kan een expressie bevatten, en kan dus bv met behulp van een parameter worden gespecificeerd. Copy element Met behulp van het copy element kan je elementen uit het source document rechtstreeks naar het output document copieren. De attributen worden echter niet gecopieerd. Attaching attributes Met behulp van het element àttribute'met het attribuut name kan je een attribuut in de output specificeren. Attribute sets Met behulp van het element attribute-set element, met attribuut name, kan je een verzameling attributen definieren, die je vervolgens bij bv verschillende elementen kan gebruiken, door in het copy, element, attribute of attribute-set het attribuut use-attribute sets, samen met de name mee te geven. Copy document fragment Met behulp van het copy-of element, met het select attribuut, kan je hele document fragmenten copieren. In tegenstelling tot het copy element copieert het copy-of element wel alle attributen en kinderen. 29

XML Introductie.

XML Introductie. XML Introductie joost.vennekens@denayer.wenk.be http://telescript.denayer.wenk.be/~jve extenstible Markup Language Aanbrengen van extra informatie in tekst Betekenis van de tekst beschrijven Uitbreidbaar:

Nadere informatie

DTD - Inleiding. Document Type Definitions (DTDs)

DTD - Inleiding. Document Type Definitions (DTDs) DTD document Type Definition inleiding dtd - Elementen dtd - Attributen dtd - Commentaar dtd En verder... dtd

Nadere informatie

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

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.:

Nadere informatie

XML Introductie. joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost

XML Introductie. joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost XML Introductie joost.vennekens@kuleuven.be http://www.cs.kuleuven.be/~joost extensible Markup Language Aanbrengen van extra informatie in tekst Betekenis van de tekst beschrijven Uitbreidbaar: afhankelijk

Nadere informatie

Zelftest XML Concepten

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

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Programmeren. Cursus Python

Programmeren. Cursus Python Programmeren Cursus Python Cursus Python Omschrijving In deze cursus leren de deelnemers te programmeren in de objectgeoriënteerde programmeertaal Python. Python is een taal die vaak wordt gebruikt voor

Nadere informatie

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

De mogelijkheden van XML voor de langdurige bewaring van digitale documenten. DAVID studiedag 30 nov 2000 De mogelijkheden van XML voor de langdurige bewaring van digitale documenten DAVID studiedag 30 nov 2000 Prof. Jan Engelen, Steven Depuydt K.U.Leuven - ESAT Onderzoeksgroep Document Architecturen Waarom

Nadere informatie

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

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.:

Nadere informatie

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. 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)

Nadere informatie

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

XPath voor beginners. HVA-IAM-V1-TDI Internetstandaarden 2 2008/2009. Fons van Kesteren XPath voor beginners HVA-IAM-V1-TDI Internetstandaarden 2 2008/2009 Fons van Kesteren 1 Inhoud Inleiding... 3 XPath paden... 4 Absoluut pad... 4 Relatief pad... 4 Eenvoudige stappen... 5 Element... 5 Attribuut...

Nadere informatie

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml DOWNLOAD OR READ : OPEN STANDAARD HYPERTEXT MARKUP LANGUAGE INTERNETPROTOCOL TRANSMISSION CONTROL PROTOCOL INTERNET RELAY CHAT OFFICE OPEN XML PDF EBOOK EPUB MOBI Page 1 Page 2 relay chat office open xml

Nadere informatie

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

Zo kan je linken maken tussen je verschillende groepen van gegevens. 1 1. Entity Reference Entity Reference zal ook een onderdeel zijn van Drupal 8. Het is een module van het type veld. Het is een heel krachtige module die toelaat om referenties te maken tussen verschillende

Nadere informatie

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

Zelftest XML Basis. Document: n1006test.fm 25/01/2017. ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium Zelftest XML Basis Document: n1006test.fm 25/01/2017 ABIS Training & Consulting P.. Box 220 B-3000 Leuven Belgium TRAINING & CNSULTING INLEIDING m een idee te hebben van wat we verwachten als voorkennis

Nadere informatie

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise

TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise TaskCentre Web Service Connector: Creëren van requests in Synergy Enterprise Inhoudsopgave 1. Voorbereiding... 4 2. Web Service Connector tool configuratie... 5 3. TaskCentre taak voor het aanmaken van

Nadere informatie

Oefenvragen OMI 2005-2006 eerste helft

Oefenvragen OMI 2005-2006 eerste helft Oefenvragen OMI 2005-2006 eerste helft Hoewel de beide toetsen uitsluitend uit multiple-choice-vragen zullen bestaan, volgen hieronder onder zowel een aantal open vragen als meerkeuzevragen. De eerste

Nadere informatie

APEX Templates. OGH APEX dag 30 maart. Art Melssen. 31 maart 2010

APEX Templates. OGH APEX dag 30 maart. Art Melssen. 31 maart 2010 APEX Templates OGH APEX dag 30 maart Art Melssen Introductie Over de spreker 4 jaar APEX ervaring / 7 jaar Oracle 10 jaar web technologie ervaring APEX trajecten o.a. bij Centraal Boekhuis en eboekhuis

Nadere informatie

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

XML. Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Marc de Graauw http://www.marcdegraauw.com/ XML Alle tekortkomingen op een rijtje! (en een paar pluspunten...) De geschiedenis van XML SGML Standard Generalized Markup Language IBM: back to the sixties... Markup: structuur, niet processing HTML:

Nadere informatie

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

Info-books. Toegepaste Informatica. Deel 35: XML - XSL HO35. Jos Gils Erik Goossens Info-books HO35 Toegepaste Informatica Deel 35: XML - XSL Jos Gils Erik Goossens Hoofdstuk 5 Het Document Object Model 5.1 Probleemstelling Wanneer je de inhoud van een document en de presentatie uiteen

Nadere informatie

Rd 1 MULTIMEDIA DEEL2

Rd 1 MULTIMEDIA DEEL2 1 MULTIMEDIA DEEL2 2 XML. Xml documenten geven een groter gemak in uitwisselen van gegevens. In de jaren 80 had men de EDI of Electronic Data Interchange Daaruit volgde dan SGML ofd Standard Generalized

Nadere informatie

Frontend ontwikkeling

Frontend ontwikkeling Frontend ontwikkeling Mark Jansen Edwin Vlieg PHPFreakz ledendag 10 november 2007 Frontend ontwikkeling De interface is je product richting de eindgebruiker Goede PHP code met een slechte interface geeft

Nadere informatie

Y.S. Lubbers en W. Witvoet

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-

Nadere informatie

Schrijven voor het web. 1TIN Internettechonologie 2003-2004 les 02 1

Schrijven voor het web. 1TIN Internettechonologie 2003-2004 les 02 1 Schrijven voor het web 1TIN Internettechonologie 2003-2004 les 02 1 Verschillen met gewone teksten niet noodzakelijk sequentieel lezen webpagina globaal lezen (geen details) beantwoorden aan doel van bezoek?

Nadere informatie

Zelftest Inleiding Programmeren

Zelftest Inleiding Programmeren Zelftest Inleiding Programmeren Document: n0824test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INLEIDING BIJ DE ZELFTEST INLEIDING PROGRAMMEREN Deze

Nadere informatie

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double.

Datatypes Een datatype is de sort van van een waarde van een variabele, veel gebruikte datatypes zijn: String, int, Bool, char en double. Algemeen C# Variabele Een variabele is een willekeurige waarde die word opgeslagen. Een variabele heeft altijd een datetype ( De soort waarde die een variabele bevat). Datatypes Een datatype is de sort

Nadere informatie

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 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

Nadere informatie

simplebim KUBUS templates

simplebim KUBUS templates Om het gebruik van simplebim voor Nederlandse en Belgische bedrijven te vergemakkelijken heeft KUBUS een aantal templates samengesteld. Door gebruik van deze templates is een efficiëntere inzet van simplebim

Nadere informatie

XSL = XSLT + XSL-FO + XPath

XSL = XSLT + XSL-FO + XPath Hoofdstuk 5 : XSLT 1. XSL Inleiding 2. XSLT Inleiding 3. Verwijzen naar XSLT in XML 4. XSLT document 5. XSLT elementen 6. XSLT Oefeningen 7. XSLT Data Types 8. XSLT Elementen(vervolg) 9. XSLT : XML to

Nadere informatie

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64

Toon TITEL, JAAR en PLATVORM van GAMES die voor het jaar 2000 uitkwamen op Nintendo 64 Klas Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters JONGENS Number Integer MEISJES Number Integer Lessen Veldnaam Datatype Lengte KLASNAAM Short Text 3 Characters DOCCODE Short Text 3 Characters

Nadere informatie

BRP-BZM Use Case Realisations Guidelines

BRP-BZM Use Case Realisations Guidelines BRP-BZM Use Case Realisations Guidelines Versie 2.0 02-09-2011 Definitief Versiehistorie Datum Versie Auteur 23-12-2010 0.1 Eerste versie R.F. Schaaf 04-01-2011 1.0 Feedback verwerkt R. Schaaf en D. Geluk

Nadere informatie

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan: - XSL-FO Vrijwel alle namen van software- en hardwareproducten die in deze cursus worden genoemd, zijn tegelijkertijd ook handelsmerken en dienen dienovereenkomstig te worden behandeld. Alle rechten voorbehouden.

Nadere informatie

Datastructuren Werkcollege Intro

Datastructuren Werkcollege Intro Bart Hijmans, Universiteit Leiden. Universiteit Leiden The Netherlands Focus 1 19 ˆ Ervaring in gebruik en implementatie van datastructuren ˆ Kennis van mogelijkheden ˆ Programmeren voor andere programmeurs

Nadere informatie

DocBook XML documenten bewerken

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

Nadere informatie

Selenium IDE Webdriver. Introductie

Selenium IDE Webdriver. Introductie Selenium IDE Webdriver Het Wielsem 10, 5231 BW s- Hertogenbosch, telefoon 073-6409311 e- mail info@testwork.nl internet http://www.testwork.nl 1 Inhoudsopgave 1 Inhoudsopgave... 2 2 Selenium IDE... 3 3

Nadere informatie

Software 1. Basis HTML. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2009-2010 semester 1

Software 1. Basis HTML. bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2009-2010 semester 1 Software 1 Basis HTML bachelor grafische en digitale media cross-media ontwerp & grafimediatechnologie academiejaar 2009-2010 semester 1 Alain Simons alain.simons@artesis.be Basis HTML 1. Introductie 2.

Nadere informatie

Intermax backup exclusion files

Intermax backup exclusion files Intermax backup exclusion files Document type: Referentienummer: Versienummer : Documentatie 1.0 Datum publicatie: Datum laatste wijziging: Auteur: 24-2-2011 24-2-2011 Anton van der Linden Onderwerp: Documentclassificatie:

Nadere informatie

RULES RELEASE EVENTS. Mavim. Rules 7 Rules 8 Rules 9. Rules 2008

RULES RELEASE EVENTS. Mavim. Rules 7 Rules 8 Rules 9. Rules 2008 MICHEL ECKERSLEY RULES RELEASE EVENTS 2008 2012 2014 2016 2017 Rules 2008 Rules 7 Rules 8 Rules 9 Mavim MAVIM MANAGER & PORTAL MAVIM MANAGER MAVIM PORTAL USER INTERFACE Nieuwe Iconen Aansluiting Mavim

Nadere informatie

Aangekondigde vernieuwingen SOLIDWORKS 2017

Aangekondigde vernieuwingen SOLIDWORKS 2017 Aangekondigde vernieuwingen SOLIDWORKS 2017 BI-DIRECTIONAL CIRCULAR PATTERN - Circulair patroon in beide richtingen. MULTI-DISTANCE CHAMFER - Meerdere afmetingen in een feature. VARIABLE CHAMFER - Verlopende

Nadere informatie

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003

SQL Aantekeningen 3. Maarten de Rijke mdr@science.uva.nl. 22 mei 2003 SQL Aantekeningen 3 Maarten de Rijke mdr@science.uva.nl 22 mei 2003 Samenvatting In deze aflevering: het selecteren van tuples, operaties op strings, en aggregatie functies. Verder kijken we naar iets

Nadere informatie

Nederlands WMS - SLD Profiel. Versie 1.0

Nederlands WMS - SLD Profiel. Versie 1.0 Nederlands WMS - SLD Profiel Versie 1.0 Ravi: een profiel Ravi, netwerk voor geo-informatie Stichting Ravi is een netwerkorganisatie in het publieke domein en richt zich op de ruimtelijke ontwikkeling

Nadere informatie

Temperatuur logger synchronisatie

Temperatuur logger synchronisatie Temperatuur logger synchronisatie Juni 10, 2010 1 / 7 Temperatuur logger synchronisatie Introductie Twee of meerdere ontvangers van het Multilogger systeem kunnen met de temperature logger synchronisatie

Nadere informatie

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model...

1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 1. Inleiding... 2 1.1. Inleiding SQL... 3 1.1.1. Inleiding... 3 1.1.2. Database, databaseserver en databasetaal... 4 1.1.3. Het relationele model... 4 1.1.4. Wat is SQL?... 6 1.1.5. Verschillende categorieên

Nadere informatie

OAS en het Kennisplatform API s. Dimitri van Hees

OAS en het Kennisplatform API s. Dimitri van Hees OAS en het Kennisplatform API s Dimitri van Hees (@dvh) RESTful API HTTP/web interface/api die aan veel, maar niet alle, principes van REST voldoet. REST is geen doel op zich, het aanbieden van een goede

Nadere informatie

Icoon/Icon Betekenis Description. Change scheduling Online. Gaat offline op (datum/tijd) Online. Going offline on (date/time)

Icoon/Icon Betekenis Description. Change scheduling Online. Gaat offline op (datum/tijd) Online. Going offline on (date/time) Algemeen/General Gepubliceerd maar gewijzigd Published but changed Meer acties op geselecteerde content More actions on selected content Gepubliceerd en niet gewijzigd Published and not changed Terugdraaien

Nadere informatie

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6

BEFDSS. Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Het Belgische uitwisselingsformaat voor onderzoekgegevens afkomstig van visueel rioolonderzoek. 1/12/2006 1 / 6 Inhoudstafel... 1 1 Voorwoord... 3 2 De samenstelling van het uitwisselingsformaat... 4 3

Nadere informatie

Tips & Trucs ARCHICAD 117: Programma van Eisen add-on voor KeyMembers

Tips & Trucs ARCHICAD 117: Programma van Eisen add-on voor KeyMembers Tips & Trucs ARCHICAD 117: Programma van Eisen add-on voor KeyMembers Met de Programma van Eisen add-on kan eenvoudig een programma van eisen worden ingelezen vanuit een excel bestand, waarbij snel zones

Nadere informatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie Spectrum in een nieuw jasje Edward Vanhoutte & Ron Van den Branden Centrum voor Teksteditie en Bronnenstudie Koninklijke Academie voor

Nadere informatie

Technisch Ontwerp W e b s i t e W O S I

Technisch Ontwerp W e b s i t e W O S I Technisch Ontwerp W e b s i t e W O S I WOSI Ruud Jungbacker en Michael de Vries - Technisch ontwerp Website Document historie Versie(s) Versie Datum Status Omschrijving / wijzigingen 0.1 20 nov 2008 Concept

Nadere informatie

Introductie OWMS 3.5

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

Nadere informatie

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

Enterprise Connectivity. Marnix van Bo. TU Delft Elek Software Architect 20 jaar ervarin ontwikkeling Fir rst Base Enterprise Connectivity Marnix van Bo chove First Base: opgericht in 2001 TU Delft Elek ktrotechniek - 1998 Software Architect 20 jaar ervarin g met software ontwikkeling Presentatie Ideeën

Nadere informatie

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

Adlib Gebruikersdag 2012. adlibxml/xslt in de praktijk Breukelen 2 mei 2013 Solino de Baay s.debaay@adlibsoft.com Adlib Gebruikersdag 2012 adlibxml/xslt in de praktijk Breukelen 2 mei 2013 Solino de Baay s.debaay@adlibsoft.com Programma XML en adlibxml Transformeren XSL Elementen Functies Xpath De praktijk 2 XML XML

Nadere informatie

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET

Visual Basic.NET. Visual Basic.NET. M. den Besten 0.3 VB. NET Visual Basic.NET M. den Besten 0.3 VB. NET Inhoud Voorwoord Deel 1 Visual Basic.NET 1.1 Inleiding...13 1.2 De programmeertaal Visual Basic.NET...14 1.3 Microsoft Visual Basic 2010 Express Edition...15

Nadere informatie

Ontwerprichtlijnen voor XML-Schemadefinities

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

Nadere informatie

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

Eisen aan, en toelichting op, het gebruik van XBRL instance documenten gebaseerd op de Nederlandse Taxonomie versie 10.a.x Een initiatief van de Nederlandse overheid NL-FRIS Eisen aan, en toelichting op, het gebruik van XBRL instance documenten gebaseerd op de Nederlandse Taxonomie versie 10.a.x Versie: NT Colofon Documentnaam:

Nadere informatie

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports)

Rapporten. Labels en Rapporten in Atlantis 1. Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports) Labels en Rapporten in Atlantis 1 Atlantis heeft twee manieren om output te genereren: 1. labels 2. rapporten (reports) Rapporten Een rapport is eigenlijk altijd een tekst bestand, die vorm wordt gegeven

Nadere informatie

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

Module V - XML. Stefan Flipkens - Cursus: Internet - Intranet (2004-2005) V 1 Module V - XML Extensible Markub Language is een eenvoudig en flexibel text-formaat voor de opslag van data. Het is een meta opmaak (markup) taal voor de beschrijving van gestructureerde gegevens. De stukjes

Nadere informatie

H AN D L E I DI N G FORM U LI E RM AK E R

H AN D L E I DI N G FORM U LI E RM AK E R FORMULIERMAKER H AN D L E I DI N G FORM U LI E RM AK E R Versie 1.3 gepubliceerd op 21 februari 2012 D e onderdelen van een f ormul i er Met de formuliermaker (formbuilder) kunt u binnen uw website op

Nadere informatie

Software Factories. Toepassing van Domain Specific Languages. achtergrond

Software Factories. Toepassing van Domain Specific Languages. achtergrond In de software-industrie zijn budget- en deadline-overschrijdingen aan de orde van de dag, er wordt vaak niet aan de gestelde verwachtingen voldaan. Dit kan worden voorkomen door software-ontwikkeling

Nadere informatie

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.

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 info@darwin-it.nl KvK 27283780 ING 65.35.40.663 Technical Architect Net als (vrijwel) elke ontwikkelaar vind ik het documenteren

Nadere informatie

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

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

Nadere informatie

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces

Software Processen. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1. Het software proces Software Processen Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 4 Slide 1 Het software proces Een gestructureerd set van activiteiten nodig om een software systeem te ontwikkelen Specificatie;

Nadere informatie

Module XML. Algemene XML sites

Module XML. Algemene XML sites XML databanken en DataManagement xml wilfried Van de Velde wilfried.vandevelde@hogent.be

Nadere informatie

Sparse columns in SQL server 2008

Sparse columns in SQL server 2008 Sparse columns in SQL server 2008 Object persistentie eenvoudig gemaakt Bert Dingemans, e-mail : info@dla-os.nl www : http:// 1 Content SPARSE COLUMNS IN SQL SERVER 2008... 1 OBJECT PERSISTENTIE EENVOUDIG

Nadere informatie

Les 2 Eenvoudige queries

Les 2 Eenvoudige queries Les 2 Eenvoudige queries XAMP Apache server ( http ) mysql server PHP myadmin IAM SQL oefeningen Database phpmyadmin Import : sql_producten.sql, sql_winkel.sql, sql_festival.sql SAMS SQL in 10 minuten

Nadere informatie

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019

MADASTER PLATFORM. IFC export in BIM software. Archicad 21 & Revit 2019 MADASTER PLATFORM IFC export in BIM software Archicad 21 & Revit 2019 Juni 2018 Inleiding Deze handleiding dient ter ondersteuning van het importeren van uw gebouw naar het Madaster platform. Om u bestand

Nadere informatie

SBR Filing Rules Mogelijke toekomstige regels

SBR Filing Rules Mogelijke toekomstige regels SBR Filing Rules Mogelijke toekomstige regels Datum: 13 januari 2016 Versie: 0.95 Kenmerk: SBR/NT11/FR-T/0.95 Inhoudsopgave Inhoudsopgave... 2 Versie historie... 3 1 Inleiding... 4 1.1 Doel van dit document...

Nadere informatie

Het ontwikkelen van XML-tools

Het ontwikkelen van XML-tools Het ontwikkelen van XML-tools Johan Jeuring Abstract XML wordt in veel situaties gebruikt, en voor dat gebruik worden talloze tools gebouwd. Er zijn verschillende manieren om XML-tools te ontwikkelen,

Nadere informatie

Bitrix Site Manager gebruikershandleiding BureauZuid

Bitrix Site Manager gebruikershandleiding BureauZuid Bitrix Site Manager gebruikershandleiding BureauZuid Introductie Deze gebruikershandleiding geeft gedetailleerde basisinformatie over hoe te werken met Bitrix Site Manager. Deze handleiding is bedoeld

Nadere informatie

Kleine cursus PHP5. Auteur: Raymond Moesker

Kleine cursus PHP5. Auteur: Raymond Moesker Kleine cursus PHP5 Auteur: Raymond Moesker Kleine cursus PHP PHP is platform en CPU onafhankelijk, open source, snel, heeft een grote userbase, het is object georiënteerd, het wordt omarmd door grote bedrijven

Nadere informatie

Een ASP.NET applicatie opzetten. Beginsituatie:

Een ASP.NET applicatie opzetten. Beginsituatie: Hoofdstuk 1 Een ASP.NET applicatie opzetten Beginsituatie: Windows XP Pro, Windows Vista Pro of Windows 7 Pro Visual Studio.NET moet zijn geïnstalleerd. Let hierbij op dat de Express versie niet voldoet.

Nadere informatie

Een korte samenvatting van enkele FORTRAN opdrachten

Een korte samenvatting van enkele FORTRAN opdrachten Een korte samenvatting van enkele FORTRAN opdrachten Inhoud 1 Introductie 3 2 De structuur van een FORTRAN programma 3 3 Datatypen, variabelen en declaraties 3 4 Expressies-volgorde van uitwerking 4 5

Nadere informatie

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld

De architect: in spagaat tussen mensen en technische details. Illustratie met een simpel voorbeeld De architect: in spagaat tussen mensen en technische details Illustratie met een simpel voorbeeld Illustratie van stap voor stap naar een architectuur aan de hand van een voorbeeld Overview Exercise Assistant:

Nadere informatie

Software Test Plan. Yannick Verschueren

Software Test Plan. Yannick Verschueren Software Test Plan Yannick Verschueren November 2014 Document geschiedenis Versie Datum Auteur/co-auteur Beschrijving 1 November 2014 Yannick Verschueren Eerste versie 1 Inhoudstafel 1 Introductie 3 1.1

Nadere informatie

Mogelijkheden RSS content in MailPlus

Mogelijkheden RSS content in MailPlus RSS setup In dit document wordt beschreven hoe je RSS-feeds automatisch kan inladen in e-mailtemplates in MailPlus. Het document is bedoeld als handvat voor de optimalisatie voor RSS-feeds 1. Mogelijkheden

Nadere informatie

Tips & Trucs KUBUS Spexx 001: Koppeling van BIM model naar KUBUS Spexx

Tips & Trucs KUBUS Spexx 001: Koppeling van BIM model naar KUBUS Spexx Tips & Trucs KUBUS Spexx 001: Koppeling van BIM model naar KUBUS Spexx Verschillende BIM-pakketten zoals Solibri Model Checker, ArchiCAD en REVIT, zijn in staat een export bestand te genereren, waarin

Nadere informatie

Acht stappen voor JSF

Acht stappen voor JSF Acht stappen voor JSF Inleiding In deze tutorial zullen we JSF (Java server faces) installeren. Wat we niet beschrijven is hoe te werken met JSF, over dit onderwerp zijn er genoeg boeken en internetsites

Nadere informatie

SQL datadefinitietaal

SQL datadefinitietaal SQL datadefinitietaal We kunnen er het schema van de database mee bepalen: metadata toevoegen, wijzigen en verwijderen uit een database. Basiscommando's: CREATE : toevoegen van metagegevens DROP : verwijderen

Nadere informatie

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor

Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor Deel 2: Endnote bibliografische software gebruiken als databasemanager en editor Versie feb. 2015 pag. 38 Endnote output: 1. Organiseer je database 2. Doorzoek de referenties in je database 3. Publiceren,

Nadere informatie

Project Professional 2010 of Project Web App (PWA) 2010?

Project Professional 2010 of Project Web App (PWA) 2010? of? De mogelijkheden van webgebaseerd projectmanagement Project biedt keuze en flexibiliteit met projectmanagement oplossingen op maat, voor individuen, teams en enterprises. In deze tabel ziet u een vergelijking

Nadere informatie

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

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

Nadere informatie

Standard Parts Installatie Solid Edge ST3

Standard Parts Installatie Solid Edge ST3 Hamersveldseweg 65-1b 3833 GL LEUSDEN 033-457 33 22 033-457 33 25 info@caap.nl www.caap.nl Bank (Rabo): 10.54.52.173 KvK Utrecht: 32075127 BTW: 8081.46.543.B.01 Standard Parts Installatie Solid Edge ST3

Nadere informatie

Inleiding C++ Coding Conventions

Inleiding C++ Coding Conventions Inleiding C++ Coding Conventions Opleiding Bachelor of Science in Informatica, van de Faculteit Wetenschappen, Universiteit Antwerpen. Nota s bij de cursus voor academiejaar 2012-2013. Ruben Van den Bossche,

Nadere informatie

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan.

Die inputs worden op een gecontroleerde manier aangeboden door (test) stubs. De test driver zorgt voor de uiteindelijke uitvoering ervan. Nota: Schrijf je antwoorden kort en bondig in de daartoe voorziene velden. De puntenverdeling is 2 punten per theorie-vraag en 8 punten per oefening. Het totaal is 40. Vraag 1. Er bestaan verschillende

Nadere informatie

Technisch Framework OWMS 3.5

Technisch Framework OWMS 3.5 Identificatie http://standaarden.overheid.nl/owms/3.5/doc/technischframework.pdf Informatietype Richtlijn Taal nl-nl Maker Overheid heeft Antwoord laatste wijziging Geldigheid af 01-08-2008 Locatie Niet

Nadere informatie

Variabelen en statements in ActionScript

Variabelen en statements in ActionScript Ontwikkelen van Apps voor ios en Android Variabelen en statements in ActionScript 6.1 Inleiding Als we het in de informatica over variabelen hebben, bedoelen we een stukje in het geheugen van de computer

Nadere informatie

Project Software Engineering XML parser: Parsen van een xml CD catalogus

Project Software Engineering XML parser: Parsen van een xml CD catalogus Project Software Engineering XML parser: Parsen van een xml CD catalogus Brent van Bladel brent.vanbladel@uantwerpen.be February 16, 2017 XML (Extensible Markup Language) is een taal waarmee we op een

Nadere informatie

Handleiding RS Form! 1.0.4

Handleiding RS Form! 1.0.4 Handleiding RS Form! 1.0.4 Inhoud 1. Controlepaneel... 3 2. Forms Manager... 4 2.1 Nieuwe form aanmaken... 4 2.2 Nieuwe fields toevoegen... 7 2.3 Wijzigen/verwijderen bestaande Forms, Fields... 10 Versie

Nadere informatie

BIM-validatietool Toetst data bij aanlegprojecten

BIM-validatietool Toetst data bij aanlegprojecten BIM-validatietool Toetst data bij aanlegprojecten Overzicht validatieregels Categorie en validatieregel Omschrijving COINS 1 Categorie COINS/Validatieregel 1 Is de COINS container een zip-bestand? COINS

Nadere informatie

Mach3Framework 5.0 / Website

Mach3Framework 5.0 / Website Mach3Framework 5.0 / Website Handleiding Mach3Builders Inhoudsopgave 1 Inloggen...5 1.1 Ingelogd blijven...6 1.2 Wachtwoord vergeten...7 2 Applicatie keuzescherm...8 2.1 De beheeromgeving openen...9 3

Nadere informatie

Tips & Trucs ARCHICAD 103: Eigenschappen weergeven met behulp van de Graphic_Overrides

Tips & Trucs ARCHICAD 103: Eigenschappen weergeven met behulp van de Graphic_Overrides Tips & Trucs ARCHICAD 103: Eigenschappen weergeven met behulp van de Graphic_Overrides In deze Tip & Truc wordt beschreven hoe de Graphic Overrides ingesteld kunnen worden. Gebruik Graphic Overrides om

Nadere informatie

Third party mededeling

Third party mededeling Third party mededeling Vertrouwelijk Klant AFAS Product AFAS Insite Versie 1.0 Auteur David van der Sluis Datum 26 juni 2017 1. Introductie Op verzoek van AFAS verstrekt Computest hierbij een Third Party

Nadere informatie

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken.

6.3 VBA Syntax Instructie. Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. 6.3 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik in het groepsvak Macro op

Nadere informatie

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd. SQL Inleiding relationele databases DBMS DataBase Management System!hiërarchische databases.!netwerk databases.!relationele databases.!semantische databases.!object oriënted databases. Relationele databases

Nadere informatie

OEFENINGEN PYTHON REEKS 1

OEFENINGEN PYTHON REEKS 1 Vraag 1: Expressies & Types OEFENINGEN PYTHON REEKS 1 Python maakt gebruik van enkele vaak voorkomende (data)types. Zo zijn er integers die behoren tot de gehele getallen (VB: 3), zijn er float s die behoren

Nadere informatie

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd.

SQL is opgebouwd rond een basisinstructie waaraan één of meerdere componenten worden toegevoegd. BASISINSTRUCTIES SQL SQL : Structured Query Language is een taal gericht op het ondervragen van een relationele database en die aan veel klassieke databasemanagementsystemen kan worden gekoppeld. SQL is

Nadere informatie

6.2 VBA Syntax. Inleiding Visual Basic

6.2 VBA Syntax. Inleiding Visual Basic 6.2 VBA Syntax Wij gaan de Visual Basic Editor opnieuw openen, om de instructie die wij zojuist getypt hebben, nader te bekijken. Klik te tab Hulpmiddelen voor databases Klik op Maken Macro s en Code -

Nadere informatie

Informatie & Databases

Informatie & Databases Informatie Wat is informatie en waaruit het bestaat? Stel op een kaart staat het getal 37 geschreven. Wat kun je dan zeggen van het cijfer 37? Niets bijzonders, toch? Alleen dat het een getal is. Gaat

Nadere informatie

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

ContentQueryWebpart en custom XSLT. Alles wat je moet weten over het CQW ContentQueryWebpart en custom XSLT Alles wat je moet weten over het CQW 1 Contents Voorkennis... 3 Het CQW volgens Microsoft... 3 Algemene werking van het CQW... 3 Het werken met slots... 4 DataMappings...

Nadere informatie

Typical Manager 2017

Typical Manager 2017 Postbus 138 Address: 3400 AC IJsselstein Phone : +31306880023 Internet: www.yellax.com Typical Manager 2017 Release notes pagina 1/20 Inhoud RELEASE NOTES TYPICAL MANAGER 2017 PATCH (3.1.0.16)... 4 VERBETERDE

Nadere informatie

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster

Databank - Basis 1. Inhoud. Computervaardigheden en Programmatie. Hoofdstuk 4 Databank - Basis. Terminologie. Navigeren door een Venster 4. 4. Inhoud rste BAC Toegepaste Biologische Wetenschappen Hoofdstuk 4 Databank Terminologie, Navigeren, Importeren Tabellen Records/Velden manipuleren Queries (Vragen) [Ook in SQL] sorteren filter volgens

Nadere informatie