DTD gramatikas

Last modified by superadmin on 2018-01-12 20:39

DTD gramatikas

DTD (Document Type Definition) pieder pie XML specifikācijas. XML dokumenti līdz ar pašu dokumenta saturu (datiem) satur arī informāciju par šīs informācijas struktūru (metadatus). Šie metadati noformēti kā bezkonteksta gramatika, kura apraksta XML elementu saturu un secību. Gramatiku pievieno, lai nodrošinātu dokumenta atbilstību specifiskam XML standartam - to var pierakstīt faila sākumā vai arī pielinkot no ārpuses. Piemērs gramatikas pievienošanai faila sākumā: 

<?xml version="1.0"?>
<!DOCTYPE kolekcija SYSTEM "kolekcija.dtd">
<kolekcija>
 <cd price="$10.05">
   <nosaukums>shallow and profound</nosaukums>
   <ansamblis>YOUNDERBOI</ansamblis>
   <dziesma>
     <dz>intro</dz>
     <instr>saxophone</instr>
     <dz>fairy of the lake</dz>
   </dziesma>
 </cd>
...
</kolekcija>
Ja pirmajā rindiņā nenorāda encoding, tad pēc noklusēšanas XML rīks sapratīs, ka kodējums ir "UTF-8". Gramatika glabājas failā kolekcija.dtd, kurā definējam atribūtus un elementus. Šis fails izskatās sekojoši:
<!ELEMENT kolekcija (cd*)>
<!ELEMENT cd (nosaukums, ansamblis, dziesma)>
<!ATTLIST cd
    price CDATA #IMPLIED>
<!ELEMENT nosaukums (#PCDATA)>
<!ELEMENT ansamblis (#PCDATA)>
<!ELEMENT dziesma (dz|instr)+>
<!ELEMENT dz (#PCDATA)>
<!ELEMENT instr (#PCDATA)>
  • * pie norādītā elementa nozīmē, ka tas var būt skaitā 0,1,2...
  • + - skaitā 1,2...
  • ? - skaitā 0 vai 1
  • ELEMENT - elementa satura deklarācija
  • ATTLIST - elementa atribūtu saraksta deklarācija
  • CDATA - simboliski dati atribūta vērtībā
  • #PCDATA - simboliski dati elementa saturā
  • #REQUIRED - atribūts obligāti jānorāda
  • #IMPLIED - atribūts nav obligāts
  • #FIXED - atribūta vērtība ir fiksēta

Vagoniņu diagrammas - ekvivalenti DTD gramatikām apraksta XML sintaksi:

kolekcija: #pic("Validation_SyntaxDiagram1.gif", "258")
Piemērs: Sintakses diagramma atkārtojumam

cd: #pic("Validation_SyntaxDiagram2.gif", "536")
Piemērs: Sintakses diagramma konkatenācijai

dziesma: #pic("Validation_SyntaxDiagram3.gif", "267")
Piemērs: Sintakses diagramma izvēlei ar atkārtojumu
Tags:
Created by Kalvis Apsītis on 2008-05-01 16:21
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation