1 Fejlett Programozási Technikák 2. 15/2. Fejlett Programozási Technológiák 2. 2 A mai előadás tartalma: DTD XSD XPath XSLT.

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Tananyag: konzultáció
JQuery 8. előadás.
Grafikus tervezőrendszerek programozása 10. előadás.
Hatékonyságvizsgálat, dokumentálás
1 XML •Az Extensible Markup Language (XML, kiterjeszthető leíró nyelv) a W3C által ajánlott általános célú leíró nyelv speciális célú leíró nyelvek létrehozására.
Delphi programozás alapjai
Extensible Markup Language
Táblázat kezelő programok
JavaScript.
Turbo Pascal Változók.
Programrendszerek fejlesztése Bilicki Vilmos
Előadás vázlat Az XML története és alkalmazási területe
Hernyák Zoltán XML validálás.
Adatbázis-kezelés ACCESS program:
Közös kinézet Mester oldal, témák, skin-ek, css Webalkalkalmazás fejlesztése ASP.NET-ben Krizsán Zoltán.
PHP Webprogramozás alapjai
ADATBÁZISOK
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Önleíró adatok: XML INFO ÉRA, Békéscsaba
Webszerkesztés Stíluslapok (CSS).
Az UML kiterjesztési lehetőségei
SOAP alapismeretek A SOAP egy egyszerű XML alapú protokoll, ami lehetővé teszi, hogy az alkalmazások információt cseréljenek a HTTP-én keresztül. Forrás:
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
WEB Technológiák WEB-DB és XML ME Általános Informatikai Tsz. dr. Kovács László.
Microsoft Access Űrlapok tervezése.
XML támogatás adatbázis-kezelő rendszerekben
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Az SQL nyelv alapjai.
1.NET web szolgáltatások XSLT Bilicki Vilmos
.NET web szolgáltatások
1.NET web szolgáltatások XSLT programozás XSLT hivatkozások Bilicki Vilmos
A JavaScript bemutatása
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Funkcionális programozás 2. gyakorlat
Grafikus tervezőrendszerek programozása 11. előadás.
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
Operátorok Értékadások
Weboldalak tervezése (X)HTML.
Hernyák Zoltán XSLT transzformációk.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
Készítette: Rummel Szabolcs Elérhetőség:
Java programozási nyelv Tömbök
XML fejlesztések TSQL fejlesztések Tábla paraméter SQLCLR fejlesztések 8k limit feloldása Több paraméteres UDA-ek Ordered UDF-ek Entity Framework ADO.NET.
XML adatkezelés 1. témakör Az XML szabvány.
– SQL 3: SELECT - 1. – Tarcsi Ádám, január 31. Adatbázis gyakorlat.
XML Mi az XML?  Extensible Markup Language  Kiterjeszthető jelölő nyelv  Adatok, adatstruktúrák leírására szolgál  A HTML és az SGML tapasztalataira.
Készítette: Turócziné Kiscsatári Nóra
Turócziné Kiscsatári Nóra
Többtáblás lekérdezések, hierarchikus lekérdezések, allekérdezések
Webprogramozó tanfolyam
Gazdasági informatikus - Szövegszerkesztés 1 Hosszú dokumentumok kezelése.
Keresés a weben Kulcsszavas keresés: Google (
– SELECT - 1. – Tarcsi Ádám január Adatbázis gyakorlat.
Java web programozás 7-8..
Spanyolország gyöngyszeme: GRANADA Egy hobby portál kivitelezése.
Java web programozás 2..
Webes tartalmakban alkalmazható szteganográfiai módszerek vizsgálata
Pinczel Balázs, ELTE IK, április Emlékeztető: NoSQL Célok: Nagy teljesítmény Magas rendelkezésre állás Elosztott működés Következmények:
Web Technológiák HTML 4.01 World Wide Web Consortium
Informatikai gyakorlatok 11. évfolyam
Fejlett Programozási Technikák 2.
Kovács Gergely Péter Bevezetés
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Adatbáziskezelés.
A CLIPS keretrendszer
Ubuntu – ismerkedés Fájlok és könyvtárak
XML lekérdezőnyelvek XPath XQuery.
Fejlett Programozási Technikák 2.
Előadás másolata:

1 Fejlett Programozási Technikák 2. 15/2

Fejlett Programozási Technológiák 2. 2 A mai előadás tartalma: DTD XSD XPath XSLT

Fejlett Programozási Technológiák 2. 3 Irodalom Don Box: Essential XML us/dnxml/html/desxsdlib.asp us/dnxml/html/desxsdlib.asp

Fejlett Programozási Technológiák 2. 4 Aktuális a téma? Microsoft: Az XML alapú technológiák adnak lehetőséget a komponensek együttműködésére. Oracle: Az OTN magazin több mint 1/3-ad része webes technológiákkal foglalkozik. Integráció

Fejlett Programozási Technológiák 2. 5 DTD Öndokumentálás  Nyelvtan  Elemkészlet Hibadetektálás (B2B)

Fejlett Programozási Technológiák 2. 6 Példa <!ELEMENT Pelda1:Feladat (Pelda1:vegrehajto, Pelda1:megbizo, Pelda1:hatarido)>

Fejlett Programozási Technológiák 2. 7 Ismétlődés operátorok Nincs Pontosan egyszer kell szerepelnie ? Egyszer vagy egyszer sem + Legalább egyszer * Akárhányszor (0 is) <!ELEMENT Pelda1:Feladat ((Pelda1:vegrehajto, Pelda1:hatarido))+, Pelda1:megbizo)>

Fejlett Programozási Technológiák 2. 8 Tulajdonságok Módosító: #IMPLIED -- Nem feltétlenül szükséges. #REQUIRED -- Szükséges. #FIXED-- Kötelező a jelenléte és az értéke egyaránt. ”alapértelmezett érték”

Fejlett Programozási Technológiák 2. 9 XML Schema Definition Language XML elemkészletet és nyelvtant definiál XML szintaxist használ (SAX,DOM) A legtöbb programnyelvben használt adattípusokat használhatjuk A névterek használata lehetővé teszi több séma egybeolvasztását

Fejlett Programozási Technológiák XSD Típusokat definiálhatunk Beépített típusokat használhatunk ( 2/) 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

Fejlett Programozási Technológiák Értékek, Lexikális típusok Beépített adattípusokat használhatunk

Fejlett Programozási Technológiák Típusok definiálása névtéren belül 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

Fejlett Programozási Technológiák Példa <xsd:schema xmlns:xsd=" targetNamespace=" xmlns:tns="

Fejlett Programozási Technológiák XSD Alapelemek 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

Fejlett Programozási Technológiák Használatuk XML-ben... Vagy <genericId xmlns:x=" xmlns:xsi=" xsi:type="tns:AuthorId" >

Fejlett Programozási Technológiák Szűkítési minták 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

Fejlett Programozási Technológiák Példa: Egyszerű típusok......

Fejlett Programozási Technológiák Példa: Lexikális szűkítés......

Fejlett Programozási Technológiák Példa: felsorolás......

Fejlett Programozási Technológiák Példa: unió......

Fejlett Programozási Technológiák Komplex típusok xsd:complexType:  xsd:sequence  xsd:choice  xsd:all  ref névtér definiálás:  ##any  ##other  ##targetNamespace  ##local  Lista

Fejlett Programozási Technológiák 2. 22

Fejlett Programozási Technológiák XPath 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

Fejlett Programozási Technológiák Miért használjuk 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

Fejlett Programozási Technológiák Csomópont információk XPath fa struktúra és csomópont típusok A csomópontokbó kinyerhető információk DOM használata

Fejlett Programozási Technológiák XPath fa struktúra XML dokumentum XPath faként <catalog xmlns="urn:litwareinc"> Blue jeans <catalog xmlns="urn:litwareinc"> Blue jeans "123" "Blue jeans" Root "urn:litware" "comment " "proc-instr" "urn:litwareinc"

Fejlett Programozási Technológiák A csomópontokból kinyerhető információk Tulajdonságok  Érték  Név  Szülő csomóp.  Gyerek csomóp. 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

Fejlett Programozási Technológiák Elérési útvonalak 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

Fejlett Programozási Technológiák Elérési útvonalak Ú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]

Fejlett Programozási Technológiák Tengelyek self child descendant parent attribute descendant-or-self ancestor ancestor-or-self following following-sibling preceding-sibling preceding code=123 Root node code= code=

Fejlett Programozási Technológiák Tengelyek használata 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

Fejlett Programozási Technológiák Csomópont kritériumok 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

Fejlett Programozási Technológiák Predikátumok használata Egy lépés egy vagy több predikátumot használhat Csomópont gyűjtemény szűrése  Pozíció  Partalom  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()]

Fejlett Programozási Technológiák Operátorok és függvények használata 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

Fejlett Programozási Technológiák Csomópont gyűjtemény 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])

Fejlett Programozási Technológiák Logikai kifejezések Logikai operátorok = != > >= < <= Logikai függvények Példa: product[(price > 25 and price 50] true() false() boolean() not() lang() and not(discount-policy)]

Fejlett Programozási Technológiák Szám kifejezések 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]

Fejlett Programozási Technológiák Karakterláncok 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")

Fejlett Programozási Technológiák Tanácsok Rövidített szintakszist 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

Fejlett Programozási Technológiák 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ó

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák XSLT képességek 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

Fejlett Programozási Technológiák XSLT XML HTML-é transzformálás XML dokumentum XSLT stílus lap + XSLT processor HTML dokumentum Reid … Reid … Reid … Reid …

Fejlett Programozási Technológiák XML más XML szintakszissá Más szintakszis XML dokumentum XSLT stílus lap + XSLT processor Más XML nyelvtan Reid … Reid … <staff-member name="Reid" pay="91000"/> … <staff-member name="Reid" pay="91000"/> …

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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" />

Fejlett Programozási Technológiák Sablon szabályok definiálása 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

Fejlett Programozási Technológiák 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 …

Fejlett Programozási Technológiák 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");

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák Sablon szabályok definiálása <xsl:stylesheet version="1.0" xmlns:xsl=" Employees details, <xsl:stylesheet version="1.0" xmlns:xsl=" Employees details,

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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']

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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" >,

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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"/>

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák 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"/>

Fejlett Programozási Technológiák 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"/>

Fejlett Programozási Technológiák … … … … Starter.xsl Stíluslapok beszúrása Egy stíluslap felhasználhat másik stíluslapokat  Ugyanúgy kell használnunk őket … Példa

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák Felülírt szabályok Felülírás engedélyezése … … Starter.xsl Példa:

Fejlett Programozási Technológiák 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 … …

Fejlett Programozási Technológiák 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

Fejlett Programozási Technológiák A következő előadás tartalma Menedzselt kód