- From: Mark Feblowitz <mfeblowitz@frictionless.com>
- Date: Thu, 1 Nov 2001 11:07:50 -0500
- To: "'Alexander Falk'" <al@altova.com>, Noah_Mendelsohn@lotus.com
- Cc: ht@cogsci.ed.ac.uk, XML Spy Support Team <support@xmlspy.com>, xmlschema-dev@w3.org
I suppose I'm about to diminish my own suggestion. My original question came
when Xerces and XSV 1.3 had trouble with duplicate includes. As of
yesterday, Xerces 2.0.0b3, XSV 1.3, and XML Spy 4.1 all seem to do fine with
most duplicate includes (at least in accepting duplicates; don't know about
how efficient each is).
So, let's say that all of the schema validators get to a point where they
handle duplicate includes correctly and efficiently. Would there still be a
need for a development-time include feature?
Xerces currently fails in the correct handling of redefines. It reports
duplicate elements if, somewhere along the include chain, a file is both
included and referenced in a redefine statement.
I'm thinking that the best case would be where each file could
import/include all of the parts that were needed to validate that file
standalone, yet those duplicate includes would have no significant effect
when combined in a larger collection of schema files.
Am I missing some important restriction?
Mark
-----Original Message-----
From: Alexander Falk [mailto:al@altova.com]
Sent: Thursday, November 01, 2001 10:22 AM
To: Noah_Mendelsohn@lotus.com
Cc: ht@cogsci.ed.ac.uk; Mark Feblowitz; XML Spy Support Team;
xmlschema-dev@w3.org
Subject: RE: Schema being imported multiple times
Noah,
My concern wasn't about what we already do in Spy, which - I agree with
you - is totally conforming to the specs.
The suggestion from Mark was to allow different development-time and
runtime mechanisms for importing schema components, which would allow a
user to do this:
At development time:
A.xsd
CommonTypes.xsd
B.xsd
CommonTypes.xsd
At runtime:
Umbrella.xsd
CommonTypes.xsd
A.xsd
B.xsd
In other words, have a special development-time-only import mechanism
that would allow a schema development environemnt, like XML Spy, to
fetch the schema components from CommonTypes.xsd whenever A.xsd or B.xsd
are being edited, but those would be different from the standard
xs:import that would be used at runtime by schema-aware validating
parsers, so that at runtime the CommonTypes.xsd would only be imported
once from some Umbrella.xsd schema document.
With respect to that suggestion, my comment was that we would certainly
put this on our wishlist, but would be reluctant to invent a mechanism
for Spy alone. However, if we as the XML Schema WG would come to the
conclusion that this is something to think about for Schema 1.1 or 2.0,
and there was a standard W3C-endorsed way of distinguishing between
development-time and runtime imports, then we would certainly proceed to
support this in XML Spy.
As of now, however, the burden is certainly on the implementors of
schema-aware parser's to support the currently endorsed mechanism, which
does not differentiate between development time and runtime inclusion,
and thus must support this scenario:
At development time:
A.xsd
CommonTypes.xsd
B.xsd
CommonTypes.xsd
At runtime:
Umbrella.xsd
A.xsd
CommonTypes.xsd
B.xsd
CommonTypes.xsd
And thus it is the job of other parser implementors to do what we have
done: to detect such multiple inclusions and process them correctly,
like any C/C++ or other compiler do it, too.
And you are, of course, correct in your assertion that we need to track
a URI and filename list for this purpose. If components are acidentally
the same, this is an entire different story. All we resolve, is multiple
inclusions or import that reference the same file or the same URI in
their namespace.
Best regards,
Alexander
... Alexander Falk
... President & CEO
... Altova, Inc. - The XML Spy Company
... Member of the W3C Advisory Committee
... Member of the W3C XML Schema Working Group
===================================================================
XML Spy 4.0 Suite: the original award-winning IDE, Document Editor,
XSLT Designer, Browser Plug-In, XML Schema Editor, and B2B Server
Visit www.xmlspy.com to download your free evaluation copy today!
===================================================================
The information transmitted in this message and/or as an attachment
to it is intended only for the person or entity to which it is
addressed and may contain confidential and/or privileged material.
Any review, retransmission, dissemination or other use of, or
taking of any action in reliance upon, this information by persons
or entities other than the intended recipient is prohibited. If you
received this in error, please contact the sender and delete the
material from any computer. Altova GmbH and Altova, Inc. do not
accept legal responsibility for the contents of this message. Any
views or opinions presented are solely those of the author and do
not necessarily represent those of Altova GmbH and Altova, Inc.
unless otherwise specifically stated. Thank you!
-----Original Message-----
From: Noah_Mendelsohn@lotus.com [mailto:Noah_Mendelsohn@lotus.com]
Sent: Wednesday, October 31, 2001 21:42
To: Alexander Falk
Cc: ht@cogsci.ed.ac.uk; mfeblowitz@frictionless.com; XML Spy Support
Team; xmlschema-dev@w3.org
Subject: RE: Schema being imported multiple times
Alexander Falk writes:
>> But as long as there is no standardized
>> (i.e. W3C-endorsed) way of doing this,
The schema spec requires that you not include conflicting definitions or
declarations for the same component. If you know from your runtime that
you are in fact about to open the same file you just parsed, then it's
clear you're getting the same definitions and decls (unless I'm missing
something subtle). So, I believe that the schema spec does sanction
your
using any means you can that will ensure consistent definitions and
declarations. If you keep a filename or URI list, I think you are OK.
What is not in general efficient is looking for duplicates when
importing
files or web resources that are accidently the same, I.e. ones for which
the names or URIs are different, but the contents are the same or
consistent at the component level. That you have to check the hard way,
but that is a rarer case I would think.
------------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
Lotus Development Corp. Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------------
Received on Thursday, 1 November 2001 11:08:26 UTC