metaj zyki 5 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
METAJĘZYKI 5 PowerPoint Presentation
Download Presentation
METAJĘZYKI 5

Loading in 2 Seconds...

play fullscreen
1 / 25

METAJĘZYKI 5 - PowerPoint PPT Presentation


  • 78 Views
  • Uploaded on

METAJĘZYKI 5. dr inż. Robert Berezowski e-mail: robert.berezowski@ie.tu.koszalin.pl Ul. Śniadeckich 2 Pokój 223A. Politechnika Koszalińska Wydział Elektroniki i Informatyki Katedra Inżynierii Komputerowej. kantor. notowanie. notowanie. wydarzenie. data. kursy. dzien. rok. korona.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'METAJĘZYKI 5' - prisca


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
metaj zyki 5

METAJĘZYKI5

dr inż. Robert Berezowski

e-mail: robert.berezowski@ie.tu.koszalin.pl

Ul. Śniadeckich 2

Pokój 223A

Politechnika Koszalińska

Wydział Elektroniki i Informatyki

Katedra Inżynierii Komputerowej

METAJĘZYKI

dokument kantor xml

kantor

notowanie

notowanie

wydarzenie

data

kursy

dzien

rok

korona

miesiac

hrywna

dolar

euro

funt

Dokument kantor.xml

METAJĘZYKI

zmienne xsl variable
Zmienne - xsl:variable
  • Deklaracja zmiennych
    • <xsl:variable name=„xx” select=”wartość”/>
    • <xsl:variable name=„xx”>wartość</xsl:variable>
  • Użycie:
    • <xsl:value-of select=„$xx”/>
  • Zmienna w XML –
    • raz zapisać, wielokrotnie odczytać.
    • nie ma możliwości modyfikacji
    • żywotność ograniczona do elementu wewnątrz którego została zadeklarowana

<xsl:template match="/">

<HTML><BODY> <H1>Kantorek! </H1>

<xsl:for-each select="kantor/notowanie[1]/kursy/*">

<xsl:variable name="nazwa">

<xsl:value-of select="name()"/>

</xsl:variable>

<xsl:value-of select="$nazwa"/><BR/>

</xsl:for-each>

</BODY></HTML>

</xsl:template>

METAJĘZYKI

zmienne xsl variable1
Zmienne - xsl:variable
  • Przykład

<xsl:variable name="data">

<xsl:value-of select="data/dzien"/>/

<xsl:value-of select="data/miesiac"/>/

<xsl:value-of select="data/rok"/>

</xsl:variable>

. . .

<td><xsl:value-of select="$data"/></td>

METAJĘZYKI

zmienne przyk ady tekst w
Zmienne – przykłady tekstów

<xsl:value-of select=„text()"/>

<xsl:value-of select="substring(name(),1,3)"/>

<xsl:value-of select="substring-after(text(),'.')"/>

<xsl:value-of select="translate(text(),'.',',')"/>

METAJĘZYKI

zmienne przyk ady drzew

<xsl:template match="/">

<HTML>

<BODY bgcolor="lime">

<H1>Kantorek! </H1>

<xsl:for-each select="kantor/notowanie">

<xsl:variable name="nazwa" select="."/>

... <xsl:value-of select="$nazwa/kursy/funt"/> ...

<BR/>

</xsl:for-each>

</BODY></HTML>

</xsl:template>

Zmienne – przykłady drzew

<xsl:template match="/">

<HTML>

<BODY bgcolor="lime">

<H1>Kantorek! </H1>

<xsl:for-each select="kantor/notowanie">

<xsl:variable name="nazwa" select="."/>

... <xsl:value-of select="$nazwa/data[rok=2004]"/> ...

<BR/>

</xsl:for-each>

</BODY></HTML>

</xsl:template>

METAJĘZYKI

zmienna globalna i lokalna
Zmienna globalna i lokalna

<xsl:template match="/">

<HTML>

<BODY bgcolor="lime">

<H1>Kantorek! </H1>

<xsl:variable name="nazwa">...

<xsl:for-each select="kantor/notowanie">

<xsl:value-of select="data/miesiac"/>,

</xsl:for-each>...

</xsl:variable>

<xsl:value-of select="$nazwa"/>

</BODY></HTML>

</xsl:template>

Zmienna lokalna wewnątrz reguły „/”

<xsl:variable name="nazwa">...

<xsl:for-each select="/kantor/notowanie">

<xsl:value-of select="data/miesiac"/>,

</xsl:for-each>...

</xsl:variable>

<xsl:template match="/">

<HTML>

<BODY bgcolor="lime">

<H1>Kantorek! </H1>

<xsl:value-of select="$nazwa"/>

</BODY></HTML>

</xsl:template>

Zmienna globalna wewnątrz elementu <xsl:stylesheet...>

METAJĘZYKI

slide8

<xsl:variablename="imie">Jacek</xsl:variable>

<xsl:templatematch="audycja">

<xsl:iftest="@osoba=$imie">

<table border="1" width="100%">

<tr>

<td width="60"><xsl:value-of select="@osoba"/></td>

<td width="80"><xsl:value-of select="text()"/></td>

<td width="50"><xsl:value-of select="@data"/></td>

<td width="40"><xsl:value-of select="@godz"/></td>

<td width="30"><xsl:value-of select="@czas"/></td>

</tr>

</table>

</xsl:if>

</xsl:template>

METAJĘZYKI

slide9

<xsl:templatematch="/program">

<html><body>

<table border="1">

<xsl:for-eachselect="//audycja[not(@osoba=preceding::*/@osoba)]">

<xsl:variablename="kto" select="@osoba"/>

<tr>

<td><xsl:value-ofselect="$kto"/></td>

<td>

<table border="1" width="100%">

<xsl:for-eachselect="//audycja[@osoba=$kto]">

<tr>

<td><xsl:value-ofselect="../@nazwa"/></td>

<td><xsl:value-ofselect="text()"/></td>

<td><xsl:value-ofselect="@data"/></td>

</tr>

</xsl:for-each>

</table>

</td>

</tr>

</xsl:for-each>

</table>

</body></html>

</xsl:template>

METAJĘZYKI

document
document()
  • Funkcja document()
    • pozwala pobierać dane z innych źródeł XML, zamiast ze źródła podanego w wywołaniu procesora.
    • Użycie: document(url), document(‘jakis_plik’)

<xsl:variable name="kantor2" select="document('kantor2.xml')"/>

<xsl:template match="/">

<table border="1"><tr><td>data</td><td>funt</td><td>euro</td></tr>

<xsl:for-each select="kantor/notowanie">

<tr><td><xsl:value-of select="data"/></td>

<td><xsl:value-of select="kursy/funt"/></td>

<td><xsl:value-of select="kursy/euro"/></td></tr>

</xsl:for-each>

<tr><td>data</td><td>funt</td><td>euro</td></tr>

<xsl:for-each select="$kantor2/kantor/notowanie">

<tr><td><xsl:value-of select="data"/></td>

<td><xsl:value-of select="kursy/funt"/></td>

<td><xsl:value-of select="kursy/euro"/></td></tr>

</xsl:for-each></table></xsl:template>

METAJĘZYKI

parametry xsl param
Parametry – xsl:param
  • Parametry pozwalają dynamicznie zmienić postać wyniku
  • Rodzaje:
    • Globalne – pobierające dane z poza arkusza, deklarowane w elemencie <xsl:stylesheet...>
    • Lokalne – używane wewnątrz reguł do pobierania danych z reguły wywołującej.
  • Deklaracja:
    • <xsl:param name=„nazwa” select=„wartość”/>
    • <xsl:param name=„nazwa”>wartość</xsl:param>
  • Wywołanie reguły z parametrami:

<xsl:call-template name=„max”>

<xsl:with-param name=„liczba1” select=„notowanie[1]/kursy/funt”/>

<xsl:with-param name=„liczba2” select=„notowanie[2]/kursy/funt”/>

</xsl:call-template>

METAJĘZYKI

slide13

<xsl:templatematch="/program">

<h1> <xsl:call-templatename="naglowek"/>

<xsl:call-templatename="spis">

<xsl:with-paramname="drzewo" select="."/>

</xsl:call-template>

<xsl:apply-templates/>

</h1>

</xsl:template>

<xsl:templatematch="kanal">

<a name="{@nazwa}"> <h2> <xsl:value-ofselect="@nazwa"/> </h2></a>

<table border=„1”><tr><td>

<xsl:apply-templates/>

</td></tr></table>

</xsl:template>

<xsl:templatename="spis">

<xsl:paramname="drzewo"/>

<xsl:for-eachselect="$drzewo/kanal">

--| <a href="#{@nazwa}"><xsl:value-ofselect="@nazwa"/></a> |--

</xsl:for-each>

</xsl:template>

METAJĘZYKI

przyk ad u ycia parametr w lokalnych

<xsl:template match="/">

<HTML><BODY bgcolor="lime">

<TABLE border="1">

<xsl:call-template name="tabela">

<xsl:with-param name="plik" select="."/>

</xsl:call-template>

<xsl:call-template name="tabela">

<xsl:with-param name="plik" select="document('kantor2.xml')"/>

</xsl:call-template>

</TABLE></BODY></HTML>

</xsl:template>

Przykład użycia parametrów lokalnych

<xsl:template name="tabela">

<xsl:param name="plik"/>

<tr><td>data</td><td>funt</td><td>euro</td></tr>

<xsl:for-each select="$plik/kantor/notowanie">

<tr><td><xsl:value-of select="data"/></td>

<td><xsl:value-of select="kursy/funt"/></td>

<td><xsl:value-of select="kursy/euro"/></td></tr>

</xsl:for-each>

</xsl:template>

METAJĘZYKI

przyk ad u ycia parametr w globalnych

<xsl:param name="waluta”>euro</xsl:param>

<xsl:template match="/">

<HTML><BODY bgcolor="lime"><H1>Kantorek! </H1>

<TABLE border="1">

<xsl:call-template name="tabela">

<xsl:with-param name="plik" select="."/>

</xsl:call-template>

<xsl:call-template name="tabela">

<xsl:with-param name="plik"

select="document('kantor2.xml')"/>

</xsl:call-template></TABLE></BODY></HTML>

</xsl:template>

Przykład użycia parametrów globalnych

<xsl:template name="tabela">

<xsl:param name="plik"/>

<tr><td>data</td><td>cena</td></tr>

<xsl:for-each select="$plik/kantor/notowanie">

<tr><td><xsl:value-of select="data"/></td>

<td><xsl:value-of select="kursy/*[name()=$waluta]"/></td></tr>

</xsl:for-each>

</xsl:template>

METAJĘZYKI

wywo anie parametr w globalnych
Wywołanie parametrów globalnych

Plik kantor.html część body

<BODY onload="init();" style="margin-top: '0'">

<button onclick="show('funt')">funty</button>

<button onclick="show('dolar')">dolary</button>

<button onclick="show('euro')">euro</button>

<button onclick="show('hrywna')">hrywna</button>

<button onclick="show('korona')">korona</button>

<div id="ekran">wyniki</div>

</BODY>

METAJĘZYKI

wywo anie parametr w globalnych1

Plik kantor.html część head

<SCRIPT language="jscript">

Wywołanie parametrów globalnych

var xml, xsl, xsltmp;

function init()

{xml = new ActiveXObject('MSXML2.DOMDocument.4.0');

xml.async = false;

xml.load('kantor.xml');

xsl=new ActiveXObject('MSXML2.FreeThreadedDOMDocument.4.0');

xsl.async = false;

xsl.load('kantor-5.xsl');

xsltmp = new ActiveXObject("Msxml2.XSLTemplate.4.0");

xsltmp.stylesheet = xsl; }

Wczytanie pliku xml

Wczytanie pliku xsl

function show(waluta)

{ var xslProc = xsltmp.createProcessor();

xslProc.input = xml;

xslProc.addParameter("waluta", waluta, "");

xslProc.transform();

ekran.innerHTML = xslProc.output; }

</SCRIPT>

Dodanie parametru do pliku xsl

Umieszczenie rezultatu w obiekcie ‘ekran’

METAJĘZYKI

slide18

<xsl:template match="/program">

<xsl:call-template name="naglowek"/>

<xsl:call-template name="spis">

<xsl:with-param name="drzewo" select="."/>

</xsl:call-template>

<xsl:apply-templates/>

<xsl:call-template name="stopka"/>

</xsl:template>

<xsl:template match="kanal">

<a name="{@nazwa}">

<xsl:value-of select="@nazwa"/> </a>

</xsl:template>

<xsl:template name="naglowek">

<br/>Program telewizyjny - wybrane audycje<br/>

</xsl:template>

<xsl:template name="spis">

<xsl:param name="drzewo"/>

<xsl:for-each select="$drzewo/kanal">

--| <a href="#{@nazwa}">

<xsl:value-of select="@nazwa"/></a> |--

</xsl:for-each>

</xsl:template>

Parametry i hiperłącza

METAJĘZYKI

slide19

function tr(program){

xmlFile = "tv.xml”; xslFile = "1x.xsl";

objXSLTProc.addParameter("data", program, "");

parent.pl1.innerHTML = objXSLTProc.output;}

<FORM>

<INPUT TYPE="button" VALUE="TVP1" onClick="tr('TVP1');">

<INPUT TYPE="button" VALUE="TVP2" onClick="tr('TVP2');">

<INPUT TYPE="button" VALUE="TVN" onClick="tr('TVN');">

<INPUT TYPE="button" VALUE="POLSAT" onClick="tr('POLSAT');">

</FORM><hr>

<div ID="pl1">pokaz</div>

<xsl:paramname="data">*</xsl:param>

<xsl:templatematch="/program">

<xsl:apply-templatesselect="kanal[@nazwa=$data]"/>

</xsl:template>

<xsl:templatematch="kanal">

<xsl:variablename="opis" select="document('tvopis.xml')"/>

<xsl:apply-templates>

<xsl:sortselect="@osoba"/>

</xsl:apply-templates>

</xsl:template>

METAJĘZYKI

slide20

function tr(program){

xmlFile = "tv.xml”; xslFile = "2x.xsl";

objXSLTProc.addParameter("data", program, "");

parent.pl1.innerHTML = objXSLTProc.output;}

<FORM>

<INPUT TYPE="button" VALUE="Justyna" onClick="tr('Justyna');">

<INPUT TYPE="button" VALUE="Jacek" onClick="tr('Jacek');">

<INPUT TYPE="button" VALUE="Grzesiek" onClick="tr('Grzesiek');">

</FORM>

<hr>

<div ID="pl1">pokaz</div>

<xsl:paramname="data">*</xsl:param>

<xsl:templatematch="/program">

<xsl:apply-templatesselect="kanal"/>

</xsl:template>

<xsl:templatematch="kanal">

<xsl:apply-templatesselect="audycja[@osoba=$data]">

<xsl:sortselect="@osoba"/>

</xsl:apply-templates>

</xsl:template>

<xsl:templatematch="audycja">

<table border="1" width="100%„>

METAJĘZYKI

slide21

<xsl:param name="obiekt1">*</xsl:param>

<xsl:param name="obiekt2">*</xsl:param>

<xsl:template match="/program">

function tr(pr1,pr2){

xmlFile = "tv.xml”; xslFile = "tv.xsl";

objXSLTProc.addParameter("obiekt1", pr1, "");

objXSLTProc.addParameter("obiekt2", pr2, "");

document.body.innerHTML = objXSLTProc.output;}

<FORM>

<INPUT TYPE="text" id="pole1" />

<INPUT TYPE="text" id="pole2" />

<INPUT TYPE="button" value="szukaj" onClick="tr(document.getElementById('pole1').value,

document.getElementById('pole2').value)"/>

</FORM><hr/> szukane: <div id=„pokaz">brak</div>

<xsl:apply-templates select="kanal">

<xsl:sort select="audycja/@czas"/>

</xsl:apply-templates>

</xsl:template>

<xsl:template match="kanal">

<xsl:apply-templates select="audycja[(@*=$obiekt1) or (@*=$obiekt2) or (.=$obiekt1) or (.=$obiekt2)]">

</xsl:apply-templates>

</xsl:template>

METAJĘZYKI

slide22

<xsl:stylesheet … xmlns:msxsl="urn:schemas-microsoft-com:xslt">

<xsl:param name="sort1">osoba</xsl:param>

<xsl:variable name="tylko.audycje">

<element>

<xsl:for-each select="/program/kanal„>

<xsl:for-each select="audycja">

<xsl:copy-of select="."/>

</xsl:for-each> </xsl:for-each>

</element>

</xsl:variable>

<xsl:template match="/program">

function tr(pr3){xmlFile = "tv.xml”; xslFile = "tv.xsl";

objXSLTProc.addParameter("sort1", pr3, "");

document.body.innerHTML = objXSLTProc.output;

parent.pokaz.innerHTML= " sort: "+pr3;} …

<FORM><INPUT TYPE="text" id="pole3" />

<INPUT TYPE="button" value="szukaj" onClick="tr(document.getElementById('pole3').value)"/>

</FORM><hr/>

szukane: <div id="pokaz">brak</div>

<xsl:call-template name="wypisz">

<xsl:with-param name="wszystkie" select="$tylko.audycje"/>

</xsl:call-template>

<xsl:template name="wypisz„> <xsl:param name="wszystkie"/>

<xsl:for-each select="msxsl:node-set($wszystkie)/element/audycja">

<xsl:sort select="@*[name()=$sort1]"/>

<table border="1" width="100%„><tr>

<td width="60"><xsl:value-of select="@osoba"/></td>

</xsl:template>

METAJĘZYKI

wyspy xml w html
WYSPY XML w HTML
  • Pozwalają umieścić treści z dokumentu xml wewnątrz dokumentu html

<HTML><BODY bgcolor=„lime”>

<XML ID="wyspa" src="kantor3.xml"></XML>

<table border="1" datasrc="#wyspa">

<thead><th colspan="3">data</th><th>euro</th>

<th>dolar</th><th>funt</th><th>hrywna</th>

<th>korona</th></thead>

<tr><td><span datafld="dzien"/></td><td>

<span datafld="miesiac"/></td><td>

<span datafld="rok"/></td>

<td><span datafld="dolar"/></td>

<td><span datafld="euro"/></td>

<td><span datafld="funt"/></td>

<td><span datafld="hrywna"/></td>

<td><span datafld="korona"/></td>

</tr></table></BODY></HTML>

METAJĘZYKI

svg scalable vector graphics
SVG – Scalable Vector Graphics
  • Język opisu grafiki dwuwymiarowej
  • Grafika jest opisywana za pomocą równań matematycznych przez co zajmuje mniej pamięci niż pliki graficzne typu gif, jpg.
  • Kilka linków
    • www.w3.org/TR/SVG - specyfikacja SVG
    • www.w3.org/Graphics/SVG - strona domowa W3C SVG
    • www.irt.org/articles/js176 - troche linków i artykułów
    • www.adobe.com/svg - strona Adobe o SVG, kilka tutoriali

METAJĘZYKI

przyk ady svg
Przykłady svg
  • Linia od punktu (x1=10,y1=100) do punktu (x2=222,y2=234) w kolorze czerwonym

<line x1="10" y1="100" x2="222" y2="234" style="fill:red"/>

  • Prostokąt od punktu (x=0,y=0) o wysokości 10 (height) i długości 100 (width) w wypełniony kolorem czerwonym

<rect x="0" y="0" height="10" width="100" style="fill:red"/>

  • Koło o środku w punkcie (cx=150,cy=150) i promieniu r=50 wypełniony kolorem zielonym, ze stopniem przeźroczystości 0.5

<circle cx="150" cy="150" r="50„ style="fill:green; fill-opacity: 0.5"/>

  • tekst z określonymi atrybutami:

<text style = "fill: red; font-size: 24pt" x = "25" y = "250">

juz niedlugo majowka</text>

  • Animacja elementów – obrót o kąt od 0 do 360 stopni w czasie 4s nieskończoną ilość razy

<animateTransform attributeName="transform" type="rotate" dur="4s" from="0" to="360„ repeatCount = "indefinite"/>

METAJĘZYKI