Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Neues von XSLT 2.0 und XPath 2.0
1. XSLT 2.0 und XPath 2.0
»Workshop Technology Days 2008«
Stand: Februar 2008
Version: 1.1
doubleSlash Edmund Hierlemann
Net-Business GmbH Tel.: 07541-70078-0
Otto-Lilienthal-Str. 2 info@doubleSlash.de
D-88046 Friedrichshafen
http://blog.doubleSlash.de
Folie 1
2. »Überblick und Inhalt«
Neuerungen zu den Versionen 2.0
> Warum XSLT 2.0 und XPath 2.0?
> XSLT 2.0 Features und Syntax.
Beispiel-Code.
> XPath 2.0 Features und Syntax.
Beispiele-Code.
> Welche XSLT-Prozessoren existieren?
> Fragen?
Folie 2
3. »Warum XSLT 2.0 und XPath 2.0«
XSLT 1.0
> Spezifikationen 1.0 ist über 8 Jahre alt.
> Verarbeitung erfolgt immer über Trees
(RTFs).
> Rekursive Aufrufe als Workaround für
Schleifen.
> Funktionen mit Rückgabe nicht möglich.
> …
Folie 3
4. »Warum XSLT 2.0 und XPath 2.0«
XPath 1.0
>• Spezifikation ist über 8 Jahre alt.
>• Typsicherheit.
>• Keine Schleifen in XPath möglich.
>• Keine if-then-else Möglichkeit in XPath.
>• Stark eingeschränkte Anzahl an
Funktionen (Search-replace,…)
>• ….
EXSLT bietet Workaround-Packages an.
Folie 4
5. »XSLT 2.0 und XPath 2.0«
...da war doch noch was
XSLT 2.0 und XPath 2.0 löst
viele Probleme…
…aber nicht alle.
Folie 5
6. »XSLT 2.0 und XPath 2.0«
Features und Syntax
Beispiele gefällig?
Folie 6
7. »XSLT 2.0«
Sequenzen
anstelle der RTF (result tree <xsl:variable name=quot;sequencequot;
fragments) werden sequenzen erstellt select=quot;(1,2,3,4,5,6,1,1,2)quot;/>
Listen aller möglichen typen
Distinct
direkte Erzeugung mit (...) <xsl:value-of select=quot;distinct-
values($sequence)quot;/>
<xsl:value-of select=quot;(1,2,3,4,5,6)quot;/> Reverse
<xsl:value-of select=quot;reverse($sequence)quot;/>
Separator RTF
<xsl:value-of
<xsl:value-of select=quot;(1,2,3,4,5,6)quot;
select=quot;/personnel/person/name/givenquot;/>
separator=quot;, quot;/>
bei value-of select werden aufgrund der
Result-Sequenzen jetzt nicht nur der erste,
sondern alle knoten gefunden.
Folie 7
12. »XPath 2.0«
to-Operator
<xsl:value-of select=quot;1 to 6quot;/>
keine rekursionen mehr
<xsl:for-each select=quot;personnel/personquot;>
<xsl:value-of select=quot;name/givenquot;/><xsl:text> </xsl:text><xsl:value-of
select=quot;name/familyquot;/>: Importance factor:
<xsl:for-each select=quot;(1 to count(email))quot;>
*
</xsl:for-each>
<br/>
</xsl:for-each>
Folie 12
13. »XPath 2.0«
Schleife und Bedingung
Schleife -> spart rekursive aufrufe
<xsl:value-of select=quot;for $i in (1 to 6) return $i*2[$i > 2]quot;/>
If then else -> spart choose when
<xsl:variable name=quot;testquot; as=quot;xs:integerquot;>100</xsl:variable>
<xsl:value-of select=quot;if ($test ge 100) then 'gross' else 'klein'quot;/>
Folie 13
14. »XPath 2.0«
Suche und Datumsfunktionen
search-replace
<xsl:variable name=quot;testquot; as=quot;xs:stringquot;>doubleSlash ist super super Super
toll.</xsl:variable>
<xsl:value-of select=quot;replace($test,'super','ganz')quot;/>
mit regexp
<xsl:value-of select=quot;replace($test,'W','<br>')quot; disable-output-
escaping=quot;yesquot;/>
Datumsfunktionen
<xsl:variable name=quot;heutequot; select=quot;current-date()quot; as=quot;xs:datequot;/>
normal
<xsl:value-of select=quot;$heutequot;/>
formatiert
<xsl:value-of select=quot;format-date($heute,'[D01].[M01].[Y0001]')quot;/>
Folie 14
15. »XSLT 2.0 und XPath 2.0«
Wann kann ich das jetzt nutzen?
Folgende XSLT Prozessoren unterstützen die 2.0 Features
bislang:
Saxon 9b.
Altova XML 2008.
Keine konkreten Angaben,
ob und wann 2.0 eingeführt wird bei:
Xalan
Microsoft MSXML (.NET)
Folie 15
16. »XSLT 2.0 und XPath 2.0«
Referenzen
> Thomas Meinike
http://www.iks.hs-merseburg.de/~meinike/
> D. Pawson
http://www.dpawson.co.uk/xsl/rev2/rev2.html
> Jeni Tennison
http://www.jenitennison.com/xslt/
> W3C
http://www.w3.org/TR/xslt20/
http://www.w3.org/TR/xpath20/
Folie 16
17. Vielen Dank!
Für mehr Informationen
und weitere Fragen:
»Kontaktiern Sie uns unter
07541-70078-0 oder info@doubleSlash.de«
doubleSlash Edmund Hierlemann
Net-Business GmbH Tel.: 07541-70078-0
Otto-Lilienthal-Str. 2 info@doubleSlash.de
D-88046 Friedrichshafen
http://blog.doubleSlash.de
Folie 17