OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   ambiguous content model

[ 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>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS