This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 6452 - scds extensibility
Summary: scds extensibility
Status: CLOSED FIXED
Alias: None
Product: XML Schema
Classification: Unclassified
Component: SCDS: XML Schema Component Designators (show other bugs)
Version: 1.1 only
Hardware: PC Windows XP
: P2 normal
Target Milestone: ---
Assignee: Mary Holstege
QA Contact: XML Schema comments list
URL:
Whiteboard:
Keywords: decided
Depends on:
Blocks:
 
Reported: 2009-01-19 21:14 UTC by John Arwe
Modified: 2009-04-27 15:55 UTC (History)
1 user (show)

See Also:


Attachments

Description John Arwe 2009-01-19 21:14:07 UTC
My mental parser is having a hard time with how the extensibility of accessors and axes is handled.

For example,
[19]   	Axis	   ::=   	 'schemaAttribute' '::' | 'schemaElement' '::' | 
                             ...| ExtensionAxis
[23]   	ExtensionAxis	   ::=   	QName '::'

When my code encounters the string "schemaElement::foo", how exactly does it know whether to treat schemaElement as a QName and apply the current xmlns= binding or to treat is as 'the special string' (which seems to be equivalent to saying it is really a local name with an implicit namespace == XML Schema 1.1).  The bifurcation of not using a QName for Schema-defined axes and then making all extensions use QNames seems unnecessary (albeit, more compact in the normal case perhaps).

I react pretty much the same way to accessors in general, and to the strings returned by component-kind() (4.5.1 component-kind Accessor).  It seems like they should all by QNames, with a Schema-defined namespace in the case of entities defined by the Schema wg.

FWIW, this is not an academic issue at all.  Existing specs, e.g. SML, define their own identity constraint schema components.  If it becomes necessary at some point to reconcile them with SCDS, consumers would be getting back results from component-kind(Identity‑Constraint Definition) of "identity-constraint-definition" and (presumably) component-kind(sml:Identity‑Constraint Definition) of "sml:identity-constraint-definition" - which gets one back to the same ambiguity I started with on how to distinguish what is, from the description I see here, a string, from a QName that happens to lack an explicit ns prefix.
Comment 1 David Ezell 2009-02-13 16:57:08 UTC
RESOLVED: Make a proposal along the lines of treat unprefixed axis names as in a magic (possibly null) namespace, and names in that namespace are reserved.

RESOLUTION: Ask the editor to draft a change which a) decides on a namespace for the names of component-kinds to be in b) modifies the return value of component-kind() to be expanded names in that namespace.
Comment 2 David Ezell 2009-04-24 17:57:30 UTC
On the telcon, the WG discussed the following proposal.
http://www.w3.org/XML/Group/xmlschema-current/SCD/scds-omni20090326-diff.html

And adopted it with one ammendment:
In section 4.2.1 the sentence first sentence now reads:
"The schema component axes defined in this document are considered to be names in no namespace."

This omnibus proposal is intended to close:
bug 6450
bug 6451
bug 6452
Comment 3 John Arwe 2009-04-24 19:45:04 UTC
4.2.1
from: component axes specifically enumerated in     production for Axis.
to  : component axes specifically enumerated in the production for Axis.
or
to  : component axes specifically enumerated in the Axis production.
Comment 4 Mary Holstege 2009-04-27 15:26:12 UTC
Accepted comment #3 as an editorial suggestion.  I went with the second 
alternative as I think it reads a little better.  Change will be in next draft.
If you are satisfied with this resolution, please indicate that by closing the bug.
Comment 5 John Arwe 2009-04-27 15:55:15 UTC
sounds mahvelous