Felhasználói eszközök

Eszközök a webhelyen


oktatas:szamitastechnika:dtd

Különbségek

A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

oktatas:szamitastechnika:dtd [2019/08/22 17:21] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​számítástechnika|<​ Számítástechnika]]
 +
 +====== DTD ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) Sallai András, 2009
 +  * Licenc: GNU Free Documentation License 1.3
 +  * Web: http://​szit.hu
 +
 +
 +===== Blokkok létrehozása az XML dokumentumban =====
 +
 +
 +
 +A következő jelölőkből épülhet fel egy XML dokumentum:
 +
 +  *elemek
 +  *tulajdonságok
 +  *elemzett adat (PCDATA)
 +  *adat (elemzés nélkül; CDATA)
 +
 +
 +
 +A HTML nyelvben elemekre példa a "​body"​ és az "​img"​. Egy XML dokumentumban például "​megjegyzés"​
 +"​üzenet",​ stb. Az elemek tartalmazhatnak szöveget, vagy újabb elemeket, de maradhatnak üresen is. 
 +Üres elemek a HTML nyelvben például a következők:​ "​hr",​ "​br"​ és az "​img"​.
 +
 +Például:
 +
 +  <​body>​szöveg</​body>​
 +
 +  <​üzenet>​szöveg</​üzebnet>​
 +
 +===== Tulajdonságok =====
 +
 +A tulajdonságok,​ másként attribútumok az elemekről még több információt adnak számunkra. ​
 +
 +A tulajdonságot mindig egy elemen belül hozunk létre, és mindig név és érték párokból
 +épül fel. 
 +
 +
 +<code html>
 +<img src="​kep.jpg"​ />
 +</​code>​
 +
 +A példában az elem neve az "​img"​. Az tulajdonság az "​src"​. A tulajdonság értéke "​kep.jpg"​.
 +A végén az elem önmagát zárja, mivel üres elem.
 +
 +
 +
 +===== Entitások (Egyedek) =====
 +
 +Néhány karakternek speciális jelentése van az XML-ben, olyanok mint a (<). Ez a karakter például egy
 +tag kezdetét határozza meg. 
 +
 +A HTML is tartalmaz ilyen egyedeket (entitás), például a "&​nbsp;"​. Ez egy nem törhető szóközt jelöl. ​
 +
 +Az XML-ben ezek előre definiáltak:​
 +
 +
 +^ Entitás ^ Jelentés ^
 +| &lt; | < |
 +| &gt; | > |
 +| &amp; | & |
 +| &quot; | " |
 +| &apos; | ' |
 +
 +
 +===== PCDATA =====
 +
 +A PCDATA jelentése elemzett karakteres adat (parsed character data).
 +
 +Egy nyitó és egy záró elem közzé tesszük tartalomként. ​
 +Az PCDATA egy olyan szöveg amely elemezhető szöveget
 +tartalmazhat. A szöveg különböző entitásokat tartalmazhat. ​
 +
 +Az entitásokat & vezeti be a szövegben. Így ez nem szerepelhet önálló karakterként.
 +De ilyen a <, > karakterek is. 
 +Helyettük: &lt; és &gt;
 +
 +===== CDATA =====
 +
 +A CDATA jelentése karakteres adat (character data).
 +
 +Nem tartalmaz elemzett részeket, nincsenek benne jelölök. Mindent úgy értelmezünk,​ ahogy az meg van adva.
 +
 +
 +
 +===== DTD elemek =====
 +
 +A DTD elemeket ELEMENT deklarációval adunk meg.
 +
 +==== Elemek deklarálása ====
 +
 +
 +Egy DTD-ben az XML elemek megadása a következő szintaxis szerint történik:
 +  <​!ELEMENT elem-neve kategória>​
 +vagy
 +  <​!ELEMENT elem-neve (elem-tartalma)>​
 +
 +==== Üres elemek ====
 +
 +Üres elemeket az EMPTY kategóriával adunk meg.
 +
 +  <​!ELEMENT elem-neve EMPTY>
 +
 +Például:
 +<​!ELEMENT br EMPTY>
 +
 +XML példa:
 +
 +<br />
 +
 +
 +==== Az elemek és a Parsed Character Data ====
 +A Parsed Character Data, elemzett karakteres adatokat jelent. Elemzett mert figyeli,
 +hogy van-e például &lt; karaktersorozat a tartalomban,​ mert ezt másként értelmezi.
 +
 +Az elemzett karakteres adatokat a #PCDATA segítségével adunk meg:
 +
 +
 +  <​!ELEMENT elem-neve (#​PCDATA)>​
 +
 +Példa:
 +
 +  <​!ELEMENT from (#​PCDATA)>​
 +
 +==== Elemek valamilyen tartalommal ====
 +
 +Az ilyen elemet ANY kategória leíróval adjuk meg. 
 +
 +
 +  <​!ELEMENT elem-neve ANY>
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet ANY>
 +
 +
 +==== Az elemek gyermekei (sorozat) ====
 +
 +Az elemek egy vagy több újabb gyermekelemet is tartalmazhatnak. ​
 +
 +
 +
 +  <​!ELEMENT elem-neve (gyermek1)>​
 +vagy
 +  <​!ELEMENT elem-neve (gyermek1,​gyermek2,​...)>​
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet (kezdes,​vége,​fejrész,​lábrész)>​
 +Ha a gyermekelem vesszővel van szeparálva,​ akkor azokat ugyanilyen sorrendben kötelező megadni.
 +
 +<code dtd>
 +<​!ELEMENT jegyzet (kezdes,​vége,​fejrész,​törzsrész)>​
 +<​!ELEMENT kezdés (#​PCDATA)>​
 +<​!ELEMENT vége (#​PCDATA)>​
 +<​!ELEMENT fejrész (#​PCDATA)>​
 +<​!ELEMENT törzsrész (#​PCDATA)>​
 +</​code>​
 +
 +==== Csak egy gyermekelem megadása ====
 +
 +
 +
 +  <​!ELEMENT elem-neve (gyermek-neve)>​
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet (üzenet)>​
 +
 +Az üzenet gyermekelem csak egyszer szerepelhet a jegyzet elemben belül.
 +
 +
 +==== Egy elem minimum egyszer vagy többször ====
 +
 +
 +  <​!ELEMENT elem-neve (gyermek-neve+)>​
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet (üzenet+)>​
 +
 +A + jel azt jelenti, az elem többször is szerepelhet a jegyzet elemen beül, de egyszer minimum kötelező ​
 +szerepelnie.
 +
 +
 +
 +
 +==== Egy elem nullaszor vagy többször ====
 +
 +  <​!ELEMENT elem-neve (gyermek-neve*)>​
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet (üzenet*)>​
 +A * azt jelenti, hogy az "​üzenet"​ elem többször is szerepelhet a "​jegyzet"​ elemen belül, de ha egyszer sem
 +szerepel az sem baj.
 +
 +
 +==== Egy elem nullaszor vagy egyszer ====
 +
 +
 +
 +  <​!ELEMENT element-name (child-name?​)>​
 +
 +Example:
 +
 +  <​!ELEMENT jegyzet (üzenet?​)>​
 +
 +A ? karakter azt jelenti az "​üzenet"​ gyermekelem vagy egyszer szerepelhet,​ vagy egyszer sem a "​jegyzet"​ elemen
 +belül.
 +
 +==== Mindkettő/​vagy megadása ====
 +
 +
 +
 +Példa:
 +
 +  <​!ELEMENT note (kezdes,​vége,​fej,​(üzenet|törzs))>​
 +A példában a "​jegyzet"​ elemnek tartalmaznia kell egy "​kezdes",​ egy "​vége",​ egy fej elemet és végül ​
 +vagy egy "​üzenet"​ vagy egy "​törzs"​ elem jön.
 +
 +==== Kevert tartalom megadása ====
 +
 +
 +Példa:
 +
 +  <​!ELEMENT jegyzet (#​PCDATA|kezdet|vége|fej|üzenet)*>​
 +
 +A példában a "​jegyzet"​ elem tartalmazhat nulla vagy több elemzett karaktert, "​kezdet",​ "​vége", ​
 +"​fej"​ vagy "​üzenet"​ elemet. ​
 +
 +
 +===== Tulajdonságok =====
 +Tulajdonságok vagy attribútumok meghatározása
 +
 +
 +==== Tulajdonság deklaráció ====
 +
 +Az tulajdonság deklarációnak a következő a szintaktikája:​
 +
 +
 +  <​!ATTLIST elem-neve tulajdonság-neve tulajdonság-típusa alapértelmezett-érték>​
 +
 +DTD példa:
 +
 +  <​!ATTLIST fizetés type CDATA "​feladva">​
 +
 +XML példa:
 +
 +  <​fizetés type="​feladva"​ />
 +A tulajdonság típusa a következő egyike:
 +
 +
 +^ Típus ^ Leírás ^
 +| CDATA | Az érték karakteres adat |
 +| <​nowiki>​(en1|en2|..)</​nowiki>​ | Az érték egy a felsorolt listából |
 +| ID | Az érték egyediazonosító |
 +| IDREF | Az érték egy másik elem azonosítója |
 +| IDREFS | Az érték egy más azonosítók listája |
 +| NMTOKEN | Az érték egy érvényes XML név |
 +| NMTOKENS | Az érték érvényes XML nevek egy listája |
 +| ENTITY | Az érték üres |
 +| ENTITIES | Az érték egy egyedlista |
 +| NOTATION | Az érték egy jelölés neve | 
 +| xml: | Az érték újradefiniált xml érték |
 +
 +
 +Az alapértelmezett érték egy a következők közül:
 +
 +^ Érték ^ Értelmezés ^
 +| #REQUIRED | A tulajdonság kötelező |
 +| #IMPLIED | A tulajdonság nem kötelező |
 +| #FIXED érték | A tulajdonság állandó |
 +
 +
 +==== Az alapértelmezett tulajdonság értéke ====
 +
 +
 +DTD:
 +  <​!ELEMENT kocka EMPTY>
 +  <​!ATTLIST kocka szélesség CDATA "​0">​
 +
 +Érvényes XML:
 +  <kocka szélesség="​100"​ />
 +
 +A példában egy kocka elemet definiálunk. A kocka elemnek egy "​szélesség"​ tulajdonsága ​
 +lehet, amely alapértlemezeten 0, de mi 100-as értéket adtunk neki meg. 
 +
 +
 +==== #REQUIRED ====
 +
 +
 +Szintaktika
 +
 +  <​!ATTLIST elem-neve tulajdonság-neve tulajdonság-típusa #​REQUIRED>​
 +Például:
 +
 +DTD:
 +  <​!ATTLIST személy szám CDATA #​REQUIRED>​
 +
 +Érvényes XML:
 +  <​személy szám="​12343"​ />
 +
 +Érvénytelen XML:
 +  <​személy />
 +
 +Nincs alapértelmezett értékünk,​ de kötelező megadni a személy számát.
 +
 +==== #IMPLIED ====
 +
 +
 +Szintaktika
 +
 +  <​!ATTLIST elem-neve tulajdonság-neve tulajdonság-típusa #​IMPLIED>​
 +
 +Példa
 +
 +DTD:
 +  <​!ATTLIST kapcsolat fax CDATA #​IMPLIED>​
 +
 +Érvényes XML:
 +  <​kapcsolat fax="​555-667788"​ />
 +
 +Érvényes XML:
 +  <contact />
 +
 +Akkor használjuk,​ ha nem akarjuk kötelezővé tenni a tulajdonság megadását,​ és
 +alapértelmezett értékünk sincs. ​
 +
 +
 +
 +==== #FIXED ====
 +
 +
 +Szintakitka
 +
 +  <​!ATTLIST eleme-enve tulajdonság-neve tulajdonság-típusa #FIXED "​érték">​
 +
 +
 +Példa
 +
 +DTD:
 +  <​!ATTLIST szoftver licence CDATA #FIXED "​szabad">​
 +
 +Érvényes XML:
 +<​szoftver licence="​szabad"​ />
 +
 +Érvénytelen XML:
 +<​szoftver licence="​kereskedelmi"​ />
 +Akkor használjuk,​ ha tulajdonság értékét állandóra szeretnénk beállítani,​ hogy a felhasználó ne változtathassa azt meg.
 +Ha a használója mégis mást állít be, akkor az XML értelmező hibát fog jelezni. ​
 +
 +
 +==== Felsorolt tulajdonság értékek ====
 +
 +
 +
 +=== Szintaktika ===
 +
 +
 +  <​!ATTLIST elem-neve tulajdonság-neve (en1|en2|..) alapértelmezett-érték>​
 +
 +
 +=== Példa ===
 +
 +
 +DTD:
 +  <​!ATTLIST fizetés típus (csekk|készpénz) "​készpénz">​
 +
 +XML példa:
 +<​fizetés típus="​készpénz"​ />
 +vagy
 +<​fizetés típus="​csekk"​ />
 +Akkor használd ezt a tulajdonságot,​ amikor valamilyen adott 
 +értékeket vársz a felhasználótól. ​
 +
 +===== Tulajdonság vagy elem használata =====
 +==== Kérdés ====
 +
 +
 +Kérdéses lehet, hogy egy adatot gyermekelemként vagy tulajdonságként hozzunk létre.
 +
 +
 +
 +<code xml>
 +<szemely neme="​nő">​
 +  <​keresztnev>​Anna</​keresztnev>​
 +  <​vezeteknev>​Nagy</​vezeteknev>​
 +</​szemely>​
 +</​code>​
 +
 +
 +<code xml>
 +<​szemely>​
 +  <​neme>​nő</​neme>​
 +  <​keresztnev>​Anna</​keresztenev>​
 +  <​vezeteknev>​Nagy</​vezeteknev>​
 +</​szemely>​
 +</​code>​
 +
 +
 +==== A legjobb út ====
 +
 +
 +A legjobb talán az adatokat gyermekelemekben tárolni.
 +
 +A következőkben három XML dokumentumot látunk, amely ugyanazokat az információkat tárolják.
 +
 +=== Tulajdonság használata ===
 +
 +<code xml>
 +<note date="​2011-10-03">​
 +  <​to>​Emese</​to>​
 +  <​from>​Jani</​from>​
 +  <​heading>​Emlékeztető</​heading>​
 +  <​body>​Ne feledkezz meg rólam a hétvégén!</​body>​
 +</​note>​
 +</​code>​
 +
 +=== Második példa ===
 +
 +<code xml>
 +<​note>​
 +  <​date>​2011-10-03</​date>​
 +  <​to>​Emese</​to>​
 +  <​from>​Jani</​from>​
 +  <​heading>​Emlékeztető</​heading>​
 +  <​body>​Ne feledkezz meg rólam a hétvégén!</​body>​
 +</​note>​
 +</​code>​
 +
 +=== Legjobb példa ===
 +
 +<code xml>
 +<​note>​
 +  <​date>​
 +    <​day>​12</​day>​
 +    <​month>​11</​month>​
 +    <​year>​2002</​year>​
 +  </​date>​
 +  <​to>​Emese</​to>​
 +  <​from>​Jani</​from>​
 +  <​heading>​emlékeztető</​heading>​
 +  <​body>​Ne feledkezz meg rólam a hétvégén!</​body>​
 +</​note>​
 +</​code>​
 +
 +
 +===== Entitások használata =====
 +Az entitásokat változóként használjuk,​ amelyek gyorsbillentyűként szolgálnak
 +szabványos szövegek vagy speciális karakterek beillesztésére.
 +
 +Az entitást internal és external módon deklaráhatunk.
 +
 +
 +==== Belső entitás deklaráció ====
 +
 +
 +=== Szintaktika ===
 +
 +
 +  <!ENTITY entitás-neve "​entitás-értéke">​
 +
 +
 +Példa
 +
 +DTD példa:
 +
 +<!ENTITY szerzo "Salla András">​
 +<!ENTITY cr "​Copyright(c)">​
 +
 +XML példa:
 +
 +<code xml>
 +<​tulajdonos>&​cr;&​szerzo;</​tulajdonos>​
 +</​code>​
 +Megjegyzés:​ Egy entitás három részből áll: egy ampersand (&), egy név, és egy pontosvessző (;)
 +
 +
 +==== Külső entitás deklaráció ====
 +
 +
 +
 +
 +=== Szintaktika ===
 +
 +
 +  <!ENTITY entitás-neve SYSTEM "​URI/​URL">​
 +  ​
 +  ​
 +Példa
 +
 +DTD példa:
 +
 +  <!ENTITY szerzo SYSTEM "​http://​szit.hu/​entitasok.dtd">​
 +  <!ENTITY cr SYSTEM "​http://​szit.hu/​entitasok.dtd">​
 +
 +XML példa:
 +<code xml>
 +<​tulajdonso>&​cr;&​szerzo;</​tulajdonos>​
 +</​code>​
 +
 +===== Link =====
 +  * http://​www.w3schools.com/​dtd/​dtd_elements.asp
  
oktatas/szamitastechnika/dtd.txt · Utolsó módosítás: 2019/08/22 17:21 szerkesztette: admin