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

Odpovedet emailem