Re: XSD 1.1 Proposal: Naming wildcard extension sites

Hi Boris,

Thank you very much for you feedback on the proposal.

I agree that substitutionGroups have a number of the desired properties. 
However, in addition to the important point you raised, they fall short in a 
number of other areas, for example:

- SubstitutionGroups tends not to be what people use for marking 
extensibility points for this use-case.  (This is not strictly an XSD issue, 
but it needs to be considered.  In some respects its the least important 
issue, and in other respects its the most important issue!)

- There's no control over cardinality with substitionGroups.  For example, 
your extensibility point in the core schema would be something like:

    <xs:element ref="MyAbstractExtensibilitySubtitutionGroupBase"
            minOccurs="0" maxOccurs="unbounded"/>

and an example in an extension schema would be:

    <xs:element name="MyExtension"
        substitutionGroup="core:MyAbstractExtensibilitySubtitutionGroupBase"/>

but there's no scope for including minOccurs and maxOccurs here, which loses 
a vital bit of control.

- SubstitutionGroups have no equivalent for attributes, and as far as 
possible they should be treated equivalent to elements.

- SubstitutionGroups have no equivalent to processContents="lax/skip" etc.

- There's no control over the namespaces that extensions can be in, possibly 
resulting in more UPAC issues than is desired.

- With the substitutionGroup method, a single extension can not be inserted 
into multiple, differently named extension sites.

So as you can see, the proposal has numerous advantages over substitution 
groups in this usage.

Thanks again,

Pete.
--
=============================================
Pete Cordell
Tech-Know-Ware Ltd
for XML to C++ data binding visit
http://www.tech-know-ware.com/lmx/
http://www.codalogic.com/lmx/
=============================================

----- Original Message ----- 
From: "Boris Kolpackov" <boris@kolpackov.net>
To: "Pete Cordell" <petexmldev@tech-know-ware.com>
Cc: <xmlschema-dev@w3.org>
Sent: Sunday, March 11, 2007 9:07 PM
Subject: Re: XSD 1.1 Proposal: Naming wildcard extension sites

You can already do pretty much the same thing with substitution
groups. The only difference is that you will need to decide
whether your extension is going to be of simple or complex type.
But that can be easily overcome by providing two "extension points":
one with anyType and the other with anySimpleType.


-boris

--
Boris Kolpackov
Code Synthesis Tools CC
http://www.codesynthesis.com
Open-Source, Cross-Platform C++ XML Data Binding

Received on Monday, 12 March 2007 09:12:59 UTC