DTD Question - PCDATA followed by an optional element
Rick Jelliffe
ricko at allette.com.au
Thu Nov 18 02:27:34 GMT 1999
From: Richard Tobin <richard at cogsci.ed.ac.uk>
>> I have a large number of fields that normally hold simple textual
data, but
>> might also include a comment.
>
>You can't constrain the content in that way with a DTD. The best you
>do is
>
> <!ELEMENT rho0 (#PCDATA|comment)*>
>
>which allows any mixture of comments and text.
To get strong typing you either must
1)explicitly label the text section:
<!ELEMENT rho0 (text, comment?)>
<!ELEMENT text (#PCDATA)>
or
2) use some other schema language to validate: use a DTD with Richard's
<!ELEMENT rho0 (#PCDATA|comment)*>
Then the following Schematron schema to check that only one comment is
used (I think this is correct, I haven't run it):
<schema><title>Norman's Schema</title>
<pattern name="Rho0 Pattern">
<rule context="rho0">
<assert text="count(comment) <= 1"
>An rh0 element should have only one comment</assert>
</rule>
</pattern>
</schema>
You can download schematron-report, which is an error browser generating
HTML pages, from
http://www.ascc.net/xml/resource/schematron/schematron.html
Rick Jelliffe
xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev
mailing list