Correspondentie inzake overnemen of reproductie kunt u richten aan:

Vergelijkbare documenten
Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

XML Introductie.

Correspondentie inzake overnemen of reproductie kunt u richten aan:

XML Introductie.

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

Brunelleschi. De Dom van Florence

Rekenen Groep 7-2e helft schooljaar.

Geen fabriekswerk. Roeien met de wind mee en de stroom tegen. Jac Willekens

Rekenen Groep 6-2e helft schooljaar.

Zelftest XML Concepten

Rekenen Groep 6-1e helft schooljaar.

Inhoud Inhoud. Over dit boek 7. 1 Eclipse IDE (Integrated Development Environment) 9. 2 Functionele specificatie 13

Correspondentie inzake overnemen of reproductie kunt u richten aan:

JavaServer Faces 2.1

Antwoorden Rekenen Groep 5-1e helft schooljaar

Inhoudsopgave. Hoofdstuk 1: Ant...4

JavaServer Faces 2.3

Rekenen Groep 4-1e helft schooljaar.

Rekenen Groep 4-2e helft schooljaar.

Rekenen Groep 4-2e helft schooljaar.

Wat betekent XML voor software engineers?

Inhoudsopgave. Hoofdstuk 1.JMS...2

QoS / Quality Of Service

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Toelichting op SDK. Versie 2.0. Datum 11 november 2010 Status definitief

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

Firewall. Web Content Filter

Inter-LAN Route. DrayTek Vigor 2960 & 3900

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

FlexSCAN Installatie

Address Mapping Address Mapping regels:

Correspondentie inzake overnemen of reproductie kunt u richten aan:

LAN Setup middels Tag Based VLAN. DrayTek Vigor 2960 & 3900 icm G2240 & P2261

Perceptive Process. Installatie-instructies voor Patch 3.2.1

LAN Multiple Subnet Tag Based VLAN. Vigor2960/3900 icm VigorSwitch G1241

LAN Multiple Subnet Tag Based VLAN. Vigor2860/2925 icm VigorSwitch G1241

Time Schedule . WEL NIET WEL

Docman. Handleiding om documenten op een Joomla! website te plaatsen

Firewall. Facebook Block

Het ontwikkelen van XML-tools

Gebruikershandleiding

Deze zelfstudie maakt gebruik van de modules Tekenconstructies en Inlezen/Uitzetten.

Inhoudsopgave. Hoofdstuk 1.RMI...2

Firewall. Facebook Blokkering

VoIP Blocking: Hiermee kunnen VoIP protocollen zoals JaJah en Skype geblokkeerd worden.

Firewall URL Content Filter

Wij behandelen onderstaande DrayTek Vigor producten met WAN VLAN TAG ondersteuning:

SSL VPN Smart-VPN app voor ios

Met de functie 'Bind IP to MAC' heeft u meer controle over het gebruik van LAN IP-adressen die in het netwerk worden gebruikt.

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

Gebruiksaanwijzing. innovaphone Fax. Versie 10

Acht stappen voor JSF

In deze handleiding gaan we een voorbeeld geven hoe u een bepaalde situatie kunt oplossen doormiddel van een aantal Firewall >> Filter Rules.

Cursus Onderwijs en ICT. bloggen met Wordpress

Wat is Syslog? Syslog is een feature waarmee de router activiteit kan worden bijgehouden.

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

DrayTek Vigor AP700 MAC Filtering

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

HTML. Media. Hans Roeyen V 3.0

Logging voor Support

LSP Connect en HL7v3

Access Point Management. DrayTek Vigor 2860 & 2925 Serie

Routing Load-Balance & Policy Route

Firewall Configuratie

Syslog / Mail Alert Setup

Smart-VPN app voor ios

Load Balancing. DrayTek Vigor 2960 & 3900

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Firewall URL Content Filter

Wijziging algemene btw-tarief Plan&Go TMS, In&Out WMS en Cash&Pay

Werken met Bibliotheek.net

HANDLEIDING SERVICEDESKPORTAL

Belangrijk: Voordat u een VPN tunnel creëert dient u ervoor te zorgen dat de datum en tijd instellingen van de router juist staan ingesteld.

Firewall Traffic Control

LAN Multiple-Subnet Port Based VLAN

Muziek in de renaissance en barok. Renaissance ( ) Belangstelling voor het hier en het nu

Release Notes. RoPlan Dé specialist in ruimtelijke informatievoorziening

R5.0. Bijlage IV. Video converter. Handleiding. Clixmaster Studio. Gebruikershandleidingen

Multiple LAN subnet. VigorSwitch P1280/P2280

Affecten, emoties en expressie

Antwoorden op de vragen

GISVG KOPPELING BAG-WOZ RELATIE

Open Ports. Als eerste maakt u de regel actief. Dit kan door boven in het scherm een vinkje te zetten bij Enable Open Ports

Time Schedule. 07:00 tot 18:00 wordt dus : Start Time: 07:00 Duration Time: 11:00 (07: uur = 18:00)

PostNL Verzendservice

LAN Multiple-Subnet Tag Based VLAN

XML. Alle tekortkomingen op een rijtje! (en een paar pluspunten...) Marc de Graauw


LAN Multiple-Subnet Port Based VLAN

Tag Based VLAN. VigorSwitch G1260

Transcriptie:

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. Niets uit deze uitgave mag worden verveelvoudigd, opgeslagen in een geautomatiseerd gegevensbestand of openbaar worden gemaakt in enige vorm of op enige wijze, hetzij elektronisch, mechanisch, door fotokopieën, opnamen of op enige andere manier, zonder voorafgaande schriftelijke toestemming van de auteur. De enige uitzondering die hierop bestaat, is dat eventuele programma s en door de gebruiker te typen voorbeelden mogen worden ingevoerd opgeslagen en uitgevoerd op een computersysteem, zolang deze voor privédoeleinden worden gebruikt, en niet bestemd zijn voor reproductie of publicatie. Correspondentie inzake overnemen of reproductie kunt u richten aan: Noël Vaes Roode Roosstraat 5 3500 Hasselt België Tel: +32 474 38 23 94 noel@noelvaes.eu www.noelvaes.eu Ondanks alle aan de samenstelling van deze tekst bestede zorg, kan de auteur geen aansprakelijkheid aanvaarden voor eventuele schade die zou kunnen voortvloeien uit enige fout, die in deze uitgave zou kunnen voorkomen. 07/0/207 Copyright 207 Noël Vaes

Inhoudsopgave Hoofdstuk.Java & XML...2..Inleiding...2...XML in de Java Standard Edition...2.2.JDOM...3.2..Inleiding...3.2.2.Algemeen overzicht...4.2.3.een document rechtstreeks aanmaken...5.2.4.een JDOM-document wegschrijven...0.2.5.een JDOM-document inlezen....2.6.navigeren in JDOM-documenten...2.2.7.Namespaces...5.2.8.Schema's...7.3.JAXB...9.3..Inleiding...9.3.2.Schema omzetten naar klassen...9.3.3.marshalling...22.3.4.unmarshalling...23.4.xslt transformaties...24 Copyright 207 Noël Vaes - - www.noelvaes.eu

Hoofdstuk. Java & XML.. Inleiding... XML in de Java Standard Edition Voor het omgaan met XML documenten zijn er in de Java Standard Edition twee technologieën:. JAXP: Java API for XML Processing 2. JAXB: Java API for XML Binding JAXB zullen we in een afzonderlijk hoofdstuk behandelen. JAXP wordt gebruikt om bestaande XML-documenten te parsen, aan te maken en te transformeren met behulp van XSLT. JAXP is enkel een specificatie en kan gebruikmaken van verschillende implementaties van de parsers die ingeplugd kunnen worden. JAXP valt op zijn beurt uiteen in drie technieken om XML-documenten te behandelen:. SAX: Simple API for XML Hierbij wordt een XML-document van het begin tot het einde overlopen door een SAX Reader en bij ieder element, attribuut of processing instruction wordt een event gegenereerd dat door een event handler wordt afgehandeld. Op die manier wordt het gehele document verwerkt door verschillende event handlers. Deze techniek is snel en vraagt weinig geheugen. Het is echter niet mogelijk hiermee documenten te wijzigen. Bovendien is het een verwerking die op laag niveau gebeurt en dat is niet steeds wat men nodig heeft. events Content Handler Error Handler XML SAX Reader DTD Handler Entity Resolver Copyright 207 Noël Vaes - 2 - www.noelvaes.eu

2. DOM: Model Hierbij wordt van het XML-document een representatie in het geheugen gemaakt. Ieder element, attribuut enzovoort. wordt vertegenwoordigd door een Java-object (node). Deze objecten zijn aan elkaar gekoppeld en vormen zo een boomstructuur die overeenkomt met de structuur van het XML-document. Deze techniek maakt het mogelijk aanpassingen te doen en bovendien kan men makkelijk navigeren in de boomstructuur om het gewenste element te manipuleren. Het opbouwen van dit objectmodel vraagt wel de nodige processortijd en geheugen. Dit is vooral een probleem bij heel grote XMLdocumenten. DOM is in vele gevallen de meest aangewezen techniek als men XML-documenten wil manipuleren of creëren. De DOM API is bovendien gestandaardiseerd door W3C en is beschikbaar in verschillende programmeertalen. De DOM API is echter complex en onhandig in gebruik. Om die reden zijn er in de Java wereld een alternatieven ontwikkeld die makkelijker hanteerbaar zijn: JDOM, DOM4J 3. XSLT: Extensible Stylesheet Language Transformation Deze technologie dient om XML documenten te transformeren aan de hand van XSL-stylesheet documenten. In deze cursus gaan we een alternatief voor DOM bekijken, namelijk JDOM. Daarnaast behandelen we summier JAXB, XSLT en XSL-FO..2. JDOM.2.. Inleiding JDOM is een open source project waarbij het de bedoeling is XML documenten op een eenvoudige wijze te behandelen en manipuleren en dit op een manier die voor Java programmeurs vertrouwd is. In tegenstelling tot DOM vertrekt JDOM helemaal vanuit de Java programmeertaal. JDOM kan bovendien samenwerken met SAX en DOM. XML DOM Builder JDOM bouwt net als DOM een hiërarchie van Java-objecten die de structuur van een XMLdocument vertegenwoordigen. JDOM is beschikbaar op de volgende website: www.jdom.org Opdracht : JDOM installeren In deze opdracht gaan we het pakket JDOM integreren in een nieuw project. Copyright 207 Noël Vaes - 3 - www.noelvaes.eu

Indien je gebruikmaakt van Maven voeg je de volgende dependency in de POM toe: <dependency> <groupid>org.jdom</groupid> <artifactid>jdom2</artifactid> <version>2.0.6</version> </dependency> Indien je geen gebruikmaakt van Maven, volg je de volgende stappen: Haal het pakket JDOM 2.x.y van de website en pak het bestand uit in een lokale map. Lokaliseer het bestand JDOM-2.x.y.jar en de documentatie in JDOM-2.x.yjavadoc.jar. Maak een nieuw project met de naam JDOM in je favoriete IDE. Plaats het bestand JDOM-2.x.y.jar in de map lib van je project en zorg dat dit JARbestand opgenomen is in het classpath van het project. Koppel ook de API-documentatie zodat je makkelijk vanuit de IDE deze kan openen. Genereer eventueel de documentatie eerst met ant javadoc.2.2. Algemeen overzicht JDOM maakt gebruik van een objectmatige voorstelling van een XML-document. We noemen dit een JDOM-document. In het onderstaande overzicht wordt aangegeven hoe een dergelijk JDOM-document gecreëerd wordt op basis van andere representaties van XMLdocumenten. Tevens wordt weergegeven hoe men van dit JDOM-document weer andere representaties kan genereren. Direct Build XML SAX Builder XML Outputter XML SAX Ev ents SAX Handler JDOM SAX Outputter SAX Ev ents DOM Nodes DOM Builder DOM Outputter DOM Nodes Voor het aanmaken van een JDOM-document hebben we de volgende mogelijkheden:. Direct Build: We kunnen het document zelf in Java-code aanmaken. Dit is nodig als we een nieuw XML-document moeten genereren. Hierbij wordt de documentstructuur stap voor stap opgebouwd in het geheugen. 2. SAX Builder: Via de SAX Builder kunnen we een bestaand XML-document lezen en hiervan een JDOM-document maken. Het parsen van het XML-document gebeurt op basis van een SAX-parser. Het XML-document kan aangeleverd worden via onder andere een bestand, stream of reader. 3. SAX Handler: Indien het XML-document aangeleverd wordt in de vorm van een aantal SAX-events kunnen we gebruikmaken van de SAX Handler. Deze zal op basis van de events het JDOM-document opbouwen. 4. DOM Builder: Indien we reeds beschikken over een DOM-structuur, kunnen we deze Copyright 207 Noël Vaes - 4 - www.noelvaes.eu

omzetten naar een JDOM-document. De DOM Builder zorgt voor deze conversie. Eens we een JDOM-document in het geheugen hebben, kunnen we de verschillende elementen manipuleren. Zo kunnen we de inhoud en attributen van tags wijzigen, tags toevoegen of verwijderen enzovoort. Na deze manipulaties kunnen we het JDOM-document weer omzetten naar een ander formaat:. XML Outputter: Hiermee kunnen we weer een XML-document in tekstvorm genereren en wegschrijven via een outputstream of writer. 2. SAX Outputter: Hiermee kunnen we SAX events genereren die dan op hun beurt afgehandeld kunnen worden door een of andere SAX Handler. 3. DOM Outputter: Hiermee kunnen we het JDOM-document omzetten naar een DOMstructuur. In de volgende paragrafen zullen we de meest gebruikte mogelijkheden verder onder de loep nemen..2.3. Een document rechtstreeks aanmaken Direct Build JDOM In sommige omstandigheden is het nodig een nieuw XML-document aan te maken. In dat geval gaan we rechtstreeks in het geheugen een JDOM-document aanmaken. Zo'n JDOM-document wordt voorgesteld door een object van de klasse. In het onderstaande klassendiagram worden de verschillende klassen en hun onderlinge relaties weergegeven: Copyright 207 Noël Vaes - 5 - www.noelvaes.eu

Attribute 0..* attribute root element docty pe 0.. Element DocType child 0..* Content EntityRef 0..* ProcessingInstruction 0..* Comment Text CDATA Een JDOM-document bestaat dus uit een object van de klasse. Dit is de top van de boomstructuur. Dit -object heeft één root-element van de klasse Element. Daarnaast zijn eventueel nog een of meerdere objecten van de klassen Comment en ProcessingInstruction mogelijk. Tevens kan er één object van de klasse DocType zijn. We richten ons nu op de klasse Element. Een element komt overeen met een tag in het XML-document. Zo'n tag kan naast attributen (Attribute) ook nog een inhoud hebben. Deze inhoud wordt heel algemeen voorgesteld door de klasse Content. Dit is een abstracte klasse met de volgende concrete subklassen:. Element: Dit stelt een (sub)-tag voor. 2. EntityRef: Dit stelt een Entity Reference voor. Bijvoorbeeld ë 3. Comment: Dit is een commentaarblok. 4. Text: Dit is gewone tekst als inhoud van een tag. Tekst die vervat is in een CDATAsectie wordt voorgesteld door een object van de subklasse CDATA. De klasse Element heeft methoden om Content-elementen en Attribute-elementen toe te voegen. We illustreren dit alles met een concreet voorbeeld. Stel dat we het volgende XML-document willen opbouwen aan de hand van JDOM: <?xml version=".0" encoding="utf-8"?> <!DOCTYPE message SYSTEM "Message.dtd" > <message language="en"> <greeting>hello</greeting> <!--This is comment--> <audience>world</audience> <footer>&cr;</footer> </message> Copyright 207 Noël Vaes - 6 - www.noelvaes.eu