W3C home > Mailing lists > Public > xmlschema-dev@w3.org > November 2020

Re: XSD validation, ambiguous root XML instance element

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>
Message-ID: <f5by2jiah03.fsf@ecclerig.inf.ed.ac.uk>
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

This archive was generated by hypermail 2.4.0 : Tuesday, 3 November 2020 10:10:10 UTC