- From: <noah_mendelsohn@us.ibm.com>
- Date: Mon, 23 May 2005 08:47:26 -0400
- To: "Michael Kay" <mike@saxonica.com>
- Cc: "'Fraser Crichton'" <fraser.crichton@solnetsolutions.co.nz>, xmlschema-dev@w3.org
I agree with Michael on this. Another factor, which may or may not be of
interest in your case, is that in principle you can do validations of
portions of your documents, presuming they are described by global element
descriptions. Indeed, one of the reasons the schema WG did not call out a
separate marking for root elements, is that we would have had to invent a
second processing model to ignore it in the case where you really only
wanted to validate part of a document. Why would you want to do that? As
examples: you might want to validate only the body of a soap message, or
you might in an editor want to revalidate only the portions recently
changed. One thing to watch in doing such things are identity constraints
and ID/IDREF, which are enforced within the scope of the current
validation.
Anyway, for all that local element declarations are syntactically
convenient and occasionally the right thing semantically, it's globals
that tend to be more robust for many purposes. Globals also are the
constructs that roughly mimic DTD declarations.
FWIW: the schema WG is also aware that there are some good uses for
designating document roots in a schema document, and we were discussing
the pros and cons as recently as last week's face-to-face meeting.
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
"Michael Kay" <mike@saxonica.com>
Sent by: xmlschema-dev-request@w3.org
05/23/05 04:17 AM
To: "'Fraser Crichton'" <fraser.crichton@solnetsolutions.co.nz>,
<xmlschema-dev@w3.org>
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: RE: Creating library schemas which only expose a single document element
When you eventually come to write schema-aware queries or stylesheets,
you'll find that it's a good idea to make most of your elements global.
I would be inclined not to distort the schema design for this purpose.
Find some other way of checking that the top-level element in the instance
document is the one you want it to be.
Michael Kay
http://www.saxonica.com/
From: xmlschema-dev-request@w3.org [mailto:xmlschema-dev-request@w3.org] On Behalf Of Fraser Crichton
Sent: 23 May 2005 03:17
To: xmlschema-dev@w3.org
Subject: Creating library schemas which only expose a single document element
Hi,
This kind of a follow up to something I posted to XML-DEV -Validating against the correct root element using library schemas http://lists.xml.org/archives/xml-dev/200505/msg00263.html (BTW thanks, Michael and Henry, for getting back to me).
If I'm creating a set of library schemas where I want to enforce that
particular document / message schemas are valid and that no fragments of
documents are valid it seems I have two approaches -
1) I adopt a strict venetian blind approach i.e. there are no global
element declarations in my library schemas and only a Russian doll
approach in my message / document schemas to enforce that there is only
one valid root element (however that way I can't create any reusable
elements just reusable types).
2) I use xsd:group to hide my global elements but get reuse from them by
referencing the groups.
I have a some questions -
Would the xsd:group approach just be a dirty hack?
Is there any reason why OASIS have not adopted xsd:group (sorry to keep
banging on about OASIS but the New Zealand government are looking at a
number of their standards ;-) )?
Cheers,
Fraser
Attention: This email may contain information intended for the sole use of
the original recipient. Please respect this when sharing or disclosing
this email's contents with any third party. If you believe you have
received this email in error, please delete it and notify the sender or
postmaster@solnetsolutions.co.nz as soon as possible. The content of this
email does not necessarily reflect the views of SolNet Solutions Ltd.
Received on Monday, 23 May 2005 12:47:35 UTC