- From: <noah_mendelsohn@us.ibm.com>
- Date: Fri, 15 Feb 2008 13:04:01 -0500
- To: public-xsd-databinding-comments@w3.org
- Cc: w3c-xml-schema-ig@w3.org
We are pleased to provide you with the XML Schema Workgroup's review of
your draft: "Basic XML Schema Patterns for Databinding Version 1.0", dated
October 31, 2007 [1]. First of all, please accept our sincere apologies
for the long delay in providing this review. We hope these comments are
still useful to you. We also note that there was some sentiment in the
schema working group that with a bit more work, we might have made the
following comments a bit shorter. I hope you will bear with our decision
to send them now, rather than to work on them further.
The XML Schema Workging group very much appreciates that the work being
done by your working group will greatly enhance the value of XML Schemas,
and we are grateful for your work on this draft. In the following, we
comment primarily about the ways in which the Schema Patterns draft
refers to the XML Schemas (XSD) Recommendations, and the ways in which it
uses the features of XSD.
Most significant concerns
-------------------------
* References to concepts and terminology from XSD need to be made more
precise. For example, section 1.3 says "A document claiming conformance
to this specification ... MUST conform to the [XML Schema 1.0
Recommendation]", but XSD provides no conformance requirements for
"documents" in general. It would be more appropriate to say that "A
document claiming conformance to this specification ... MUST be a 'schema
document' [2], as defined in [XML Schema 1.0 Recommendation], and MUST
therefore meet the "Constraints on the representation of schema components
in XML" [3] provided therein." Actually, there's a further mismatch on
infosets vs. serialization; see next point.
* 1.3 also says that a document conforming to the databinding
specification must be a well formed XML 1.0 document; XSD defines a
schema document as an Infoset with <xs:schema> as the root element. You
should make clear whether the mismatch is intentional, and if so rewrite
the text suggested above accordingly. Otherwise, you should change to
indicate that a conforming document is infact an Infoset, consistent with
XSD. That will mean changing the many references to XML 1.0 documents
that appear throughout your draft.
* Section 1.4 suggests that a conforming application "SHOULD be able to
process any valid [XML Schema 1.0] document.". First of all, there's some
question as to whether a SHOULD is appropriate in a conformance section.
Notwithstanding that, the reference to [XML Schema 1.0] documents is
again not strictly clear, since XSD talks about instances to be validated
as well as schema documents. We suggest a formal reference to 'schema
documents' [2] as in the first point above.
* Section 1.4 says that conformance requires that an implementation: "
MUST produce a data model exposing all of the [XML 1.0] element node and
attribute node content described by the originating [XML Schema 1.0]
document.", but "described by" is not a formal relation or operation
provided for in XSD. Especially in a conformance requirement, this seems
too informal.
* Schema documents vs. schemas: Following up on the point above, there are
schema documents that do not stand on their own in defining a schema
that's useful for validation. For example, if a schema document merely
defines a complext Type T as being derived by extension from type B with
attribute A, then you don't really know what the type is until you find
the base type B, and that may well be in a different schema document.
Maybe there is element content in effective type T. If there is an
element E declared of type T, then what does the requirement to "[expose]
all of the [XML 1.0] element node and attribute node content described by
the originating [XML Schema 1.0] document" mean? The problem is that it's
not really schema documents that directly call for or don't call for
content in documents to be validated. Schema documents contribute to the
construction of a schema (formally defined at [4]), which in turn contains
element declarations, etc. that can be used to require or allow content
in documents to be validated. >>It seems that some serious thought is
needed as to whether it's schema documents or schemas that would conform
to the databinding specification.<< In any case, referring to the
element or attribute content "described by a schema document" is not just
too informal; as suggested above, it's likely that you really want to
talk about the element or attribute content allowed by a schema.
Conversely, you could more clearly define a set of rules relating to
individual schema documents if that's what you really intend.
* Section 1.4 says that conformance requires that an implementation: "MUST
be able to consume any well-formed [XML 1.0] document which satisfies
local-schema validity against the originating [XML Schema 1.0] document
exposing all of the [XML 1.0] element node and attribute node content in
the data model." Again, local-schema validity is not a relation defined
on the pair {instance, schema document}, it is (presuming you indicate
which type or element declaration to start with) defined on the pair
{instance, schema}"
* Section 2: "The [XPath 2.0] expression is located from an [XML Schema
1.0] element node which may be the document element, or an element
contained inside an [XML 1.0] document such as [WSDL 2.0] description."
It's not quite clear what is meant in saying that an "[XPath 2.0]
expression is located from". Is this trying to establish the "Context
Node" for the XPath expression as being the node of the <xsd:schema>
element? If so, we recommend you say that more clearly, preferably with
hyperlinks to the pertinent parts of the XPath Recommendation. Also, the
phrase "may not" can be read as prohibiting the case where the element
note is the document node. I suspect you meant "need not". Finally, [XML
Schema 1.0] element node isn't a term that appears in the XSD
Recommendation; did you mean the "root element information item of the
schema document"?
* Sections 2.x: The phrase "An [XML 1.0] document exibits the XXXXX
pattern...." is used repeatedly in these sections and their descendents.
See comments about about need to refer to "schema documents", if that's
what's intended.
* Sections 2.x: The general form of the sections for patterns isn't
clear. Schema fragments seem to appear in blue, as do fragments of
conforming instances, yet these examples have features that are unclear.
For example, the sample for the "targetNamespace" pattern in section 2.1.1
is given as:
<xs:schema
targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/"
elementFormDefault="qualified">
<xs:element name="targetNamespace" type="xs:string" />
</xs:schema>
yet the reason for declaring an element with the name "targetNamespace"
isn't explained. It seems that all sample schemas have an element
declaration. Why? Explicitly specifying elementFormDefault is also
confusing, since it doesn't seem to have to do with the pattern. The
schema:
<xs:schema
targetNamespace="http://www.w3.org/2002/ws/databinding/examples/6/09/">
</xs:schema>
seems more appropriate for this pattern. Similar comments apply to many
of the binding patterns.
* Section 2.1.2: talks about qualified local elements, but the sample
schema contains no local elements.
* Section 2.1.6: BlockDefault. This pattern seems to imply that
substitutions and or derivations are blocked if the @blockDefault
attribute is provided, but in fact that attribute carries a value that can
selectively enable or disable blocking for any combination of extension,
restriction, and substitution. It seems unlikely that the rule of
interest is really that the attribute is present. Is that what's
intended, or did you wish to actually check for certain values of the
blockDefault. Note, in particular, that an explicit blockDefault="" has
the same semantic as leaving out the attribute entirely.
I regret that I did not have time to review the remainder of the patterns
in the draft, but I would assume that the above comments would be
representative of what would be found for other patterns.
Editorial Concern
-----------------
In addition to the concerns above, which represent the formal responses on
behalf of the Schema WG, let me make one more informal comment on my own
behalf:
The databinding draft is very long, and a lot of it is devoted to what is
ultimately boilerplate. Consider the targetNamespace pattern. It is
introduced with nearly 1/2 page of multicolor writeup, but really all it's
trying to say seems to be: This pattern requires that the schema
document have a targetNamespace attribute with an absolute URI as its
value. That could be said much more clearly and concisely. I think the
draft would be much more effective if the patterns were introduced in a
manner that was as concise and clear as possible. It's not helpful to
repeat over and over "An [XML 1.0] document exhibits....", and as noted
above, the example schema could be made shorter and clearer. Finally,
what would be most helpful for a pattern like this is to explain ">>why<<
an absolute URI"? The Schema recommendation points to the XML Namespaces
recommendation for the definition of a namespace name, and that in turn
requires a URI Reference [5], not an Absolute URI. So, it would be
useful in general if some of the boilerplate were eliminated and the
sections made much shorter and easier to read, but conversely it would be
useful to say a bit about what makes the pattern interesting. Explain
briefly if there's a reason why absolute namespace URIs are interesting,
or did you really just mean this pattern to be "a non-absent
targetNamespace is available"?
I (and we) hope these comments are useful to you in preparing future
drafts of your Recommendation. Thank you very much.
Noah Mendelsohn
for the W3C XML Schema Working Group
[1] http://www.w3.org/TR/2007/WD-xmlschema-patterns-20071031/
[2] http://www.w3.org/TR/xmlschema-1/#key-schemaDoc
[3] http://www.w3.org/TR/xmlschema-1/#gloss-src
[4] http://www.w3.org/TR/xmlschema-1/#key-schema
[5] http://www.w3.org/TR/1999/REC-xml-names-19990114/#ns-decl
--------------------------------------
Noah Mendelsohn
IBM Corporation
One Rogers Street
Cambridge, MA 02142
1-617-693-4036
--------------------------------------
Received on Friday, 15 February 2008 18:03:31 UTC