• Like
  • Save
Neues von XSLT 2.0 und XPath 2.0
Upcoming SlideShare
Loading in...5
×
 

Neues von XSLT 2.0 und XPath 2.0

on

  • 3,408 views

Was tut sich neues in XSLT und XPATH 2.0?

Was tut sich neues in XSLT und XPATH 2.0?

Statistics

Views

Total Views
3,408
Views on SlideShare
3,354
Embed Views
54

Actions

Likes
0
Downloads
9
Comments
0

2 Embeds 54

http://blog.doubleslash.de 49
http://www.slideshare.net 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Neues von XSLT 2.0 und XPath 2.0 Neues von XSLT 2.0 und XPath 2.0 Presentation Transcript

    • 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
    • »Ü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
    • »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
    • »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
    • »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
    • »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 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
    • »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
    • »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
    • »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
    • »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
    • »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
    • »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
    • »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
    • »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
    • »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
    • 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