Ich höre oft genug das Klagen der Entwickler pro Browser oder Device die Seiten extra schreiben zu müssen. Gut das wird auch noch eine Zeit so bleiben, aber eine kleiner Erleichterung gibts schon, sofern man XML Daten geräteunabhängig visualisieren möchte. Eine xslisapi!
Die Machart ist eigentlich sehr simpel. Man entpacke die Datei, registriere die xslisapi2.dll und richte dieselbe als Isapi Filter im IIS ein. Das wars!
Naja, noch nicht so ganz:
Sehen wir uns mal ein Beispiel an:
Die xml Daten
<?xml version="1.0" ?> <?xml-stylesheet type="text/xsl" server-config="Config.xml" href="sampleA-IE5.xsl" ?> |
Hier sehen Sie bereits, daß außer der Angabe des Stylesheets href="sampleA-IE5.xsl" noch eine weiteres angegeben worden ist: server-config="config.xml"??? Tja, hier kommt die MS XSL-Isapi Komponente ins Spiel. Diese kann unterscheiden welcher Device unsere xml Seiten anspricht und weist dementsprechend das passende xsl file zu.
So sieht das config.xml file aus:
<?xml version="1.0"?> <server-styles-config>
<!-- for HDML 3.0 based browsers --> <device target-markup="HDML 3.0"> <stylesheet href="HDML3.xsl"/> </device>
<!-- for WML 1.1 based browsers --> <device target-markup="WML1.1"> <stylesheet href="WML11.xsl"/> </device> <!-- for IE 6 based browsers --> <device browser="IE" version="6.0"> <stylesheet href="IE6.xsl"/> </device>
<!-- for IE 5 based browsers --> <device browser="IE" version="5.0"> <stylesheet href="IE5.xsl"/> </device>
<!-- for MME browsers --> <device browser="MME"> <stylesheet href="WML11.xsl"/> </device> </server-styles-config>
|
Diese Datei weist nach Angabe der Isapi das passende xsl zu.
Hier z.B für Wap Browser:
<?xml version="1.0" ?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/" > <xsl:pi name="xml">version="1.0"</xsl:pi> <xsl:doctype>wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml"</xsl:doctype> <wml> <card> <p> <!-- Show the name of each color--> <xsl:for-each select="colors/color"> <xsl:value-of select="name"/> <br/> </xsl:for-each> </p> </card> </wml> </xsl:template> </xsl:stylesheet>
|
Die Möglichkeiten dieser Isapi sind schon cool. Man kann mehere xsl Stylesheeet zum Parsen angeben, die anschliessend der Reihe nach ausgeführt werden. Die xml Anwednungen werden zudem durch das Caching der xsl templates beschleunigt. Außerdem werden device abhängige Fehlermeldungen ausgegeben.
Lesen Sie sich auf jeden Fall die Installationsanleitung genau durch und testen sie die Example.