Va rugam reveniti!
DEFINITIA TIPULUI DE DOCUMENT
Un DTD poate fi declarat "inline", in interiorul documentului XML, sau ca referinta externa.
Definitia DTD al unui document XML, "vede" respectivul fisier XML, ca o suma de blocuri simple.
- Elemente
- Atribute
- Entitai
- PCDATA
- CDATA
Elementele
Elementele sunt blocuri principale (delimitate de tag-uri) de constructie
pentru documentele XML cat si pentru cele HTML. Exemple pentru HTML
ar fi "body", "table". Elementele pot contine text, sau pot fi
goale (in HTML, elementele: "br", "hr").
In DTD, declaratia unui element are urmatoarea sintaxa:
<!ELEMENT nume-element categorie>
sau
<!ELEMENT nume-element (continut-element)>
Elementele goale sunt declarate folosing cuvantul cheie EMPTY.
<!ELEMENT nume-element #EMPTY>
Elementele pot fi de mai multe tipuri:
- contin doar caractere:
<!ELEMENT nume-element (#PCDATA)> - pot avea orice continut:
<!ELEMENT nume-element ANY> - care au descendenti (copii):
<!ELEMENT nume-element (nume-copil)>
sau
<!ELEMENT nume-element (nume-copil-1,nume-copil-2,.....)>
Cand un element este declarat ca avand descendenti, acestia fiind la randul lor elemente, trebuie declarati ca elemente distincte, in cadrul documentului DTD:
|
<!ELEMENT adresa (judet,oras,strada,numar)> <!ELEMENT judet (#PCDATA)> <!ELEMENT oras (#PCDATA)> <!ELEMENT strada (#PCDATA)> <!ELEMENT numar (#PCDATA)> |
Declaratii specifice pentru elemente descendente
- Declararea doar a unei singure aparitii a unui element
Elementul descendent "judet" trebuie sa apara o data, si numai o singura data, in interiorul elementului "adresa".<!ELEMENT adresa (judet)>
- Declararea minim a unei singure aparitii a unui element
Semnul "+" declara ca elmentul "judet" trebuie sa apara cel putin o data in interiorul elementului "adresa".<!ELEMENT adresa (judet+)>
- Declararea lipsei sau mai multor aparitii, a unui element
Semnul "*" declara ca elmentul "judet" poate sa lipseasca sau sa apara de mai multe ori in interiorul elementului "adresa".<!ELEMENT adresa (judet*)>
- Declararea lipsei sau a unei singure aparitii, a unui element
Semnul "?" declara ca elmentul "judet" poate sa lipseasca sau sa apara doar o singura data in interiorul elementului "adresa".<!ELEMENT adresa (judet?)>
- Declararea posibilitatii aparitiei unui element
Elementul "adresa" trebuie sa contina un element "judet", unul "strada" si unul dintre elementele "numar" sau "bloc".<!ELEMENT adresa (judet,strada,(numar|bloc))>
- Declararea unui continut mixt
Elementul "adresa" poate sa contina mai multe sau nici unul dintre caracterele parsabile sau elementele: "judet", "oras", "numar" sau "bloc".<!ELEMENT adresa (#PCDATA|judet|oras|numar|bloc)*>
Atributele
Atributele dau mai multe informatii despre elemente.
bla bla
bla2222