Site in constructie!
Va rugam reveniti!



DEFINITIA TIPULUI DE DOCUMENT

Un document/fisier DTD(Document Type Definition) defineste structura unui document XML cu o lista de elemente valide.

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
    <!ELEMENT adresa (judet)>
    Elementul descendent "judet" trebuie sa apara o data, si numai o singura data, in interiorul elementului "adresa".
  • Declararea minim a unei singure aparitii a unui element
    <!ELEMENT adresa (judet+)>
    Semnul "+" declara ca elmentul "judet" trebuie sa apara cel putin o data in interiorul elementului "adresa".
  • Declararea lipsei sau mai multor aparitii, a unui element
    <!ELEMENT adresa (judet*)>
    Semnul "*" declara ca elmentul "judet" poate sa lipseasca sau sa apara de mai multe ori in interiorul elementului "adresa".
  • Declararea lipsei sau a unei singure aparitii, a unui element
    <!ELEMENT adresa (judet?)>
    Semnul "?" declara ca elmentul "judet" poate sa lipseasca sau sa apara doar o singura data in interiorul elementului "adresa".
  • Declararea posibilitatii aparitiei unui element
    <!ELEMENT adresa (judet,strada,(numar|bloc))>
    Elementul "adresa" trebuie sa contina un element "judet", unul "strada" si unul dintre elementele "numar" sau "bloc".
  • Declararea unui continut mixt
    <!ELEMENT adresa (#PCDATA|judet|oras|numar|bloc)*>
    Elementul "adresa" poate sa contina mai multe sau nici unul dintre caracterele parsabile sau elementele: "judet", "oras", "numar" sau "bloc".

Atributele
Atributele dau mai multe informatii despre elemente.