Download - XML adatkezelés
XML adatkezelés
1. témakör
Az XML szabvány
XML kialakulása
A jelölő nyelvek közés tartozik
Története:- 1967: Tunnicliffe tanulmánya (tartalom és formátum)- 1969: GML: Generalized Markup Language
(formátum orientált)- 1983: SGML: Standard Generalized Markup Language
(ANSI)- 1993: HTML HyperText Markup Language (WEB)- 1998: XML (eXtensible Markup Language)
Távoli rokonok:- LaTEX- LSE
SGL jellemzése
- jelölő elemeket használ- moduláris szerkezetű a dokumentum- külön sémaleírás (DTD)
chapter><chptitle>SQL SELECT szintaktikája</chptitle> <para>A SELECT parancs célja a relációkban tárolt adatok hatékony lekérdezése... </para> <para>A GROUP BY elemmel a csoportképzésre utalunk...</para> </chapter>
<!ELEMENT chapter (chptitle, (para | heading)+) >
XML kialakulása
XML kialakulása
XML az SGML-ből jött létre:- egyszerűbb , elhagyott számos elemet - szabadabb tartalom, nincs fix elem- szigorúbb szerkezetű- hatékonyabban kezelhető- számos feldolgozó program fejlődött ki (W3C, MS)
Kapcsolódó szabványok (állandóan gyarapodik)
- SAX- DOM- XPath- DTD- XMLSchema- XSL- XQuery
- hordohatóság és plattform-függetlenség;- hatékony alkalmazhatóság az Internet-en; - támogassa az alkalmazások mind szélesebb körét;- részleges kompatíbilitás az SGML szabvánnyal; - az XML nyelv legyen egyszerű szerkezetű;- minnél kevesebb opcionális elemet tartalmazzon; - könnyen lehessen programozni XML feldolgozó programokat; - XML dokumentum legyen a felhasználó által is érthető,
olvasható formátumú; - legyenek eszközök a struktúra gyors megtervezésére; - az XML szabvány legyen tiszta, a helyesség formálisan is
igazolható legyen; - legyenek eszközök az XML dokumentumok hatékony
elkészítésére; - nem fontos a tömörség, rövidség, fontosabb az olvashatóság
biztosítása.
XML jellemzői
XML szerkezete
- logikai szerkezet- fizikai szerkezet
dokumentum := prolog jelölő_elem egyéb*
Elemek típusai:- jelölő elem- feldolgozási utasítás- megjegyzés
Az elemek megadása elemtagokkal történik
A prolog feldolgozás előtti utasítást jelent
Normalizálás: minden szeparáló szövegrész egy karakter hoszú
Helyesen formált dokumentum
Egyetlen fő, gyökér jelölő elem létezik
Jelölő elemek formátuma:- kéttagú elem: <tagnév …> tartalom </tagnév>- egytagú elem: <tagnév .. />
Azelem neve tetszőleges
Jelölő elemek egymásba ágyazhatók, de átlapolás nem lehet
feldolgozási utasítás elem alakja:<?kezelő …. ?>
megjegyzés elem alakja:<!-- …. -->
Helyesen formált dokumentum
A prolog egy <?xml version=“..” .. ?> elemet tartalmaz
Az elemekhez elemjellemzők rendelhetők
Elemjellemző alakja:<tag .. jellemző_neve=“érték” ..>
<?xml version=”1.0" ?> <!-- ez egy minta KL:2007.07.01 --> <könyvek> <könyv ikod="2"> <cim> Adatkezelési alapok </cim> <ev>2003</ev> <olvasoterem/> </könyv> </könyvek>
Speciális karakterek kezelése
Karakter-készlet kibővítése: helyettesító szimbólumok (egyedek)
Előre definiált helyettesítő jelek: < : < > : > & : & amp; ' : ' " : "
Hosszabb egyedi karaktersorozat:<![CDATA[ szöveg ]]>
Tetszőleges karakter:&#nnn;
<?xml version="1.0" ?> <forrasok> <rutin nev="fv1"> main() { if (this->setA() < 0 && x < X) { strcpy (valasz,"Alacsony ertek"); } } </rutin> <rutin nev="fv2"> <![CDATA[ main() { if (this->setA() < 0 && x < X) { strcpy (valasz,"Alacsony ertek"); } } ]]> </rutin> </forrasok>
Speciális karakterek kezelése
Névterek használata
A felhasználók maguk jelölhetik ki az elemek neveit
Az elemnév önmagában nem elegendő egyértelmű azonosításra ahononímák miatt
Megoldás: a név kibővítése a feldolgozó azonosításval
Névtér: a feldolgozó program azonosítója
Névtér szokásos alakja: URI
Egy dokumentumban több névtér is élhet
A névterek elemhez kötése alias nevekkel történik
Névterek használata
Névtér és alias összekötése:<tagnév … xmlns:alias=“URI” … >
Névtér kötése elemhez:<alias:tagnév ….> … </alias:tagnév>
Névtér kötése elemjellemzőhöz:<tagnév … alias:jellemző=“érték” …>
http://www.w3.org/2000/10/XMLSchema : W3C XMLSchema névterehttp://www.w3.org/1999/XSL/Transform : XSL feldolgozó névterehttp://www.w3.org/1999/xlink : XLink feldolgozó névtere
Névterek használata
Van alapértelmezési névtér is, ahol az alias üres karakter(nincs)
Névtér és alias összekötése:<tagnév … xmlns =“URI” … >
Alapértelmezési névtér kötése:<tagnév ….> … </tagnév><tagnév … jellemző=“érték” …>
Az aliasnév érvényességi köre azon elemre és annak befoglalt elemeire terjed ki, amelyben definiálták. Egy belső elemben a kívül értelmezett aliasnév felülírható egy új értelmezéssel
Névterek használata
<ktar:konyvek xmlns:kt='http://iit.uni-miskolc.hu/kovacs/konyvtar’xmlns:vir='http://uni-miskolc.hu/nyilvanartas'xmlns='http://iit.uni-miskolc.hu/root'>
<ktar:konyv id='1'><ktar:ISBN> I11233 </ktar:ISBN><vir:olvaso> UZI234 <uid> olg45 </uid> </vir:olvaso><vir:nkod xmlns:vir='http://uni-miskolc.hu/neptun'>
OPUZT7 </vir:nkod> </ktar:konyv> <ktar:konyv id='3'>
<ktar:ISBN> TF7671 </ktar:ISBN><vir:olvaso> JII781 <uid> z78hz </uid> </vir:olvaso><vir:nkod xmlns:vir='http://uni-miskolc.hu/neptun'>
LOP86J </vir:nkod> </ktar:konyv></ktar:konyvek>
HTML és XML viszonya
- HTML rögzített elemnevek (HR, BR, TABLE,…)
- HTML-ben a jellemző értéke szabadon megadható
- HTML-ben nem kötelező a lezáró tag
- HTML-ben lehet átlapolás
- HTML-ben hiányzó feldolgozási utasítás
XHTML: a HTML átalakítása XML szabványra
XHTMLAz XHTML szabványos XML dokumentum
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/css" href="http://www.w3.org/MarkUp/style/xhtml2.css"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 2.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml2.dtd">
<html xmlns="http://www.w3.org/2002/06/xhtml2/" xml:lang="en" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3.org/2002/06/xhtml2/ http://www.w3.org/MarkUp/SCHEMA/xhtml2.xsd" > <head> <title>Virtual Library</title> </head> <body> <p>Moved to <a href="http://example.org/">example.org</a>. </p> </body> </html>
XHTML elemei
Elemek:Dokumentum felépítés body, head, html, titleStruktúra: address, blockcode, block quote, div, hn, p, pre,
section, separatorSzövegkezelés: abbr, cite, code, dfn, em, kbd, l, q, samp, span,
strong, sub, sup, varLista: dl, dt, dd, label, nl, ol, ul, liHypertext: aTáblázat: caption, col, cplgroup, summary, table, tbody, td,
tfoot, th, trMetaadatok: meta, link, object, param, standby
Jellemzők: xml:lang, edit, src, style, datatype, about, src, dir, rel, property, class, id,
Szerző címe:<address href="mailto:[email protected]">Webmaster</address>
Programkód:<blockcode class="Perl"> sub squareFn { my $var = shift; return $var * $var ; } </blockcode>
Idézet:<blockquote cite="http://www.example.com/tolkien/twotowers.html"> <p>They went in single fed and blackened as they passed.</p> </blockquote>
Tetszőleges tagolás:<body> <h>The meaning of life</h> <p>By Huntington B. Snark</p> <div class="slide"> <h>What do I mean by "life"</h> <p>....</p> </div> <div class="slide"> <h>What do I mean by "mean"?</h> ... </div> ... </body>
Címsorok és szöveblokkok:<body> <h>This is a top level heading</h> <p>....</p> <section> <p>....</p> <h>This is a second-level heading</h> <p>....</p> </section>
Bekezdések, listák:<p>Payment options include: <ul> <li>cash</li>
<li>credit card</li> <li>luncheon vouchers.</li>
</ul> </p> Nem formázandó rész:
<pre> If I had any talent I would be a poet </pre>
Válaszvonal:<p>This is some lead in text</p> <separator /> <p>This is some additional, but separate text.</p>
Input billentyűzés kérés:To exit, type <kbd>QUIT</kbd>.
Sorokra bontáés:<blockcode class="program"> <l>program p(input, output);</l> <l>begin</l>
Indexek:H<sub >2</sub>O
Rövidítés:<abbr full="Limited">Ltd.</abbr>
Hivatkozás:As Gandalf the White said in <cite cite="http://www.example.com/bs/the_two_towers">The Two Towers</cite>,<quote xml:lang="en">"The hospitality of your hall is somewhat lessened of late, Theoden King."</quote>
Kód és változó:The Pascal statement <code>i := 1;</code> assigns the literal value one to the variable <var>i</var>.
Definíció:<p role="definition"> An <dfn id="def-acronym">acronym</dfn> is a word formed from the … </p>
Kiemelés:Do <em>not</em> phone before 9 a.m.
Handler (kezelő):html xmlns="http://www.w3.org/2002/06/xhtml2" xml:lang="en"> <head> <title>A document with a handler</title> <handler type="text/x-vbscript" src="http://example.org/progs/vbcalc"> <handler type="text/javascript"> ...some inline JavaScript... </handler> </handler> </head> <body> <handler type="text/x-perl"> ... some Perl script ... </handler> </body> </html>
Hivatkozás leírók:<head> <title>Chapter 2</title> <link rel="index" href="../i1.html"/> <link rel="next" href="Ch3.html"/> <link rel="prev" href="Ch1.html"/> </head>
Külső objekltum behozatala: <object src="http://www.e.c/f.jpg" srctype="image/jpeg"> <em>alternate text</em> </object>