- From: Henry S. Thompson <ht@inf.ed.ac.uk>
- Date: Tue, 03 Nov 2020 10:09:48 +0000
- To: Michael Kay <mike@saxonica.com>
- Cc: Mukul Gandhi <gandhi.mukul@gmail.com>, "xmlschema-dev\@w3.org" <xmlschema-dev@w3.org>
Michael Kay writes:
> Basically, the problem is that XSD doesn't define constraints on a
> document, it only defines constraints on an element. I've never
> understood entirely why that mind-set exists, but it seems to be
> strongly held by some.
>
> xs:ID/IDREF validation is of course an exception, and I think that
> only got in because they wanted XSD to be a functional replacement for
> DTDs.
At this remove in time, I certainly don't remember why we didn't add a
document-level constraint to XSD. But I would note that insofar as
there was a mind-set, it was certainly heavily influenced by the idea
that, as you said, XSD was meant to do more-or-less what DTDs did, using
XML as its notation. And DTDs don't let you specify the root element
either.
Why _that_ was the case I have no idea.
Nor do I remember why the XML DOCTYPE _does_ specify the root element,
which is redundant/self-evident 99% of the time.
But mentioning DOCTYPE leads on to suggest that one might say the
'correct' way to address your requirement is to put the constraint _in
the document_:
<!DOCTYPE X>
<?xml version="1.0"?>
<X>
...
</X>
Or, and IIRC at least some validators provide for this, specify the
required root element name or type when invoking the validation.
ht
--
Henry S. Thompson, School of Informatics, University of Edinburgh
10 Crichton Street, Edinburgh EH8 9AB, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: ht@inf.ed.ac.uk
URL: http://www.ltg.ed.ac.uk/~ht/
[mail from me _always_ has a .sig like this -- mail without it is forged spam]
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.
Received on Tuesday, 3 November 2020 10:10:08 UTC