Re: XSchema Spec Section 2.2, Draft 1

Peter Murray-Rust (peter@ursus.demon.co.uk)
Thu, 25 Jun 1998 04:27:41


At 20:05 23/06/98 +0100, Michael Kay wrote:
>>Peter Murray-Rust wrote:
>>
>>> Unless there is
>>> sensible running text whose prime purpose is to be read
>by humans there is
>>> no particular value in having mixed content (i.e. strings
>+ elements mixed).

I probably didn't mean to make it sound so black and white :-)
>>
>Counter-example from GedML (adapted to make it
>self-explanatory):
>
><PERSON>
><NAME>Frederick BLOGGS
> <SOURCE>Birth Certificate</SOURCE>
> <CONFIDENCE>High</CONFIDENCE>
> <CHANGED>
> <ON>12 Jan 1983</ON>
> <BY>MHK</BY>
> </CHANGED>
> <NOTE>Generally signed himself "Frederik"</NOTE>
></NAME>
>
There's nothing wrong with this, of course.

My own style would be to wrap 'Frederick Bloggs' into an element. In
implementation terms I have implemented PCDATA as a sort of second-class
element - i.e. it gets displayed differently in JUMBO, etc. Methods of
linking to it are different. Perhaps I'm wrong here.

>Unfortunately I am unable to declare in the DTD that the
>element contains "PCDATA content followed by zero or more of
>the following child elements", XML's peculiar rules mean
>that with mixed content I cannot declare any ordering or
>cardinality constraints. (I wonder if someone thought that
>there was no requirement?)

It was to avoid the problems of pernicious mixed content, I believe.

Remember also that:
<PERSON>
<NAME>
<SOURCE>Birth Certificate</SOURCE>
<CONFIDENCE>High</CONFIDENCE>
<CHANGED>
<ON>12 Jan 1983</ON>
<BY>MHK</BY>
</CHANGED>
<NOTE>Generally signed himself "Frederik"</NOTE>
</NAME>

is a valid instance of a document against your DTD. The person's name is
then &#13; or something similar

P.

Peter Murray-Rust, Director Virtual School of Molecular Sciences, domestic
net connection
VSMS http://www.nottingham.ac.uk/vsms, Virtual Hyperglossary
http://www.venus.co.uk/vhg