[
Lists Home |
Date Index |
Thread Index
]
Hello list,
considering the following content model
<table type="row">
<title/>
<tgroup>
<title/>
<integer/>
<void/>
<integer/>
</tgroup>
<tgroup>
<title/>
<void/>
<real/>
<real/>
</tgroup>
</table>
should be valid and
<table type="row">
<title/>
<tgroup>
<title/>
<integer/>
<real/>
<real/>
<integer/>
<void/>
</tgroup>
</table>
should *not*
which means that a table should consist of *one* title and *one-or-more* table-groups.
each table-group should consist of *one* title and *one-or-more* of
*integer-or-void*, *real-or-void* or *text-or-void*
with my approach i'm caught in a trap of an 'ambigous content model':
<!ENTITY % real.mix "(real | void)">
<!ENTITY % integer.mix "(integer | void)">
<!ENTITY % text.mix "(text | void)">
<!ENTITY % tableContent.mix "
((%integer.mix;)+) |
((%real.mix;)+) |
((%text.mix;)+)
">
<!ENTITY % tableType.att "type (row|column) #REQUIRED">
<!ELEMENT table (
title,
(tableInput)+,
(description)?)
>
<!ATTLIST table
tableType.att;
>
<!ELEMENT tableInput (
(
(title),
(%tableContent.mix;)
)
)>
<!ELEMENT integer (#PCDATA)>
<!ELEMENT real (#PCDATA)>
<!ELEMENT void (#PCDATA)>
<!ELEMENT text (#PCDATA)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT description (
(text)+)
>
i don't know if this problem can be solved with a XML-DTD but perhapes someone
has an idea how to make it 'non-ambiguous'
thanx in advance
--
Eike Jordan <jordan@fiz-chemie.de>
|