Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programrendszerek fejlesztése Bilicki Vilmos

Hasonló előadás


Az előadások a következő témára: "Programrendszerek fejlesztése Bilicki Vilmos"— Előadás másolata:

1 Programrendszerek fejlesztése Bilicki Vilmos

2 A mai előadás tartalma: 2  XPath  XSLT

3 Irodalom 3  Don Box: Essential XML  us/dnxml/html/desxsdlib.asp us/dnxml/html/desxsdlib.asp  

4 XSD 4  Típusokat definiálhatunk  Beépített típusokat használhatunk (http://www.w3.org/TR/xmlschema-2/)http://www.w3.org/TR/xmlschema-2/  Szűkítéses származtatás  Az érték határok mellett a lexikális formátum is definiált (0,1-true,false) -> kompatibilitás

5 Értékek, Lexikális típusok 5  Beépített adattípusokat használhatunk

6 Típusok definiálása névtéren belül 6  A felhasználók definiálhatnak típusokat(UDT)  Típus definiáláskor hasonlóan az OO nyelvekhez célszerű névtereket használni

7 Példa 7 ...

8 XSD Alapelemek 8  Egyszerű típus:  xsd:simpleType  csak szöveges elemek értéke és attribútuma lehet  Összetett típus:  xsd:complexType  struktúrát definiál  Elem definiálása:  xsd:element  Attribútum definiálása:  xsd:attribute  Egyszerű típus konstrukció:  xsd:restriction  xsd:union  xsd:list

9 Használatuk XML-ben 9... Vagy

10 Szűkítési minták 10  xsd:enumeration (lista)  xsd:fractionDigits (a tizedesjegy után)  xsd:length ()  xsd:maxExclusive  xsd:maxInclusive  xsd:maxLength  xsd:minExclusive  xsd:minInclusive  xsd:minLength  xsd:pattern  xsd:totalDigits  xsd:whiteSpace

11 Példa: Egyszerű típusok

12 Példa: Lexikális szűkítés

13 Példa: felsorolás

14 Példa: unió

15 Komplex típusok 15  xsd:complexType:  xsd:sequence  xsd:choice  xsd:all  ref  névtér definiálás:  ##any  ##other  ##targetNamespace  ##local  Lista

16 16

17 XPath 17  W3C szabvány  Az XML dokumentumot faként kezeli  Gyökér  Elem  Tulajdonság  Szöveg  Megjegyzés  Feldolgozási információ  Névterek  Segítségével csomópontokat, vagy csomópontok csoportjait jelölhetjük ki  Elérési útvonalak csomópontok kijelölésére  XPath operátorok és függvények

18 Miért használjuk 18 Az XSLT stílus lapokban, minta illesztésre SQL Server-nél, XML-t is tud generálni XPointer-ben, a dokumentumok csatolására A DOM-ban,csomópontok kiválasztására XML XPath

19 XPath fa struktúra 19  XML dokumentum XPath faként Blue jeans Blue jeans "123" "Blue jeans" Root "urn:litware" "comment " "proc-instr" "urn:litwareinc"

20 A csomópontokból kinyerhető információk 20 Csomópont típusok Gyökér Egyed Tulajdonság Szöveg Névtér Feld. utasítások Megjegyzés Minden csomópont rendelkezik tulajdonságokkal  Tulajdonságok  Érték  Név  Szülő csomóp.  Gyerek csomóp.

21 Elérési útvonalak 21  Elérési útvonal egy olyan XPath kifejezés mely XML dokumentumban egy vagy több elemet jelöl ki  Lehet:  Relatív  A jelenlegi csomóponthoz viszonyítva  Abszolút  ”/” karakterrel kezdődik  A gyökérhez viszonyítja

22 Elérési útvonalak 22  Útvonalat ábrázol  Relatív útvonal  Abszolút útvonal  Balról jobbra vannak kiértékelve  Útvonal az XML dokumentumban  Minden lépés három részből áll  Példa lépés product/price /catalog/product/price axis::node-test[predicate]… child::product[price > 35.95][3]

23 Tengelyek 23 self child descendant parent attribute descendant-or-self ancestor ancestor-or-self following following-sibling preceding-sibling preceding code=123 Root node code= code=

24 Tengelyek használata 24  A gyakori XPath tengelyeknek van rövidített alakja is  A többinek nincs  Példa – ancestor::node() Tengely child attribute self parent Példa teljes child::price attribute::code self::node() parent::node() Példa rövidített descendant-or-self//price/descendant-or-self()/price

25 Csomópont kritériumok 25  Név alapján  Egy adott név  Minden csomóp.  Név és névtér  Minden csomóp. a név.térben  Típus alapján  axis::node-type-function()  Például a gyermek tengelyen: text() processing-instruction() comment() node() price * * aprefix:* aprefix:price Attribute examples

26 Predikátumok használata 26  Egy lépés egy vagy több predikátumot használhat  Csomópont gyűjtemény szűrése  Pozíció  Tartalom  Létezés alapján  Több predikátumot is használhatunk  Balról jobbra vannak kiértékelve axis::node-test[predicate]… product[last()]

27 Operátorok és függvények használata 27  Csomópont gyűjtemény kifejezések és függvények  Logikai kifejezések és függvények  Szám kifejezések és függvények  Karakterlánc kifejezések és függvények

28 Csomópont gyűjtemény 28  Az elérési útvonalak csomópont gyűjteményt adnak vissza  Csomópont gyűjteményeket (“ | ”) jellel tudunk összefűzni  Gyűjtemény függvények is használhatóak cd | dvd (cd | /*/(cd | dvd) cd[position() = last()] > 5.8])

29 Logikai kifejezések 29  Logikai operátorok = != > >= < <=  Logikai függvények  Példa: product[(price > 25 and price 50] true() false() boolean() not() lang() and not(discount-policy)]

30 Szám kifejezések 30  Egyenlőtlenség  Bináris operátorok, + - * div mod  Függvények  Példa account[balance >= - overdraft-limit] number() floor() ceiling() round() sum() account[sum(transaction-amount) > 0] account[(balance mod 100) > 0]

31 Karakterláncok 31  Kerekterlánc szűrő  Karakterlánc módosító customer[ "Mac") ] customer[ "Mac") ] 1, 1) "]") normalize-space(" To be or not to be ") substring-before("12/3/1964", "/") or substring-after translate(str, "aeiou", "AEIOU")

32 Tanácsok 32  Rövidített szintaxist használjuk ha van  Egyszerűbb karbantartani  Kerüljük a túl általános kifejezéseket: //  Ha tudjuk akkor szűkítsük le: /*/product  Ne használjuk a count() –ot arra hogy megnézzük van-e eleme  Használjuk a last()-ot  Ne használjuk a name() a név vizsgálatra  Használjuk a namespace-URI() és local-name() függvényeket helyette

33 Bevezetés az XSLT-be 33  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

34 Az XSLT felhasználási területei 34  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

35 XSLT képességek 35  Sok különböző transzformációra képes  Példák:  Egy XML szintaxis másikra cserélése  Adat szűrés  Adat rendezés  XML átstruktúrálás  Számítások elvégzése

36 XML HTML-é transzformálás 36  XSLT XML dokumentum XSLT stílus lap + XSLT processor HTML dokumentum Reid … Reid … Reid … Reid …

37 XML más XML szintakszissá 37  Más szintakszis XML dokumentum XSLT stílus lap + XSLT processor Más XML nyelvtan Reid … Reid …

38 XSLT mint deklaratív programozási nyelv 38  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

39 XSLT stíluslap struktúra 39  Egy elem, vagy Felső szintű elemek. Pl.: sablon szabályok XSLT, Implementáció spec., Felh. Def. Utasítás elemek … … … … … …

40 Sablon szabályok definiálása 40  A csomópontok kiválasztása a egyezés tulajdonsá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

41 Stíluslapok statikus használata 41  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 …

42 Stíluslapok dinamikus használata 42  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");

43 Sablon szabályok 43  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

44 Sablon szabályok definiálása 44  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

45 A sablon tartalom definiálása 45  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

46 Sablon szabályok definiálása 46 Employees details, Employees details,

47 Szöveges eredmény elemek 47  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

48 Sablon szabály minták 48  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']

49 Sablonok illesztése válogatott mintára 49  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

50 Névterek használata 50 , ,

51 Csomópontok sorbarendezése 51  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

52 Több rendező kulcs definiálása 52  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

53 Rendezés finomítása 53  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

54 A kimenet testreszabása 54  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

55 Számok formázása 55  A format-number() segítségével format-number( , '#000') Használjuk a,-t mint csoportosító és a.-t mint decimális eválasztót 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

56 Lokális szabályok 56  format-number()-ben Használjuk a -ot a lokalizált szám formátum definiálására format-number(1234.5, '#,000.00', 'Euro') 1.234,50 Példa

57 Kimeneti formátum 57  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

58 XML kimenet 58  Az XSLT két XML kimenet típust tud generálni  Jól formázott XML dokumentumokat  Külső általános egyedek  Az elemben adhatjuk meg

59 HTML, Szöveg kimenet 59  A segítségével lehet a szöveget testreszabni A segítségével lehet a HTML kimenetet testreszabni

60 Stíluslapok beszúrása 60  Egy stíluslap felhasználhat másik stíluslapokat  Ugyanúgy kell használnunk őket … … … … Starter.xsl … Példa

61 Stíluslapok importálása 61  Egy stíluslap felhasználhat másik stíluslapokat  Az importált stíluslapok felülírhatóak … … Starter.xsl … Példa

62 Felülírt szabályok 62  Felülírás engedélyezése … … Starter.xsl Példa:

63 Ciklusok, elágazások 63  Ciklusok használata  Sorbarendezés  Elágazások

64 Ciklus 64  Csomópontok halmazán mehetünk végig  A utasítás  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()

65 Sorrend megadása 65  Az utasítás a utasításon belül  Ugyanaz mint az eleme

66 Elágazások "> High Tax "> High Tax ">High ">Avg -- Low ">High ">Avg -- Low --

67 Hivatkozott dokumentumok használata 67 Regions.xml Philips R Philips R

68 A mai előadás tartalma: 68  XPath  XSD  XSLT

69 A következő előadás tartalma 69  JDBC


Letölteni ppt "Programrendszerek fejlesztése Bilicki Vilmos"

Hasonló előadás


Google Hirdetések