„Dokumentumtípus-definíció” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
1 forrás archiválása és 0 megjelölése halott linkként. #IABot (v2.0beta10)
Xqbot (vitalap | szerkesztései)
a Bot: Replace deprecated <source> tag and "enclose" parameter [https://lists.wikimedia.org/pipermail/wikitech-ambassadors/2020-April/002284.html]; kozmetikai változtatások
24. sor:
Az alábbi példában a dokumentumtípus-deklaráció public és system azonosítót is tartalmaz.
 
<sourcesyntaxhighlight lang="xml">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</syntaxhighlight>
</source>
 
Minden HTML 4.1-esdokumentum megfelel három SGML DTD egyikének, melyek publikus azonosítói állandók:
39. sor:
Az XML szintaxisnak megfelelő dokumentumokban a dokumentumtípus-deklaráció az opcionális XML-deklaráció után, a dokumentum törzse előtt jelenhet meg.
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
47. sor:
...
</html>
</syntaxhighlight>
</source>
 
A külső definíció után következhet belső DTD-deklaráció is.
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
61. sor:
...
</html>
</syntaxhighlight>
</source>
 
Használhatunk kizárólag belső DTD-t is.
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html [
74. sor:
...
</html>
</syntaxhighlight>
</source>
 
Előfordulhat, hogy a dokumentum egyáltalán nem tartalmaz definíciót. Ebben az esetben csak azt határozzuk meg, hogy a dokumentumnak van egyetlen legfelső szintű eleme, és megadjuk e gyökérelem típusnevét. A gyökérelem léte az érvényes XML és HTML dokumentumokkal szemben implicit követelmény, a dokumentumtöredékekkel, és az összes SGML dokumentummal szemben - amelyeknél a legfelső szintű elem különbözhet az implikált gyökérelemtől - azonban nem.
 
<sourcesyntaxhighlight lang="xml">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html>
85. sor:
...
</html>
</syntaxhighlight>
</source>
 
== A DTD-k szerkezete ==
95. sor:
Az elem típusú deklaráció egy elemet és annak lehetséges tartalmát definiálja. Az érvényes XML-dokumentumok csak a DTD-ben definiált elemeket tartalmazhatják.
 
<sourcesyntaxhighlight lang="xml">
<!ELEMENT konyv (szerzo, cim, alcim*, kiado, (fogy_ar|elfogyott)?, ISBN?, iranyitoszam?, leiras?, kulcsszo*)>
<!ELEMENT kulcsszo (#PCDATA)>
<!ELEMENT leiras (#PCDATA|bevezeto|torzs)*>
</syntaxhighlight>
</source>
 
Az előforduló fontosabb struktúrák és kulcsszavak a következők:
105. sor:
* '''szekvencia''': zárójeleken belül elemnevek rendezetlen listája vesszőkkel elválasztva.
* '''szelekció''': csővonallal (<tt>|</tt>) elválasztott elemnevek között logikai kizáró vagy kapcsolat áll fenn.
* szöveges tartalom: az előzőektől eltérően az elem nem csak újabb elemeket, hanem konkrét adatokat tartalmaz.
** '''feldolgozott karakteres adatok''' (parsed character data): karakterekből álló adatok, melyeket a feldolgozóprogram fel is dolgoz, ezért a kitüntetett karaktereket helyettesíteni kell a nekik megfelelő karakteregyedekkel. Jelölés: <tt>(#PCDATA)</tt>
** '''vegyes tartalom''': az elem vagy karakteres adatokat, vagy elemet tartalmaz. A tartalmi rész első eleme a <tt>#PCDATA</tt> kulcsszó, maga a tartalom pedig kötelező választási lehetőségek listája csővonalakkal elválasztva. A lista végén lévő <tt>*</tt> karakter azt jelöli, hogy az elemből nulla vagy több példány fordulhat elő a dokumentumban.
125. sor:
Példa:
 
<sourcesyntaxhighlight lang="xml">
<!ATTLIST img
src CDATA #REQUIRED
132. sor:
print (yes | no) "yes"
>
</syntaxhighlight>
</source>
 
==== Attribútumok lehetséges típusai ====
160. sor:
Esetükben az egyednek és tartalmának definíciója egyaránt a DTD-ben szerepel. Ha a dokumentumban valahol hivatkozunk az egyedre, akkor a hivatkozás behelyettesítődik az egyed tartalmával.
 
<sourcesyntaxhighlight lang="xml">
<!ENTITY me "Miki Egér">
</syntaxhighlight>
</source>
 
==== Külső egyedek ====
171. sor:
<tt><!ENTITY név PUBLIC "publikus_azonosító" "URI"></tt>
 
<sourcesyntaxhighlight lang="xml">
<!ENTITY pl SYSTEM "./kulso.dtd">
</syntaxhighlight>
</source>
<br/>
<sourcesyntaxhighlight lang="xml">
<!ENTITY c PUBLIC "-//W3C//TEXT copyright//EN"
"http://www.w3.org/xmlspec/copyright.xml">
</syntaxhighlight>
</source>
 
Elképzelhető, hogy az egyed fel nem dolgozandó adatra mutat, ilyenkor a deklaráció kiegészül az <tt>NDATA</tt> kulcsszóval, ami az egyedet egy NOTATION-nel kapcsolja össze.
186. sor:
<tt><!ENTITY név PUBLIC "publikus_azonosító" "URI" NDATA notation_neve></tt>
 
<sourcesyntaxhighlight lang="xml">
<!ENTITY logo SYSTEM "http://www.pelda.net/logo.png" NDATA png>
</syntaxhighlight>
</source>
<br/>
<sourcesyntaxhighlight lang="xml">
<!ENTITY logo PUBLIC "-//W3C//GIF logo//EN"
"http://www.w3.org/logo.gif" NDATA gif>
</syntaxhighlight>
</source>
 
=== A NOTATION deklaráció ===
201. sor:
Így lehet annotálni az SVG file-okat annak érdekében, hogy a megfelelő megjelenítővel társítsuk őket:
 
<sourcesyntaxhighlight lang="xml">
<!NOTATION type-image-svg SYSTEM "image/svg">
</syntaxhighlight>
</source>
 
== Lásd még ==
212. sor:
{{Jegyzetek}}
 
== További információk ==
* [http://www.w3.org/TR/REC-xml/#dt-doctype Definition of the XML document type declaration from Extensible Markup Language (XML) 1.0 (Fourth Edition) on W3.org]