Mar 20, 2016
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
Bevezetés az XSLT-beSablon szabályokFejlett sablon szabályok
Stíluslapok kombinálásaA dokumentum tartalom sorbarendezéseA kimenet testreszabásaStíluslapok beszúrása és importálása
4
Források Microsoft 1913A official curriculum
http://www.gotdotnet.com/ Eszköz
http://www.xmlcooktop.com/
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 alapulA stílus lap szabályok bármilyen sorrendben
végrehajthatóakA 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 <xsl:stylesheet> elem, vagy <xsl:transform>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
</xsl:stylesheet>
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 <xsl:template>
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 <xsl:value-of> elemmel
<xsl:template match= "/"><xsl:value-of select="//employee"/>
</xsl:template>
10
Stíluslapok statikus használata Stíluslap statikus használata egy XML
dokumentumban Használjuk a <?xml-stylesheet …?> elemet az XML
dokumentumban Adjuk meg a stíluslap helyét
<?xml-stylesheet type="text/xsl" href="MySheet.xsl"?>
<employees> … XML document content …</employees>
11
Stíluslapok dinamikus használata XslTransform használata (jelenleg)
XslCommand használata (2005)
XslTransform xslttrans = new XslTransform(); xslttrans.Load(@"D:\users\bilickiv\dotnet\7es eloadas\stylesheet0701.xsl"); xslttrans.Transform(@"D:\users\bilickiv\dotnet\7es eloadas\demo0701.xml“, @"D:\users\bilickiv\dotnet\7es eloadas\demo1eredmeny.txt", null);
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 <xsl:template> szintakszis a leggyakrabban
alkalmazott elemmatch vagy name
XSLT Fa ModellAz XSLT transzformációk sorrendje<apply-templates>
IE alap stíluslapja:res://msxml3.dll/defaultss.xsl
15
A sablon tartalom definiálása <xsl:value-of> a csomópont szöveges értékét írja
ki
<xsl:copy-of> a csomópont XML tartalmát írja ki
<xsl:template match="employee"><xsl:value-of select="name"/><xsl:copy-of select="emergencycontact"/>
</xsl:template>
James Wilson<emergencycontact>
<name>Kathryn Wilson</name><relationship>Spouse</relationship><contactnumber>425123456</contactnumber>
</emergencycontact>
16
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>
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
<xsl:apply-templates> alapértelmezett működéseA sablonokat a gyermek elemekre illeszti
Csak adott gyermek elemekre illeszteni:A select tulajdonság segítségével <xsl:apply-
templates>
<xsl:template match="/"> <xsl:apply-templates select=”employee”/></xsl:apply-templates>
21
Névterek használata<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:nw="urn:nwtraders" xmlns:con="urn:contoso" >
<xsl:template match="nw:employee"> <xsl:value-of select="nw:name"/> </xsl:template>
<xsl:template match="con:employee"> <xsl:value-of select="con:surname"/>, <xsl:value-of select="con:given-name"/>, </xsl:template>
</xsl:stylesheet>
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 elemreEkkor 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ópontokatHasználjuk a <xsl:sort> a <xsl:apply-templates>
elemben Példa
Minden <employee> elemre séma illesztésA <employee> elemek rendezése <name>
érték alapján<xsl:apply-templates select="employee"> <xsl:sort select="name"/></xsl:apply-templates>
26
Több rendező kulcs definiálása Több kulcsot is definiálhatunk
Több <xsl:sort> elem segítségével Példa
Rendezzük az <employee> elemeket <region> szerint
Majd az <employee> elemek azonos <region> elemben név szerint vannak rendezve
<xsl:apply-templates select="employee"> <xsl:sort select="region"/> <xsl:sort select="name"/></xsl:apply-templates>
27
Rendezés finomítása <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>
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ásaHTML és szöveg kimenet definiálása
30
format-number(12345.729, '#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
<xsl:value-of select="format-number(salary, '#.00')"/>
format-number(12345.729, '#,000.00')
12346
12,345.73
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 <xsl:decimal-format> -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=","/>
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
<A><B>Hello</B> <C>World</C></A>
<xsl:strip-space elements="*"/>
Példák Szóköz eltávolítása minden elemből
Szóköz megtartása megadott csomópontoknál
<xsl:strip-space elements="name address"/>
<xsl:strip-space elements="*"/><xsl:preserve-space elements="paragraph heading"/>
Szóköz eltváloítása megadott csomópontokból
Szóköz eltávolítása <xsl:strip-space> Szóköz megtartása <xsl:preserve-space>
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ódikAz eredmény fa a kimeneti dokumentumba íródik
A <xsl:output> segítségével megadhatjuk a kimenet típusátXML kimenetHTML kimenetSzöveg kimenet
<xsl:output method="xml"… />
<xsl:output method="html"… />
<xsl:output method="text"… />
34
XML kimenet Az XSLT két XML kimenet típust tud generálni
Jól formázott XML dokumentumokatKülső álltalános egyedek
Az <xsl:output method="xml"/> elemben adhatjuk meg
<xsl:output method="xml" encoding="iso-8859-1" indent="yes" cdata-section-elements="company script" doctype-system="employees.dtd"/>
35
A <xsl:output method="html"/> segítségével lehet a HTML kimenetet testreszabni
HTML, Szöveg kimenet
A <xsl:output method="text"/> segítségével lehet a szöveget testreszabni
<xsl:output method="html" encoding="iso-8859-1" indent="yes"/>
<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
<xsl:stylesheet…> …
</xsl:stylesheet>
<xsl:stylesheet…> …</xsl:stylesheet>
Starter.xsl
Stíluslapok beszúrása Egy stíluslap felhasználhat másik stíluslapokat
Ugyanúgy kell használnunk őket
…
<xsl:include href="Starter.xsl"/>
Példa
<!–– use included rules ––>
38
Stíluslapok importálása Egy stíluslap felhasználhat másik stíluslapokat
Az importált stíluslapok felülírhatóak
<xsl:stylesheet…>
</xsl:stylesheet>
<xsl:stylesheet…> …</xsl:stylesheet>
Starter.xsl …
<xsl:import href="Starter.xsl"/><!–– use or override imported rules ––>
Példa
39
Felülírt szabályok
<xsl:stylesheet…> <xsl:import href="Starter.xsl"/>
</xsl:stylesheet>
Felülírás engedélyezése <xsl:apply-imports>
<xsl:stylesheet…> <xsl:template match="salary"> …</xsl:stylesheet>
Starter.xsl
<xsl:template match="salary">
</xsl:template><B> <xsl:apply-imports/> </B>
Példa:
40
Több stíluslapot tudunk beilleszteni és importálniImport precedence rules apply
Import sorrend
New.xsl
import A.xslinclude C.xslinclude 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 <xsl:output> elemet amíg
nem szükségesAz XSLT gyakran kitalálja a követelményeket
Definiáljunk könyvtárakat az atomi műveleteknekÚjrahasznosítás: <xsl:include>, testreszabás:
<xsl:import>Konzisztencia, skálázhatóságFejlesztési, karbantartási idő csökken
42
Az előadás tartalma Bevezetés az XSLT-be
Bevezetés az XSLT-beSablon szabályokFejlett sablon szabályok
Stíluslapok kombinálásaA dokumentum tartalom sorbarendezéseA kimenet testreszabásaStí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
• 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