Your SlideShare is downloading. ×
0
XSLT 2.0 und XPath 2.0

»Workshop Technology Days 2008«


Stand: Februar 2008
Version: 1.1




doubleSlash                ...
»Überblick und Inhalt«
Neuerungen zu den Versionen 2.0


 >   Warum XSLT 2.0 und XPath 2.0?

 >   XSLT 2.0 Features und ...
»Warum XSLT 2.0 und XPath 2.0«
XSLT 1.0


 
 >   Spezifikationen 1.0 ist über 8 Jahre alt.

 
 >   Verarbeitung erfolgt ...
»Warum XSLT 2.0 und XPath 2.0«
XPath 1.0



  >•   Spezifikation ist über 8 Jahre alt.
  >•   Typsicherheit.

  >•   Keine...
»XSLT 2.0 und XPath 2.0«
...da war doch noch was




                            XSLT 2.0 und XPath 2.0 löst
             ...
»XSLT 2.0 und XPath 2.0«
Features und Syntax




 Beispiele gefällig?




                           Folie   6
»XSLT 2.0«
Sequenzen


 anstelle der RTF (result tree        <xsl:variable name=quot;sequencequot;
  fragments) werden se...
»XSLT 2.0«
Datentypen


 string     Datentypen sicherstellen
 double     <xsl:variable name=quot;test” as=quot;xs:intege...
»XSLT 2.0«
Funktionen


<!-- function addierer -->
<xsl:function name=quot;a:addiererquot;>
 <!-- Datentyp-Unterstützung -...
»XSLT 2.0«
Gruppen


<xsl:function name=quot;a:groupquot;>
     <xsl:param name=quot;contextquot;></xsl:param>
     <xsl:f...
»XSLT 2.0«
Analyze String mit Regexp Unterstützung


 <xsl:template match=quot;commentquot;>
     <xsl:analyze-string sele...
»XPath 2.0«
to-Operator


<xsl:value-of select=quot;1 to 6quot;/>

keine rekursionen mehr
<xsl:for-each select=quot;person...
»XPath 2.0«
Schleife und Bedingung



Schleife -> spart rekursive aufrufe
<xsl:value-of select=quot;for $i in (1 to 6) ret...
»XPath 2.0«
Suche und Datumsfunktionen


search-replace
<xsl:variable name=quot;testquot; as=quot;xs:stringquot;>doubleSla...
»XSLT 2.0 und XPath 2.0«
Wann kann ich das jetzt nutzen?


Folgende XSLT Prozessoren unterstützen die 2.0 Features
bislang...
»XSLT 2.0 und XPath 2.0«
Referenzen


  >   Thomas Meinike
       http://www.iks.hs-merseburg.de/~meinike/
  >   D. Paws...
Vielen Dank!

Für mehr Informationen
und weitere Fragen:
»Kontaktiern Sie uns unter
07541-70078-0 oder info@doubleSlash.de...
Upcoming SlideShare
Loading in...5
×

Neues von XSLT 2.0 und XPath 2.0

1,625

Published on

Was tut sich neues in XSLT und XPATH 2.0?

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,625
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Neues von XSLT 2.0 und XPath 2.0"

  1. 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. 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. 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. 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. 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. 6. »XSLT 2.0 und XPath 2.0« Features und Syntax  Beispiele gefällig? Folie 6
  7. 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
  8. 8. »XSLT 2.0« Datentypen  string Datentypen sicherstellen  double <xsl:variable name=quot;test” as=quot;xs:integerquot;>12</xsl:variable>  integer <xsl:value-of select=quot;$test instance of xs:integerquot;/>  Boolean aber auch:  dateTime  gDay  gMonth  anyURI  ... uvm. Folie 8
  9. 9. »XSLT 2.0« Funktionen <!-- function addierer --> <xsl:function name=quot;a:addiererquot;> <!-- Datentyp-Unterstützung --> <xsl:param name=quot;numberquot; as=quot;xs:integerquot;/> <xsl:param name=quot;number2quot; as=quot;xs:integerquot;/> <xsl:value-of select=quot;$number + $number2quot;/> </xsl:function> Folie 9
  10. 10. »XSLT 2.0« Gruppen <xsl:function name=quot;a:groupquot;> <xsl:param name=quot;contextquot;></xsl:param> <xsl:for-each-group select=quot;$context/personquot; group-by=quot;originquot;> <xsl:sort select=quot;current-grouping-key()quot; order=quot;descendingquot; /> Origin: <xsl:value-of select=quot;current-grouping-key()quot;/><br/> <xsl:for-each select=quot;current-group()quot; > <xsl:value-of select=quot;name/givenquot;/><xsl:text> </xsl:text><xsl:value-of select=quot;name/familyquot;/> <xsl:if test=quot;position() != last()quot;>,</xsl:if> </xsl:for-each> <br/><br/> </xsl:for-each-group> </xsl:function> Folie 10
  11. 11. »XSLT 2.0« Analyze String mit Regexp Unterstützung <xsl:template match=quot;commentquot;> <xsl:analyze-string select=quot;.quot; regex=quot;S.*quot; flags=quot;mquot;> <xsl:matching-substring> <b><xsl:value-of select=quot;.quot; /></b><br/> </xsl:matching-substring> </xsl:analyze-string> </xsl:template> Folie 11
  12. 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. 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. 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','&lt;br&gt;')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. 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. 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. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×