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