Top Banner
1 .NET web szolgáltatások XSLT Bilicki Vilmos [email protected] www.inf.u-szeged.hu/~bilickiv
46

.NET web szolgáltatások

Mar 20, 2016

Download

Documents

rowena

.NET web szolgáltatások. XSLT Bilicki Vilmos [email protected] www.inf.u-szeged.hu/~bilickiv. A z 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 - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: .NET web szolgáltatások

1

.NET web szolgáltatások

XSLT

Bilicki [email protected]/~bilickiv

Page 2: .NET web szolgáltatások

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

Page 3: .NET web szolgáltatások

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

Page 4: .NET web szolgáltatások

4

Források Microsoft 1913A official curriculum

http://www.gotdotnet.com/ Eszköz

http://www.xmlcooktop.com/

Page 5: .NET web szolgáltatások

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ó

Page 6: .NET web szolgáltatások

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

Page 7: .NET web szolgáltatások

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

Page 8: .NET web szolgáltatások

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" />

Page 9: .NET web szolgáltatások

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>

Page 10: .NET web szolgáltatások

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>

Page 11: .NET web szolgáltatások

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");

Page 12: .NET web szolgáltatások

12

DEMÓ 1•Statikus XSLT sablon használat•Dinamikus XSLT sablon használat•Informatika weboldal

Page 13: .NET web szolgáltatások

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

Page 14: .NET web szolgáltatások

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

Page 15: .NET web szolgáltatások

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>

Page 16: .NET web szolgáltatások

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>

Page 17: .NET web szolgáltatások

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

Page 18: .NET web szolgáltatások

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

Page 19: .NET web szolgáltatások

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']

Page 20: .NET web szolgáltatások

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>

Page 21: .NET web szolgáltatások

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>

Page 22: .NET web szolgáltatások

22

DEMÓ 2.•Apply-template

•Néhány XPath kifejezés•Select

Page 23: .NET web szolgáltatások

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

Page 24: .NET web szolgáltatások

24

Tartalom sorbarendezése Csomópontok rendezése Több rendezési kulcs definiálása A sorbarendezés finomítása DEMÓ 3

Page 25: .NET web szolgáltatások

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>

Page 26: .NET web szolgáltatások

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>

Page 27: .NET web szolgáltatások

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>

Page 28: .NET web szolgáltatások

28

DEMÓ 3•Sorbarendezés

•Növekvő•Csökkenő•Többszintű

Page 29: .NET web szolgáltatások

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

Page 30: .NET web szolgáltatások

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

Page 31: .NET web szolgáltatások

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

Page 32: .NET web szolgáltatások

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

Page 33: .NET web szolgáltatások

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"… />

Page 34: .NET web szolgáltatások

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"/>

Page 35: .NET web szolgáltatások

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"/>

Page 36: .NET web szolgáltatások

36

DEMÓ 4.•Formázás

•Számok•Szóközök

•Kimenet testreszabása•XML•HTML•Szöveg

Page 37: .NET web szolgáltatások

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 ––>

Page 38: .NET web szolgáltatások

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

Page 39: .NET web szolgáltatások

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:

Page 40: .NET web szolgáltatások

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

Page 41: .NET web szolgáltatások

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

Page 42: .NET web szolgáltatások

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

Page 43: .NET web szolgáltatások

43

A következő előadás tartalma

ZH

Page 44: .NET web szolgáltatások

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

Page 45: .NET web szolgáltatások

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

Page 46: .NET web szolgáltatások

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