1.NET web szolgáltatások XSLT Bilicki Vilmos
2 Az előző előadás tartalma ASP.NET felhasználó azonosítás IIS Név nélküli Alap Kivonatolt Windows beágyazott Űrlap alapú Microsoft Passport XML kezelés XML dokumentum XPATH kifejezések Bevezető XPath adat modell Navigálás a dokumentumban elérési utak segítségével Operátorok és Függvények használata elérési utakban
3 Az előadás tartalma 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 Források Microsoft 1913A official curriculum Eszköz
5 Bevezetés az XSLT-be Az XSLT alkalmazási területei Az XSLT mint deklaratív programozási nyelv XSLT stíluslap struktúra Minták definiálása Stíluslapok statikus használata Stíluslapok dinamikus használata Demó
6 Az XSLT felhasználási területei W3C gondozza XSL-ből származik Egy XML dokumentum más struktúrájú domukentummá konvertálása XML HTML-é konvertálása XML szöveggé konvertálása Adat szűrése, kinyerése, összefűzése
7 XSLT mint deklaratív programozási nyelv Szabályokon, nem eljárásokon alapul A stílus lap szabályok bármilyen sorrendben végrehajthatóak A stílus lap szabályok egymástól függetlenek lehetnek A stílus lap szabályok független a bevitel, kimenet sorrendtől
8 XSLT stíluslap struktúra Egy elem, vagy Felső szintű elemek. Pl.: sablon szabályok XSLT, Implementáció spec., Felh. Def. Utasítás elemek <xsl:template match="/"> … … … </xsl:template> <xsl:apply-templates select="employees/employee" /> <xsl:template match="employee"> … … … </xsl:template> <xsl:value-of select="name" />
9 Sablon szabályok definiálása A csomópontok kiválasztása a egyezés tuladjonságával A gyökér elem sablon szabályának definiálása (megvalósítás függő) Kimenet produkálása a elemmel
10 Stíluslapok statikus használata Stíluslap statikus használata egy XML dokumentumban Használjuk a elemet az XML dokumentumban Adjuk meg a stíluslap helyét … XML document content … … XML document content …
11 Stíluslapok dinamikus használata XslTransform használata (jelenleg) XslCommand használata (2005) XslTransform xslttrans = new XslTransform(); eloadas\stylesheet0701.xsl"); eloadas\demo1eredmeny.txt", null); XslTransform xslttrans = new XslTransform(); eloadas\stylesheet0701.xsl"); eloadas\demo1eredmeny.txt", null); XsltCommand xslt = new XsltCommand(); xslt.OnMessageEvent += new QueryEventHandler(MessageCallBack); xslt.Compile("output.xsl"); xslt.Execute("books.xml", "books.html"); XsltCommand xslt = new XsltCommand(); xslt.OnMessageEvent += new QueryEventHandler(MessageCallBack); xslt.Compile("output.xsl"); xslt.Execute("books.xml", "books.html");
12 DEMÓ 1 Statikus XSLT sablon használat Dinamikus XSLT sablon használat Informatika weboldal
13 Sablon szabályok Sablon szabályok definiálása Sablon tartalom definiálása Több sablon szabály használata Literális eredmény elemek használata
14 Sablon szabályok definiálása A szintakszis a leggyakrabban alkalmazott elem match vagy name XSLT Fa Modell Az XSLT transzformációk sorrendje IE alap stíluslapja: res://msxml3.dll/defaultss.xsl
15 A sablon tartalom definiálása a csomópont szöveges értékét írja ki a csomópont XML tartalmát írja ki James Wilson Kathryn Wilson Spouse James Wilson Kathryn Wilson Spouse
16 Sablon szabályok definiálása <xsl:stylesheet version="1.0" xmlns:xsl=" Employees details, <xsl:stylesheet version="1.0" xmlns:xsl=" Employees details,
17 Szöveges eredmény elemek HTML, szkript, vagy szöveg másolása a kimeneti fára XSLT részeket értelmezi az értelmező A névtér elemek kimásolódnak
18 Fejlett sablon szabályok Sablon szabály minták Sablonok alkalmazása válogatott csomópontokra Névterek használata stíluslapokban Demó 2
19 Sablon szabály minták XPath kifejezések használata A rekurzív művelet használata (//) Boolean operátorok használata employees/employee/empname //employee/empname employees/employee[type='full' or type='part']
20 Sablonok illesztése válogatott mintára alapértelmezett működése A sablonokat a gyermek elemekre illeszti Csak adott gyermek elemekre illeszteni: A select tulajdonság segítségével
21 Névterek használata <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:nw="urn:nwtraders" xmlns:con="urn:contoso" >, <xsl:stylesheet version="1.0" xmlns:xsl=" xmlns:nw="urn:nwtraders" xmlns:con="urn:contoso" >,
22 DEMÓ 2. Apply-template Néhány XPath kifejezés Select
23 Ajánlott megoldások Használjunk explicit névtereket Ez lehetővé teszi az elem nevek szabad használatát Definiáljunk szabályokat a gyökér elemre Ekkor biztosak lehetünk a kódunk működésében
24 Tartalom sorbarendezése Csomópontok rendezése Több rendezési kulcs definiálása A sorbarendezés finomítása DEMÓ 3
25 Csomópontok sorbarendezése Az XSLT segítségével sorbarendezhetjük a csomópontokat Használjuk a a elemben Példa Minden elemre séma illesztés A elemek rendezése érték alapján
26 Több rendező kulcs definiálása Több kulcsot is definiálhatunk Több elem segítségével Példa Rendezzük az elemeket szerint Majd az elemek azonos elemben név szerint vannak rendezve
27 Rendezés finomítása 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 elemeket elem alapján csökkenő sorrendben <xsl:sort select="salary" order="descending" data-type="number"/> <xsl:sort select="salary" order="descending" data-type="number"/>
28 DEMÓ 3 Sorbarendezés Növekvő Csökkenő Többszintű
29 A kimenet testreszabása Számok formázása A szám formátumok lokalizálása A szóközök kezelése Az eredmény dokumentum definiálása XML kimenet definiálása HTML és szöveg kimenet definiálása
30 format-number( , '#000') Használjuk a,-t mint csoportosító és a.-t mint decimális eválasztót Számok formázása A format-number() segítségével format-number( , '#,000.00') , format-number(number, format-string) Gyakori megoldások 0 a szükséges és # az opcionális számra format-number() használata
31 Használjuk a -ot a lokalizált szám formátum definiálására Lokális szabályok format-number()-ben <xsl:decimal-format name="Euro" grouping-separator="." decimal-separator=","/> <xsl:decimal-format name="Euro" grouping-separator="." decimal-separator=","/> format-number(1234.5, '#,000.00', 'Euro') 1.234,50 Példa
32 A B C Hello World a white space node a text node another text node Hello World Hello World Példák Szóköz eltávolítása minden elemből Szóköz megtartása megadott csomópontoknál Szóköz eltváloítása megadott csomópontokból Szóköz eltávolítása Szóköz megtartása Szóköz kezelése
33 Kimeneti formátum Az XSLT stílus lapok két fázisban dolgozódnak fel: Egy eredmény fa generálódik Az eredmény fa a kimeneti dokumentumba íródik A segítségével megadhatjuk a kimenet típusát XML kimenet HTML kimenet Szöveg kimenet
34 XML kimenet Az XSLT két XML kimenet típust tud generálni Jól formázott XML dokumentumokat Külső álltalános egyedek Az elemben adhatjuk meg <xsl:output method="xml" encoding="iso " indent="yes" cdata-section-elements="company script" doctype-system="employees.dtd"/> <xsl:output method="xml" encoding="iso " indent="yes" cdata-section-elements="company script" doctype-system="employees.dtd"/>
35 A segítségével lehet a HTML kimenetet testreszabni HTML, Szöveg kimenet A segítségével lehet a szöveget testreszabni <xsl:output method="html" encoding="iso " indent="yes"/> <xsl:output method="html" encoding="iso " indent="yes"/> <xsl:output method="text" encoding="us-ascii"/> <xsl:output method="text" encoding="us-ascii"/>
36 DEMÓ 4. Formázás Számok Szóközök Kimenet testreszabása XML HTML Szöveg
37 … … … … Starter.xsl Stíluslapok beszúrása Egy stíluslap felhasználhat másik stíluslapokat Ugyanúgy kell használnunk őket … Példa
38 Stíluslapok importálása Egy stíluslap felhasználhat másik stíluslapokat Az importált stíluslapok felülírhatóak … … Starter.xsl … Példa
39 Felülírt szabályok Felülírás engedélyezése … … Starter.xsl Példa:
40 Több stíluslapot tudunk beilleszteni és importálni Import precedence rules apply Import sorrend New.xsl import A.xsl include C.xsl include E.xsl … import A.xsl include C.xsl include E.xsl … A.xsl C.xsl import D.xsl D.xsl … … E.xsl import F.xsl F.xsl … … import B.xsl B.xsl … …
41 Tippek Definiáljunk konzisztens numerikus formátumot Ne használjuk az elemet amíg nem szükséges Az XSLT gyakran kitalálja a követelményeket Definiáljunk könyvtárakat az atomi műveleteknek Újrahasznosítás:, testreszabás: Konzisztencia, skálázhatóság Fejlesztési, karbantartási idő csökken
42 Az előadás tartalma 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
43 A következő előadás tartalma ZH
44 ZH tartalom Web szolgáltatások SOA.NET platform Architektúra Objektumok Meta Adatok Futtató környezet Szemétgyűjtő ADO.NET Adatközpontú alkalmazás Csatlakozás adatforrásokhoz Online műveletek Offline műveletek
45 ZH tartalom ASP.NET Web űrlapok Vezérlés, megjelenítés elkülönítése Követés, hibakeresés Felhasználói bevitel ellenőrzése Web űrlapok Vezérlés, megjelenítés elkülönítése Követés, hibakeresés Felhasználói bevitel ellenőrzése Saját vezérlők gyártása Állapot kezelés Gyorstár kezelés
46 ZH tartalom XPATH XML dokumentum XPATH kifejezések Bevezető XPath adat modell Navigálás a dokumentumban elérési utak segítségével Operátorok és Függvények használata elérési utakban XSLT 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