[quote]Dankzij C-Content is het product gebaseerd is op de nieuwste technologie, zoals XML. Dit heeft volgens Thomas Snyder in sterke mate bijgedragen aan de hogere kwaliteit en stabiliteit van het product.
http://www.telecomwereld.nl/n0000114.htm][i]Bij de introductie van de CD-foongids 2005/2006[/i
[/quote]
XML? Een gewone gebruiker zal daar niet zoveel van merken. Het zoekprogramma heeft een HTML-achtige bijsmaak en dat klopt ook, een deel van de zoekresultaten wordt in een mini-browser getoond. Het uiterlijk daarvan wordt bepaald in een zogeheten ‘stylesheet’, in dit geval details.xsl dat bij een standaardinstallatie in de map “…\De Telefoongids\CD-foongids\App\xml\style” te vinden is:
[code]’ XSL
’ begin details.xsl CD-foongids
<xsl:stylesheet xmlns:xsl=“XSLT Namespace”
xmlns:xlink=“XLink namespace”
xmlns:msxsl=“urn:schemas-microsoft-com:xslt”
xmlns:cc=“TOPdesk”
version=“1.0”>
enz…
[/code]
XSL? Niet gek, dan zou een gebruiker die de weg weet de interface naar eigen smaak kunnen aanpassen. Kijken of dat werkt… taartje. Katja hier ook tussen zetten? Kan, maar dan haal je niet alles uit zo’n stylesheet wat erin zit. Weet dit: de “transformator” die bij de CD-foongids zit is van Microsoft. Weet ook dat die een ‘msxsl:script’-extension aan haar product meegegeven heeft. Met andere woorden, je kan met (java- of vb-)script van eigen hand de werking van iedere willekeurige stylesheet “opvoeren” en dus ook die van het genoemde bestand “details.xsl”. Meer in het bijzonder, die code heeft ook toegang - essentie van een XML/XSL interactie - tot de gegevens die op dat bewuste moment voorbij komen. Een aantrekkelijke gedachte… Zou men op die manier bijv. het menu “Gegevens opslaan en exporteren” van de CD-foongids misschien wel van een extra optie kunnen voorzien? Daar ziet het wel naar uit want na wat trek- en duwwerk kon met de volgende vereenvoudigde versie van details.xsl:
[code]’ XSL
'code voor details.xsl
<xsl:stylesheet version=“1.0”
xmlns:xsl=“XSLT Namespace”
xmlns:msxsl=“urn:schemas-microsoft-com:xslt”
xmlns:function=“http://company.com/functions”>
<msxsl:script language="VBScript" implements-prefix="function">
<![CDATA[
Function doprint(node)
With CreateObject("Scripting.FileSystemObject")
With .OpenTextFile("C:\Test\nawt.xml", 8, -1)
.WriteLine node(0).xml
.Close
End With
End With
doprint = node(0).xml
End Function
]]>
</msxsl:script>
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:copy-of select="function:doprint(node() | @*)"/>
</xsl:template>
</xsl:stylesheet>[/code]
de hierna getoonde complete blauwdruk van het detailvenster teruggewonnen worden:
[code]’ XML
’ resultaat zoekactie
compleet want in XML en die ook nog eens keurig ververst wordt steeds wanneer je met de pijltoetsen door de getoonde lijst met zoekresultaten loopt. Met eigen code - hier Visual Basic - in een externe “DLL” wordt het nog iets makkelijker om een en ander in goede banen te leiden:
[code]’ VB CLS
Private xmlfn As String
Public Function SaveXML(xml As String) As Boolean
With New FileSystemObject
With .OpenTextFile(xmlfn, 8, -1)
.WriteLine xml
.Close
End With
End With
SaveXML = True
End Function
Public Property Let FileName(fn)
xmlfn = fn
End Property[/code]
Op dat moment kan je ook maatregelen gaan nemen om bijv. te voorkomen dat je een item nog een keer opslaat als je de muis per ongeluk een tweede keer op dezelfde regel zet. Denkbaar is ook: na het opslaan van een regel verplaatst de programmacode de ‘focus’ naar de volgende regel met bijv. “PostMessage hWnd, WM_KEYDOWN, VK_DOWN, …” waarna ook die regel weer in het externe bestand gezet wordt (hier als XML) enz. totdat de laatste regel bereikt is. Bij rubrieken in heel Nederland of zoeken op “BV” in alle provincies passeer je dan wel onmiddellijk de toegestane 150-stuks-export-limiet.
Het script in jouw details.xsl maar nu aangepast voor het inzetten van genoemde “buitenboord-DLL”:
[code]’ XSL
’ alternatief script met call naar aparte dll
…
<msxsl:script language=“VBScript” implements-prefix=“function”>
</msxsl:script>
…
[/code]
De omringende XSL-instructies blijven zoals ze waren.
Tip: XTrans
http://www.simx.com/pub/XTrans/XTrans.zip
van SimX, ‘open source’-gevalletje om aan zo’n XSL-‘stylesheet’ te prutsen en daarna het effect daarvan op de XML-data te controleren.
(-/-)