1 / 44

.NET web szolgáltatások

.NET web szolgáltatások. XSLT programozás XSLT hivatkozások Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv. Kötelező feladat. Két fős csoportok NIM játék megvalósítása 1 függvény (WSDL-ben fogom definiálni) Game() Regisztráció az UDDI-ban fellelt Játékmesterben

kirk-reed
Download Presentation

.NET web szolgáltatások

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. .NET web szolgáltatások XSLT programozás XSLT hivatkozások Bilicki Vilmos bilickiv@inf.u-szeged.hu www.inf.u-szeged.hu/~bilickiv

  2. Kötelező feladat • Két fős csoportok • NIM játék megvalósítása • 1 függvény (WSDL-ben fogom definiálni) • Game() • Regisztráció az UDDI-ban fellelt Játékmesterben • Csoport honlap létrehozása • Lehessen • Vezérelni a NIM játékot • Statisztikát nézegetni

  3. Az előző előadás tartalma • Bevezetés az XSLT-be • Bevezetés az XSLT-be • Sablon szabályok • Fejlett sablon szabályok • Stíluslapok kombinálása • A dokumentum tartalom sorbarendezése • A kimenet testreszabása • Stíluslapok beszúrása és importálása

  4. XSLT stíluslap struktúra • Egy <xsl:stylesheet> elem, vagy <xsl:transform> • Felső szintű elemek. Pl.: sablon szabályok • XSLT, Implementáció spec., Felh. Def. • Utasítás elemek <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> </xsl:stylesheet> <xsl:template match="/"> … … … </xsl:template> <xsl:apply-templates select="employees/employee" /> <xsl:template match="employee"> … … … </xsl:template> <xsl:value-of select="name" />

  5. Sablon szabályok definiálása <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <HTML><xsl:apply-templates/> </HTML> </xsl:template> <xsl:template match="employees"> <H1>Employees details</H1> <xsl:apply-templates/> </xsl:template> <xsl:template match="employee"> <xsl:value-of select="name"/>, <xsl:value-of select="salary"/> </xsl:template> </xsl:stylesheet>

  6. Rendezés • <xsl:sort> a következő tulajdonságokkal rendelkezik: • order – "ascending"vagy"descending" • case-order – "upper-first"vagy"lower-first" • lang – nyelv kód (pl.:"en") • data-type – "text"vagy"number" • Például • Rendezzük az <employee> elemeket <salary> elem alapján csökkenő sorrendben <xsl:apply-templates select="employee"> <xsl:sort select="salary" order="descending" data-type="number"/> </xsl:apply-templates>

  7. Az előadás tartalma • XSLT programozás • Nevesített sablonok • Váltózó, paraméterek • Ciklusok, feltételek • XSLT hivatkozások • Több XML dokumentum használata egy stíluslapban • Kereszthivatkozások • Kereszthivatkozások az eredmény dokumentumban

  8. Források • Microsoft 1913A official curriculum • http://www.gotdotnet.com/ • Eszköz • http://www.xmlcooktop.com/

  9. XSLT programozás • Nevesített minták • Definiálása • Hivatkozás nevesített mintára • Váltózó, paraméterek • Változók deklarálása • Értékadás • Változók használata • Eredmény fa részletek létrehozása és használata • Paraméterek használata • Paraméterek átadása minta szabályoknak • Paraméterek átadása stíluslapoknak • Ciklusok, feltételek • Ciklusok használata • Sorbarendezés • Elágazások

  10. Nevesített minták • Feladatuk: • A kód egyszerűsítés • Kód újrafelhasználás • Egyszerű minta a név attribútum ki van töltve • Függvények procedurális programozási nyelvekben • Tartalmazhat egyezés elemet is (match) <xsl:template name="concatnames"> <xsl:value-of select="firstname"/> <xsl:value-of select="lastname"/> </xsl:template>

  11. Nevesített minta meghívása • Meghívható: <xsl:call-template> • Az aktuális csomópont és csomópont lista változatlan (<xsl:apply-template> esetén) • Ha nem találja akkor hiba jelzéssel tér vissza <xsl:template match="employee"> <xsl:call-template name="concatnames"/><br/> </xsl:template>

  12. 1. DEMÓ

  13. Változó és paraméterek • Változók deklarálása • Értékadás • Változók használata • Eredmény fa részletek létrehozása és használata • Paraméterek használata • Paraméterek átadása minta szabályoknak • Paraméterek átadása stíluslapoknak • DEMÓ

  14. Változók deklarálása • Adattárolásra használandók • Ha egyszer ki lett értékelve nem lehet megváltoztatni (ezzel biztosítjuk azt, hogy a szabályok sorrendje tetszőleges, nem hatnak egymásra, a végeredmény azonos) • A hatókör a definiálás helyétől függ • A mintában definiáltak lokálisak • A legfelsőbb szinten deklaráltak globálisak • Típusai: • karakterlánc • szám • logikai • csomópont gyűjtemény

  15. Érték adás • A select attribútummal • Egy idézőjel a Washington elem értékét jelentené • A sablon tartalmával <xsl:variable name="state" select="'Washington'"/> <xsl:variable name="state">Washington</xsl:variable>

  16. Változók használata <xsl:variable name="country" select="' US '"/> <xsl:variable name="currency" select="' dollars'"/> <xsl:template match="employee"> <xsl:variable name="job" select="concat(jobtitle, 's Department')"/> <xsl:value-of select="name"/> works in the <xsl:value-of select="$job"/> and earns <xsl:value-of select="salary"/> <xsl:value-of select="$country"/> <xsl:value-of select="$currency"/><br/> </xsl:template>

  17. Eredmény Fa rész használata <xsl:variable name="pagefooter"> <table><tr> <td>Date</td> <td><xsl:value-of select="$deptname"></td> <td>Time</td> </tr></table> </xsl:variable> <xsl:template match="/"> <HTML><BODY> <!--Various outputs--> <xsl:copy-of select="$pagefooter"> </BODY></HTML> </xsl:template>

  18. Változók használata • A hívó adja meg az értékét • Alapértelmezett érték beállítható • Lokális paraméterek • Sablon szabályban • Global Parameters • Stílus lapban

  19. Sablon paraméterek átadása <xsl:template match="employee"> <xsl:call-template name="contact-details"> <xsl:with-param name="emp" select="name"/> </xsl:call-template> </xsl:template> <xsl:template name="contact-details"> <xsl:param name="emp"/> <xsl:value-of select="$emp"/>'s contact is <xsl:value-of select="next_of_kin/name"/><br/> </xsl:template>

  20. Stíluslap paraméter átadása XslTransform xslt = new XslTransform(); xslt.Load(stylesheet); XsltArgumentList xslArg = new XsltArgumentList(); DateTime d = DateTime.Now; xslArg.AddParam("date", "", d.ToString()); XmlTextWriter writer = new XmlTextWriter(Console.Out); xslt.Transform(new XPathDocument(filename), xslArg, writer, null); writer.Close();

  21. 1.5. DEMÓ

  22. Ciklusok, elágazások • Ciklusok használata • Sorbarendezés • Elágazások

  23. Ciklus • Csomópontok halmazán mehetünk végig • A <xsl:for-each> utasítás • <xsl:apply-template> is ugyanezt csinálja • Biztonságosabb, nem függ a szerkezeti változásoktól • A ciklus gyorsabb és átláthatóbb • Aktuális csomópont pozíciója: position() <xsl:template match="employees"> <xsl:for-each select="employee"> <xsl:value-of select="name"/><br/> </xsl:for-each> </xsl:template>

  24. Sorrend megadása • Az <xsl:sort> utasítás a <xsl:for-each> utasításon belül • Ugyanaz mint az <xsl:apply-template><xsl-sort> eleme <xsl:template match="employees"> <xsl:for-each select="employee"> <xsl:sort select="region" order="descending"/> <xsl:sort select="name"/> <xsl:value-of select="name"/><br/><br/> </xsl:for-each> </xsl:template>

  25. Elágazások <xsl:template match="employee"> <xsl:if test="salary>50000"> High Tax -- </xsl:if> <xsl:value-of select="name"/><br/> </xsl:template> <xsl:template match="employee"> <xsl:choose> <xsl:when test="salary>50000">High -- </xsl:when> <xsl:when test="salary>25000">Avg --</xsl:when> <xsl:otherwise>Low --</xsl:otherwise> </xsl:choose> <xsl:value-of select="name"/><br/> </xsl:template>

  26. 2. DEMÓ

  27. Tippek • Használjunk nevesített sablonokat • Használjuk a <xsl:apply-templates> a gyakran változó dokumentumokhoz • Használjuk az <xsl:for-each> -et a statikus dokumentumokhoz • Használjuk az <xsl:choose> -t több feltétel tesztelésére

  28. Hivatkozás XML dokumentumokra • Több XML dokumentum használata egy stíluslapban • Kereszthivatkozások • Kereszthivatkozások az eredmény dokumentumban

  29. Hivatkozott dokumentumok használata AddressbyRegion.xsl Regions.xml <xsl:template match="employee"> <xsl:value-of select="surname"/> <br/> <xsl:value-of select="document('Regions.xml') //region[@code=current()/rgn]/@place"/> <br/><br/> </xsl:template> Employees.xml <employee> <surname>Philips</surname> <rgn>R</rgn> </employee> <region code="R" place="Redmond"/> <region code="D" place="Dallas"/>

  30. Hivatkozott dokumentumok <regions> <region place="Dallas" href="dallasemp.xml" /> <region place="Redmond" href="redmondemp.xml" /> </regions> Regions.xml <xsl:for-each select="region"> <xsl:value-of select="@place"/> <br/> <xsl:for-each select="document(@href)//employee"> <xsl:value-of select="surname"/> <br/> </xsl:for-each> <br/> </xsl:for-each> RegionLookup.xsl

  31. Alap URI megadása • Alapértelmezésként az URI-k a stíluslaphoz vannak viszonyítva • A document() függvény második paraméterében megadható egyébb alap URI <regions> <region place="Dallas" href="dallasemp.xml" /> <region place="Redmond" href="redmondemp.xml" /> </regions> Regions.xml <xsl:for-each select = "document(@href, 'www.litware.com/data')//employee"> <xsl:value-of select="surname"/> <br/> </xsl:for-each> RegionLookup.xsl

  32. 3. DEMÓ

  33. Kereszthivatkozások • Az összefüggő információk egy dokumentumba sűrítése • Implicit kereszthivatkozás • Explicit kereszthivatkozás • XSLT kulcs definiálása • Csomópontok címzése XSLT kulcsokkal • 4. Demó • Kulcsok kiolvasása más dokumentumokból

  34. Az összefüggő információk egy dokumentumba sűrítése <orders> <order id="10285" customer-code="191"> <product code="654"/> </order>… <customers> <customer code="191"> <name>Carol Philips</name> <address>432, 23rd Way, Redmond</address> </customers>… <products> <product code="654"> <description>Wool sweater</description> <price>27.99</price> </product> </products>… </orders>

  35. Implicit kereszthivatkozások • XPath segítségével hivatkozunk a kapcsolódó információra • Problémás: • Nehéz olvasni, kódolni • Nehéz karbatartani <xsl:apply-templates select=”/orders/customres/customer[@code=current()/@customer-code]”/>

  36. Explicit Kereszthivatkozások • Az adatok szabványos attribútumokon keresztül csatlakoznak • ID, IDREF, vagy IDREFS XML Sémában • Adatok címzése • Használjuk az XSLT id(objektum) függvényt • Problémák • A sémát meg kell osztani • Attribútumokat használunk hivatkozásra nem elemeket

  37. XSLT Kulcs definiálása • Az adatokat XSLT kulcsokkal is összekapcsolhatjuk • Kulcs bármilyen tartalomból készíthető • Nem kell séma • Index készíthető • XSLT kulcsok definiálása <xsl:key name="custcode" match="customer" use="zip"/> <xsl:key name="prodcode" match="product" use="@code"/>

  38. Csomópontok címzése XSLT kulcsokkal • Karakterlánc argumentummal • Csomópont gyűjteménnyel <xsl:key name="custcode" match="customer" use="@code"/> <xsl:template match="order"> <xsl:apply-templates select="key('custcode',customer/@code)"/> </xsl:template> <xsl:key name="prodcode" match="product" use="@code"/> <xsl:template match="order"> <xsl:apply-templates select="key('prodcode',item/code)"/> </xsl:template>

  39. 4. DEMÓ

  40. Egyedi azonosítók gyártása <xsl:for-each select="//product"> <tr> <td><a href="#{generate-id(description)}"> <xsl:value-of select="description"/></a></td> <td><xsl:value-of select="department"/></td> <td><xsl:value-of select="price"/></td> </tr> </xsl:for-each> <xsl:for-each select="//product/description"> <b><a name="{generate-id()}"> <xsl:value-of select="../description"/></a></b></br> <xsl:value-of select="../details"/><br/> </xsl:for-each>

  41. 5. DEMÓ

  42. Tippek • Definiáljuk az alap URI-t a document() függvényhez • Használjunk kulcsokat

  43. Az előadás tartalma • Bevezetés az XSLT-be • Bevezetés az XSLT-be • Sablon szabályok • Fejlett sablon szabályok • Stíluslapok kombinálása • A dokumentum tartalom sorbarendezése • A kimenet testreszabása • Stíluslapok beszúrása és importálása

  44. A következő előadás tartalma • Web szolgáltatások • WSDL • WS-profilok

More Related