DTD - elementit
- Edellinen sivu DTD - rakennusmoduuli
- Seuraava sivu DTD - ominaisuudet
DTD:ssä elementit määritellään elementtilausekkeilla.
Elementin määrittely
DTD:ssä XML-elementit määritellään elementtilausekkeilla. Elementtilauseke käyttää seuraavaa syntaksia:
!ELEMENT elementin_nimi luokka
Tai
!ELEMENT elementin_nimi (elementti_sisältö)
Tyhjät elementit
Tyhjät elementit määritellään luokitusavainsanalla EMPTY:
!ELEMENT elementin_nimi EMPTY
Esimerkki:
!ELEMENT br EMPTY
XML-esimerkki:
<br />
Vain PCDATA:n sisältävät elementit
Vain PCDATA:n sisältävät elementit määritellään pyöristetyissä merkeissä #PCDATA:n kautta:
!ELEMENT elementin_nimi (#PCDATA)
Esimerkki:
!ELEMENT from (#PCDATA)
Elementit, joissa on minkä tahansa sisällön:
Elementit, jotka on määritelty luokitusavainsanalla ANY, voivat sisältää yhdistelmän minkä tahansa analysoitavissa olevan datan:
!ELEMENT elementin_nimi ANY
Esimerkki:
!ELEMENT note ANY
Elementti, jolla on lapsielementit (sarja)
Yhden tai useamman lapsielementin omaavat elementit ilmoitetaan pyöreiden sulkeiden sisällä lapsielementin nimellä:
<!ELEMENT elementti_nimi (lapsielementti_nimi 1)>
Tai
<!ELEMENT elementti_nimi (lapsielementti_nimi 1,lapsielementti_nimi 2,...)>
Esimerkki:
<!ELEMENT note (to,from,otsikko,body)>
Kun lapsielementit ilmoitetaan pilkullisena sarjana, nämä elementit täytyy esiintyä asiakirjassa samassa järjestyksessä. Tässä täysimääräisessä ilmoituksessa lapsielementit täytyy myös ilmoittaa, ja lapsielementillä voi olla lapsielementtejä. "note"-elementin täysimääräinen ilmoitus on:
<!ELEMENT note (to,from,otsikko,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT otsikko (#PCDATA)> <!ELEMENT body (#PCDATA)>
Ilmoitetaan vain yhden kerran esiintyvien elementtien
<!ELEMENT elementti_nimi (lapsielementti_nimi)>
Esimerkki:
<!ELEMENT note (message)>
Esimerkissä on ilmoitettu, että alielementti "message" täytyy esiintyä kerran ja vain "note"-elementissä.
Ilmoitetaan vähintään yhden kerran esiintyvien elementtien
<!ELEMENT elementti_nimi (lapsielementti_nimi+)>
Esimerkki:
<!ELEMENT note (message+)>
Esimerkissä plusmerkki ilmoittaa, että alielementti "message" täytyy esiintyä "note"-elementissä vähintään kerran.
Ilmoitetaan nollasta useita esiintyvien elementtien
<!ELEMENT elementti_nimi (lapsielementti_nimi*)>
Esimerkki:
<!ELEMENT note (message*)>
Esimerkissä tähti ilmoittaa, että alielementti "message" voi esiintyä "note"-elementissä nollasta useita kertoja.
Ilmoitetaan nollasta yhteen esiintyvien elementtien
<!ELEMENT elementti_nimi (lapsielementti_nimi?)>
Esimerkki:
<!ELEMENT note (message?)>
Esimerkissä kysymysmerkki ilmoittaa, että alielementti "message" voi esiintyä "note"-elementissä nollasta yhteen kertaan.
Ilmoitetaan "ei.../tai..."-tyyppistä sisältöä
Esimerkki:
<!ELEMENT note (to,from,header,(message|body))>
Esimerkissä on ilmoitettu, että "note"-elementti täytyy sisältää "to"-elementin, "from"-elementin, "header"-elementin sekä ei-"message"-elementin "body"-elementin.
Ilmoitetaan sekaisesta sisällöstä
Esimerkki:
<!ELEMENT note (#PCDATA|to|from|header|message)*>
Yllä oleva esimerkki määrittää: "note"-elementti voi sisältää nollasta useisiin PCDATA:hen, "to", "from", "header" tai "message".
- Edellinen sivu DTD - rakennusmoduuli
- Seuraava sivu DTD - ominaisuudet