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



Vergelijkbare documenten
Nieuws & RSS in DotNetNuke

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

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

HANDLEIDING XML & XSL

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

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

Zelftest XML Concepten

4XSLT. Davy Friedrich Joe Achten Wim Deprez

Dankwoord. Bedankt! Wim Janssen Juli 2005

Webtechnologie en talen

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

Met XML van database naar LaTEX

<Oracle en GML: Samenvatting> In dit rapport worden het onderzoek en de onderzoeksresultaten van de volgende vraag behandeld:

XSL = XSLT + XSL-FO + XPath

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

Correspondentie inzake overnemen of reproductie kunt u richten aan:

Rd 1 MULTIMEDIA DEEL2

Websitecursus deel 1 HTML

Een ASP.NET applicatie opzetten. Beginsituatie:

Module XML. Algemene XML sites

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

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

Agenda. Wat is HTML? Meer over HTML... Waarom HTML leren? Aniel Bhulai. Inleiding Computergebruik - HTML 1. Waarin maak je een HTML-bestand?

Correspondentie inzake overnemen of reproductie kunt u richten aan:

XML Introductie.

Flexibiliteit en Duurzaamheid: Teksttechnologie en Museumdocumentatie

XML: de eend met de gouden eieren?

IN3001: Datacommunicatie en Netwerken: Applicatielaag

XML Introductie.


Detail Ontwerp 4317 Nieuwe StUF release Omgevingsloket online release 2.9

Les 15 : updaten van gegevens in de database (deel2).

XMLType DEV. Native XML datatype in de database

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

7. De applicatielaag. Applicatielaag introductie

HTML 5 en CSS 3. Truus de Bont. CC Naamsvermelding 3.0 Nederland licentie.

Extra: Hoe u uw website met HTML kunt verbeteren

Cartalk: Simplified REST interface

HTML in Outlook Hoe zorgt u ervoor dat uw goed in beeld komt?

Het ontwikkelen van XML-tools

handleiding RSS SETUP

SEPA formaten - inleiding tot XML. versie maart ing.be/sepa

Handleiding Authenticatie

Efficiënt (??) thesaurusbeheer

Axiell ALM Netherlands B.V.

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

Productenfeedspecificatie voor leveranciers, easygiven

Praktijkrichtlijn Toegankelijkheid Ruimtelijke Instrumenten PRTRI2012

Agenda HTML. Wat is HTML? Hoe ziet een HTML-file eruit? Waarom HTML leren? Waarin maak je een HTML-bestand?

Een contentmanagementsysteem voor de faculteitsbibliotheek

Gebruik van open standaarden binnen content management

Veel informatie over XML en bijbehorende zaken (zoals DTD, XSL etc.) is te vinden via de Home page van XML 101 (URL: ).

Agenda (X)HTML. Wat is HTML? Hoe ziet een HTML-file eruit? Waarom HTML leren? Waarin maak je een HTML-bestand?

Organiseer uw verschillende SOAP services in één scenario

Adobe Dreamweaver CS4

Een webpagina maken. Een website bouwen met HTML en CSS practicum 1

Bij de start van het European Library-project was het

Les 9: formulier controle met javascript.

Exercise assistant on-line

Zonnepanelen Hoe krijg je de data op je website?

Web building basis: HTML. Karel Nijs 2008/09

<meta name="description" content= "de tekst die in zoekresultaten bij de link te lezen is" />

1. Installeer de Windows service m.b.v. het installatiebestand XMLSplitterSetup.msi.

Versie 0.2. Documentatie Onsweb Club plugin voor NHV verenigingen. Laatste wijziging: 10 mei 2013 Auteurs: Marien Dongstra, Sebastian Huisman

Foutcontrole met Javascript

Sushi MIJN EERSTE WEBSITE. DE STIJL VAN HET BOVENSTE MENU AANPASSEN Kaart 6 van 10 Ik ben HTML/CSS aan het leren. Naar daar.

ICT-standaarden voor het archiefwezen. Ivo Zandhuis

CSS v XSL. H.S. Haringa. Afstudeerscriptie Informatiekunde. Scriptiebegeleider en eerste lezer: Dr. G.M. Welling Tweede lezer: Dr. E.A.

DTD - Inleiding. Document Type Definitions (DTDs)

Macromedia Dreamweaver 8

Koppeling met een database

Internet xml-http. Ariadne Main. server

Praktijkrichtlijn Toegankelijkheid Ruimtelijke Instrumenten PRTRI2012

Macromedia Dreamweaver 8 - PHP5

Client Server 2.0 met jquery en Grails

Taxis Pitane Business Suite Taxi Online API. Censys BV Eindhoven v1.0.1

Web building basis: HTML. Karel Nijs 2008/09

HTML & CSS DEEL 1. webdesign. Programmeren met CodeAcademy

Introductie. Wat is HTML?

Inhoud leereenheid 1. XML in perspectief. Introductie 17. Leerkern 18. Terugkoppeling 48. Uitwerking van de opgaven 48

Internetstandaarden 2

Praktijkrichtlijn Toegankelijkheid Ruimtelijke Instrumenten PRTRI2012

Door: Ruud van Eeghem Datum: juni 2008 Versie: 1.0. Handleiding gebruik EPBD GIPC tool

HTML elementen en attributen (volgens de Strict DTD)

Wat betekent XML voor software engineers?

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

Adobe Dreamweaver CS3 - PHP5

Waarvoor gebruik je XQuery?

Versie 0.4. Documentatie Onsweb Club plugin voor KNKV verenigingen. Laatste wijziging: 19 juli 2012 Auteurs: Marien Dongstra, Sebastian Huisman

HDN DARTS WEB AUTHENTICATIE

HTML en CSS. Je website bestaat uit HTML. Dat is een taal die browsers (Internet explorer, Chrome, Safari) kunnen lezen.

Maximo Tips and Tricks

A Inloggen. B - Wachtwoord Veranderen

HOE WERKT DE API WIJZIGEN KENMERKEN ZAAK/OBJECT/DOCUMENT

AJAX (XMLHttpRequest)

Interactie: Document Object Model en JavaScript. Hoorcollege Webdesign 7 23 mei 2014 Christof van Nimwegen

Dynamische Websites. Week 2

Sushi MIJN EERSTE WEBSITE EEN WEBPAGINA BEWERKEN. Kaart 1 van 10 Ik ben HTML/CSS aan het leren

Transcriptie:

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 betekent EXtensible Markup Language XML bevat data en tags Tags zijn te vergelijken met veld en groepnamen XML tags staan niet vast zoals in HTML, maar moeten zelf gekozen worden. In Adlib worden de XML tags bepaald door de namen van velden en groepen in de data dictionary (in te stellen in Adlib Designer) Veldnamen en groepsnamen moeten dus voldoen aan de regels voor namen in XML (geen spaties bijv.) 3

XML - Een voorbeeld : structured XML 4 <?xml version="1.0" encoding="utf-8"?> <adlibxml xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> <recordlist> <record> <lead_word>de</lead_word> <title>regels van het <highlight>huis</highlight> : Novelle</title> <author.name linkref="1439" linkfield="name" linkreffield="l1"><name>graaf, Hermine de</name> </author.name> <year_of_publication>1988</year_of_publication> <priref>859</priref> </record> <record> <lead_word>de</lead_word> <title>weg naar <highlight>huis</highlight></title> <author.name linkref="1295" linkfield="name" linkreffield="l1"><name>brakman, Willem</name> </author.name> <year_of_publication>1981</year_of_publication> <priref>657</priref> </record> </recordlist> </adlibxml>

XML-Elementen 5 Declaratie <?xml version="1.0" encoding="utf-8"?> Namespace <adlibxml xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"> Knooppunten (Nodes) <adlibxml> <recordlist> <record> <lead_word>het</lead_word> <title>behouden huis</title> <author.name linkref="1457" linkfield="name" linkreffield="l1"> <name>hermans, W.F.</name> </author.name> <edition>20e dr</edition>

XML-Elementen Atribuut = extra informatie over de data in een XML tag <creator linkref="29" linkfield="name" linkreffield="l1"> <name>turner, Joseph Mallord William</name> </creator> Voorwaarden Eén topelement, de root Alle elementen moeten afgesloten worden (begin- en eindtag, of leeg) Alle elementen moeten correct gestapeld ( genest ) zijn Namen van tags en attributen mogen alleen letters, getallen en een aantal speciale tekens bevatten (zoals _) Namen mogen niet beginnen met getal, interpunctie Namen mogen geen spaties bevatten 6

XSLT XSL betekent EXtensible Stylesheet Language XSLT betekent XSL for Transformations XSL gebruikt XPATH om binnen een XML documente elementen te selecteren 7

XSL-Transformatie Browser XSLT Compatibele browser Voeg XSL-stylesheet toe aan XML <?xml-stylesheet type="text/xsl" href= transform.xsl"?> msxsl.exe Command line C:\>msxsl Adlib.xml transform.xsl -o output.html Adlib API Adlwin Adlib Office-Connect Adlib Internet Server 8

XPATH XPATH is een syntax om in een XMLdocument te zoeken en elementen te selecteren XPATH bevat standaard functies om bewerkingen te doen (vergelijkbaar met die in adapl) 9

XPATH Syntax naam selecteert elementen met de tag naam vanaf huidige node plus onderliggende / selecteert vanaf de root node // selecteert willekeurig vanaf de huidige node. selecteert de huidige node.. selecteert de bovenliggende node @ selecteert een attribuut [] selecteert een bepaalde index van een node 10

XSL - Een voorbeeld (HTML uitvoer) <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" /> <xsl:template match="/"> <xsl:apply-templates select="adlibxml" /> </xsl:template> 11 <!-- adlibxml generates the HTML framework--> <xsl:template match="adlibxml"> <html> <head> <link rel="stylesheet" type="text/css" href="detail.css"/> </head> <body> <xsl:apply-templates select="recordlist" /> </body> </html> </xsl:template>

XSL Een voorbeeld (HTML uitvoer) Vervolg <!-- The recordlist is placed in a table --> <xsl:template match="recordlist"> <table class="briefresultstable"> <xsl:apply-templates select="record" /> </table> </xsl:template> 12 <!-- Each record gets a row --> <xsl:template match="record"> <tr> <td> <xsl:value-of select="title" /> </td> <td> <xsl:apply-templates select="author.name/name" /> </td> <td> <xsl:apply-templates select="keyword.contents" /> </td> </tr> </xsl:template> </xsl:stylesheet>

XSL-Elementen (1) <xsl:apply-templates select="expression"/> <xsl:template match="node"/> <xsl:value-of select="expression"/> <xsl:call-template name="name"/> <xsl:template name="name"/> 13

XSL-Besturingselementen (1) <xsl:if test="expression"> </xsl:if> <xsl:choose> <xsl:when test="expression"> <xsl:when> <xsl:otherwise> <xsl:otherwise> </xsl:choose> 14 <xsl:for-each select="node"> </xsl:for-each>

XSL-Besturingselementen (2) <xsl:sort select="node"> <xsl:for-each select="node"> <xsl:sort select="node"> <xsl:value-of select="expression"> </xsl:for-each> <xsl:apply-templates select="expression"> <xsl:sort select="node"> </xsl:apply-templates> 15

XSL-Functies (1) <xsl:value-of select="position()"/> Selecteert het occurrence nummer van een element, begint bij 1 <xsl:value-of select="count(node)"/> Telt het aantal occurrences (adapl repcnt()) <xsl:value-of select="first()"/> <xsl:value-of select="last()"/> <xsl:value-of select="node[position()=last()]"/> 16

XSL-Functies (2) - String functies <xsl:value-of select="contains(string1, string2)"/> <xsl:value-of select="substring(string, start, [length])"/> <xsl:value-of select="starts-with(string1, string2)"/> <xsl:value-of select="ends-with(string1, string2)"/> <xsl:value-of select="substring-before(string1, string2)"/> <xsl:value-of select="substring-after(string1, string2)"/> 17

XML/XSL Voorbeelden Grouped (1) XML met meerdere occurrences van een veldgroep <adlibxml> <recordlist> <record> <Inscription> <inscription.type><term>signatuur</term></inscription.type> <inscription.position>voorzijde rechtsonder</inscription.position> <inscription.content>e. den Herder</inscription.content> <inscription.method>geschilderd</inscription.method> </Inscription> <Inscription> <inscription.type><term>opschrift</term></inscription.type> <inscription.position>voorzijde links en rechts boven</inscription.position> <inscription.content>walvischvaarder Zeilzee</inscription.content> <inscription.method>geschilderd</inscription.method> </Inscription> 18

XML/XSL Voorbeelden Grouped (2) XSL voor XML met meerdere occurrences in groepen <xsl:template match="inscription"> <tr> <td> <xsl:if test="position() = 1"> <xsl:text>inscription</xsl:text> </xsl:if> </td> <td> <xsl:apply-templates select="inscription.type"/> <xsl:apply-templates select="inscription.position"/> <xsl:apply-templates select="inscription.method"/> <xsl:apply-templates select="inscription.content"/> <xsl:value-of select="inscription.content"/> </td> </tr> </xsl:template> 19 <xsl:template match="inscription.type"> <xsl:apply-templates select="term"/> </xsl:template>

XML/XSL Voorbeelden Grouped (2) Vervolg <xsl:template match="inscription.position"> <xsl:text>, </xsl:text> <xsl:value-of select="."/> </xsl:template> <xsl:template match="inscription.content"> <xsl:value-of select="."/> </xsl:template> <xsl:template match="inscription.method"> <xsl:text>: </xsl:text> <xsl:value-of select="."/> </xsl:template> <xsl:template match="term"> <xsl:value-of select="."/> </xsl:template> 20

XML/XSL Voorbeelden Unstructured 21 XML met meerdere occurrences niet in groepen <record> <object_number>0206-o-04139</object_number> <title>schilderij, voorstellende de Keizerstraat te Harderwijk, door H. Donkelaar</title> <creator><name>donkelaar, G.H.</name></creator> <dimension.part>geheel</dimension.part> <dimension.part>geheel</dimension.part> <dimension.part>geheel</dimension.part> <dimension.type><term>hoogte</term></dimension.type> <dimension.type><term>breedte</term></dimension.type> <dimension.type><term>diepte</term></dimension.type> <dimension.value>3.4</dimension.value> <dimension.value>45.5</dimension.value> <dimension.value>20</dimension.value> <dimension.unit><term>dm</term></dimension.unit> <dimension.unit><term>cm</term></dimension.unit> <dimension.unit><term>mm</term></dimension.unit>

XML/XSL Voorbeelden - Unstructured XSL voor XML met meerdere occurrences niet in groepen 22 <xsl:template name="dimension"> <xsl:if test="dimension.part!= ''"> <tr><td> <xsl:call-template name="fieldname"> <xsl:with-param name="fieldname">dimension</xsl:with-param> </xsl:call-template> </td><td> <xsl:for-each select="dimension.part"> <xsl:variable name="counter"><xsl:value-of select="position()" /></xsl:variable> <li> <xsl:value-of select="." /> <xsl:value-of select="../dimension.type[position()=$counter]/term" /> <xsl:value-of select="../dimension.value[position()=$counter]" /> <xsl:value-of select="../dimension.unit[position()=$counter]" /> </li> </xsl:for-each> </td></tr> </xsl:if> </xsl:template>

De praktijk (1) Uitvoerformaten In te stellen in Adlib Designer De basis is unstructured adlibxml XSL moet hier rekening mee houden Adlib 7.1 krijgt de optie om grouped XML te kiezen 23

De praktijk (2) De Adlib API De API kan alle typen adlibxml uitvoeren De API kan direct een stylesheet toepassen Adlib adviseert om grouped te gebruiken 24

De praktijk (3) Office Connect Stylesheets te configureren op de API server (AdlibConnectPreferences.xml). De basis is grouped XML 25

De praktijk (4) Debugging XSLT MSXSL.exe (command line) Voordeel: direct een URL aanroepen mogelijk XSLT Sheet koppelen aan een API (browserbased) 26

Websites / Tutorials W3C http://www.w3.org/style/xsl/ W3Schools http://www.w3schools.com/ TOPXML http://www.topxml.com/xsl/tutorials/intro/ 27 SRU/SRW http://www.loc.gov/standards/sru/

Meer informatie? Cursus InternetServer sales@nl.adlibsoft.com Adlib Helpdesk 030-247 50 70 helpdesk@nl.adlibsoft.com http://www.adlibsoft.com/ 28

29 Vragen?