[HOME PAGE] [STORES] [CLASSICISTRANIERI.COM] [FOTO] [YOUTUBE CHANNEL]

Document Type Definition - Viquipèdia

Document Type Definition

De Viquipèdia

Document Type Definition (DTD, en català definició de tipus de document) és una descripció d’estructura i sintaxi d’un document XML o SGML. La seva funció bàsica és la descripció del format de dades, per utilitzar un format comú i mantenir la consistència entre tots els documents que empren la mateixa DTD. D’aquesta manera, aquests documents, poden ser validats, tenen una manera d’incloure al document la descripció de les dades que conté, i poden compartir la mateixa descripció i forma de validació dins d’un grup de treball que utilitza el mateix tipus d’informació.

Taula de continguts

[edita] Definició

La DTD és una definició, en un document SGML o XML, que especifica les restriccions a l’estructura i sintaxis del mateix. La DTD es pot incloure dins del fitxer del document, però normalment es guarda en un fitxer ASCII de text separat. La sintaxis de les DTDs per SGML i XML és similar però no idèntica.

La definició d'una DTD especifica la sintaxis d’una aplicació SGML o XML, que pot ésser un estàndard ampliament utilitzat com XHTML o una aplicació local.

[edita] Què descriu una DTD?

Les DTDs són utilitzades generalment per a determinar l’estructura d’un document mitjançant etiquetes (en anglès tags) XML o SGML. Una DTD descriu:

  • Elements: indiquen quines són les etiquetes permeses i el contingut de les etiquetes.
  • Estructura: indiquen l’ordre en el que van les etiquetes dins del document.
  • Anidaments: indiquen quines etiquetes van dins d'altres.

[edita] Exemples

  • Un exemple d'una DTD XML molt senzilla, per descriure una llista de persones:
<!ELEMENT llista_de_persones (persona*)>
<!ELEMENT persona (nom, datanaixement?, genere?, numeroseguretatsocial?)>
<!ELEMENT nom (#PCDATA) >
<!ELEMENT datanaixement (#PCDATA) >
<!ELEMENT genere (#PCDATA) >
<!ELEMENT numeroseguretatsocial (#PCDATA) >

Observant l’exemple línia a línia ens diu:

  1. <llista_personas> és un nom d’element vàlid. L’* indica que poden hi haver 0 o més elementss de persona.
  2. <persones> és un nom d’element vàlid. Aquest conté obligatòriament l’element nom mentres que la resta són opcionals. I són perquè, hi ha el símbol’?’ que ens ho indica.
  3. <nom> és un nom d’element vàlid. Conté caràcters.
  4. <genere> és un nom d’element vàlid. Conté caràcters. És opcional.
  5. <datanaixement> és un nom d’element vàlid.
  6. <numeroseguridadsocial> és un nom d’element vàlid.
  • Un exemple d’un fitxer XML que fa ús d’aquesta DTD descrit anteriorment:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE llista_de_persones SYSTEM "exemple.dtd">
<llista_de_personas>
  <persona>
    <nom>Josep García</nom>
    <datanaixement>25/04/1984</ datanaixement >
    <genere>masculí</genere>
  </persona>
</llista_de_personas>

La DTD mostrada més a munt, requereix un element "nom" dins de cada element "persona"; l’element "llista_de_persones" és també obligatori, però la resta són opcionals.

És possible renderitzar aquest exemple, en un navegador habilitat per XML (com IE5 o Mozilla) enganxant i guardant la DTD en un fitxer de text, anomenat exemple.dtd i el fixter .xml a un fitxer de text anomenat de diferent forma, i obrint el fitxer .xml amb el navegador. Ambdós fitxers has d’estar emmagatzemats en el mateix directori (o carpeta). No obstant això, alguns navegadors no comproven que un document XML segueix les normes de la DTD; només es requereixen per comprovar que la DTD és sintàcticament correcte.

[edita] Limitacions de la DTD

Un esquema basat en una DTD té bastantes limitacions. Una DTD no permet definir elements locals que només siguin vàlids dins d’altres elements. Per exemple, si volem tenir un element <Manager> que descrigui al gestor d’una companyia o al d’una delegació, i la definició de Manager és diferent a cada cas, amb una DTD hem de crear els elements “CompanyManager” i “DelegationManager” per evitar el conflicte de noms. És a dir, la falta de jerarquia en una DTD obliga a introduir una jerarquia a base de guions o punts a l’espai de noms (Namespace). En una DTD, és poc flexible la definició d’elements amb contingut mixte, és a dir, que incloguin altres elements a part del text. A més no és possible indicar a quin tipus de dada (número, data, moneda) pertany un atribut o text d’un element.

La necessitat de superar aquestes limitacions propicia l'aparició d'altres llenguatges d'esquema com XML Schema, eines més completes de descripció que són una alternativa a les DTDs.

[edita] Vegi també


[edita] Enllaços externs