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

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] dtd mixed content

[ Lists Home | Date Index | Thread Index ]

<link>
  Hi <b>there</b> you
</link>

and

<link>
  <img/>
</link>

are valid (xsv) with regard to

   <xs:element name="link">
     <xs:complexType mixed="true">
       <xs:choice>
         <xs:element ref="b"/>
         <xs:element ref="img"/>
       </xs:choice>
     </xs:complexType>
   </xs:element>
   <xs:element name="b" type="xs:string"/>
   <xs:element name="img"/>

so is

<link>
  Hi <img/> there you
</link>

but that's probably no what Fernando wants! RELAX NG wins again.

Mike

jcowan@reutershealth.com wrote:

> Mike Fitzgerald scripsit:
> 
> 
>>Fernando Cubria wrote:
>>
>>>żIs there a way to tell, in dtd syntax, that a "link" element can contain 
>>
>>any combination of text and "b" elements or just one "img" element?
>>
>>>I have tried with
>>><!ELEMENT link  ((#PCDATA | b)* | img) >
>>>but I get an error.
>>
>>You can do this using choice. You could do this in XML Schema (xs:choice):
>>
>><xs:element name="link">
>> <xs:complexType mixed="true">
>>   <xs:choice>
>>    <xs:element ref="b"/>
>>    <xs:element ref="img"/>
>>   </xs:choice>
>>  </xs:complexType>
>> </xs:element>
>><xs:element name="b" type="xs:string"/>
>><xs:element name="img"/>
> 
> 
> Actually, that says "element link {(b | img) & text}" in RNC syntax,
> whereas he wants "element link {(b | text)* | img}".  Neither DTD nor
> XSD can handle such a content model.  The content models of b and img
> are not given.
> 
> Fernando, consider using a RELAX NG schema instead of a DTD.
> See http://www.relaxng.org .




 

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

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