Lukas Benda napsal(a):
Dobry den,
vytvarim svuj DTD soubor pro popis datove struktury v XML. Mam takove dva
problemy. Prvni je jak oznacit ze najeky element je prvni? Jak oznacit ze
muze byt pouzit pouze jednou a to jako hlavni element?
Kdyz pouzijete tag beans co je ve springu (tak vam to Emacs zareze uplne
nalevo), zatimco muj hlavni element doskoci. Proste jednoznacne nejak
zjistit, ze se nejedna o prvni element. (Podobne je to treba s Docbook, kdyz
do suboru vlozite jenom chapter, tak odskoci, kdyz tam ale date tag book, tak
se to zareze spravne na kraj souboru).
Tohle je definice prvniho elementu:
<!ELEMENT tests (title?, (para | figure)*, (import | test)*)>
Staci uvest v XML souboru nasledujici informaci:
<!DOCTYPE <tests> SYSTEM "tests.dtd">
Druhym problemem je ze sice vim jak ma vypadat definice prazdneho elementu:
napr.: <!ELEMENT imagedata EMPTY>
Jenze ja chci element, ktery je sice prazdy (vetsionu), ale bocas muze byt i
neprazdny. Tipicky je to ve springu element <property> muze mit formu:
<property name="" value="" />
ale taky
<property name=""><value></value></property>
Jak se definuje tohle? Pac kdyz pak validuju dokument pomoci onsgmls tak mi
rve ze je dokument nevalidni.
Toto v DTD myslim nejde. Lze specifikovat, ze atribut value je
nepovinny, ale podle schema muze nastat, ze by to mohlo vypadat napr. toto:
<property name="" value="">
<value></value>
</property>
Vylouceni atributu a elementu potomka zrejme nejde...
Prochy