Lists Home |
Date Index |
From: "Sambasivarao_Potla" <Sambasivarao_Potla@satyam.com>
> Is it possible to declare an element in DTD which contains CDATA.
No, not with XML DTDs or XML Schemas.
You can do this using SGML DTDs using
<!ELEMENT Receipt ( Subtotal, #PCDATA, Tax, Total)>
and with RELAX NG schemas.
In general, this is considered bad modeling, because you have a
structure present, but it is not delimited. So
<!ELEMENT Receipt ( Subtotal, ReceiptText, Tax, Total)>
<!ELEMENT ReceiptText ( #PCDATA )>
is usually preferable. Also, it fits in better with things like XPath,
so it is probably easier for programmers.
(For schema fans, this is one reason why Schematron's weakness
in handling sequences of repeating groups [where the same
element types crop up in different groups] compared to grammar-based
schema systems should not cause us tears; repeating groups usually are
either modeling something that is better expressed with assertions or
are better modeled with an extra level of elements. Sean's article
today is interesting in that regard.)