Definisjon av dokumenttype

Den Document Type Definition (DTD) eller definisjon dokumenttype er enten en fil eller en del av et dokument SGML eller XML , som beskriver dokumentet eller klasse av dokumenter.

En DTD beskriver grammatikk av dokumentet - liste over elementer (eller koder ), attributter, deres innhold og arrangement - i tillegg til ytterligere vokabular i form av et tegn enhet liste .

XML-skjema er et mer sofistikert alternativ til bruk av DTD-er.

Beskrivelse

En DTD beskriver dokumenter på to nivåer: den logiske strukturen, som kan sammenlignes med abstrakt syntaks , og den fysiske strukturen, som kan sammenlignes med konkret syntaks .

På nivået av den logiske strukturen indikerer en DTD navnene på elementene som kan vises og innholdet, det vil si underelementene og attributtene. Bortsett fra attributtene, spesifiseres innholdet ved å indikere navn, rekkefølge og antall tillatte forekomster av underelementene. Settet utgjør definisjonen av gyldige hierarkier av elementer og tekst. På den annen side tillater ikke DTDs å innføre begrensninger på verdien av teksten som "innholdet av elementet X er et heltall i desimal", eller "i elementet Y , alle sekvenser av blanks tilsvarer bare ett rom ”.

Å definere hva som er gyldig er også rollen som "skjemaer" ( for eksempel XML-skjema , Relax NG , Schematron ), men disse uttrykkes fortrinnsvis i XML-syntaks mens DTD-er har en spesifikk syntaks. Bare DTD er en integrert del av W3C XML-anbefalingen, og bare den kan validere et XML-dokument fra denne anbefalingens synspunkt.

DTD for et dokument kan skrives inne i og utenfor dokumentet. Den endelige DTD er en kombinasjon av de to.

På nivået med den fysiske strukturen kan en DTD også definere generelle enheter . Disse har en av følgende roller:

Forskjeller mellom SGML og XML

Det er noen forskjeller mellom DTD-er for SGML og de for XML. Det viktigste fra et uttrykkelseskapasitetsperspektiv er at DTD-er for XML ikke tillater begrensninger for hekking av elementer og spesifiserer gyldige trær. For eksempel, i SGML-versjonen av HTML, kan et "A" -element (for lenker og ankre) ikke inneholde et annet "A" -element på noe nivå, selv om den generelle beskrivelsen av innholdet indirekte nevner "A" som mulig innhold av " EN". Denne begrensningen kan ikke uttrykkes i XML-versjonen av DTD-ene.

En annen begrensning på muligheten til å uttrykke DTDer for XML over SGML er fjerning av uordnede grupperinger: i SGML betyr skriving for innholdet i et X- element "A & B & C" at X må inneholde de tre elementene A, B og C uten krav til bestillingen. I DTD-ene for XML, som ikke har “&” -kontakten, kan dette bare uttrykkes ved eksplisitt oppregning av alle mulige ordrer: innholdsdefinisjonen for X skrives: “A, B, VS”. Den kombinatoriske eksplosjonen som dette innebærer, fører generelt til at det i DTDene for XML pålegges en ordre som ikke er logisk nødvendig for behandlingen av informasjonen i dokumentet.

Syntaks

DTD er avgrenset, inne i et dokument, av merkelappen . !DOCTYPE

Syntaks for å erklære innholdet av elementer

Eksempel

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE liste_de_gens [ <!ELEMENT liste_de_gens (personne)*> <!ELEMENT personne (nom, date_de_naissance?, genre?, numero_de_secu?)> <!ELEMENT nom (#PCDATA)> <!ELEMENT date_de_naissance (#PCDATA)> <!ELEMENT genre (#PCDATA | masculin | féminin) "féminin"> <!ELEMENT numero_de_secu (#PCDATA)> ]> <liste_de_gens> <personne> <nom>Fred Bloggs</nom> <date_de_naissance>2008-11-27</date_de_naissance> <genre>masculin</genre> </personne> </liste_de_gens>

Se også

Merknader og referanser

  1. Prologue og dokumenttypedeklarasjon