- From: C. M. Sperberg-McQueen <cmsmcq@blackmesatech.com>
- Date: Thu, 10 Oct 2013 18:12:54 -0600
- To: George Cristian Bina <george@oxygenxml.com>
- Cc: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>, Michael Kay <mike@saxonica.com>, xmlschema-dev@w3.org
On Oct 10, 2013, at 2:19 AM, George Cristian Bina wrote:
> Thanks Mike for this suggestion!
>
> We will implement this algorithm in oXygen:
>
> if (there are vc:minVersion or vc:maxVersion attributes on the schema root element) then {
> if (version 1.1 is accepted)
> then (use XML Schema version 1.1)
> else if (version 1.0 is accepted)
> then (use XML Schema version 1.0)
> else (throw unsupported schema version error)
> } else (use the default XML Schema version specified in oXygen options)
I wouldn't do it that way. A specification of vc:minVersion says that
1.0 is the lowest version number required to process the element in
question and its descendants; that's true for a 1.0 schema document
but not, in general, for a 1.1 schema schema document.
In other words, vc:minVersion="1.0" allows a 1.1 processor to handle
the document, but it doesn't forbid a 1.0 processor from handling it. So
it implicitly suggests that the schema document so marked is a 1.0
document, not a 1.1 document.
If a schema author wants to ensure that ONLY a 1.0 processor will
handle the schema, they can use maxVersion=n, for any n greater than
1.0.
> It is unfortunate that, as Andreas mentioned, the maxVersion is exclusive.
In a schema document that provides several versions of a
declaration, the goal is to provide semantics for the vc:* attributes
that allow a schema author to be sure that every processor will
find exactly one declaration:
<xs:element name="E" type="Te-1.0"
vc:minVersion="1.0" vc:maxVersion="1.1"/>
<xs:element name="E" type="Te-1.1"
vc:minVersion="1.1" vc:maxVersion="1.2"/>
<xs:element name="E" type="Te-1.2"
vc:minVersion="1.2" vc:maxVersion="1.21"/>
<xs:element name="E" type="Te-2.0"
vc:minVersion="1.21" vc:maxVersion="2.0"/>
<xs:element name="E" type="Te-1.2"
vc:minVersion="2.0"/>
This ensures that a processor which has support for any version
whose number is 1.0 or higher will find exactly one declaration
to read.
> ...
>
> and as you can see people will easily get confused about the maxVersion="1.1" in the XML Schema 1.0 documents.
> This also makes difficult to specify an XML Schema 1.1 only document, because what shall be used for maxVersion? 1.2, 2, 2.0, 1.1.1?
For a 1.1 document, I would not use maxVersion; I'd use minVersion="1.1".
--
****************************************************************
* C. M. Sperberg-McQueen, Black Mesa Technologies LLC
* http://www.blackmesatech.com
* http://cmsmcq.com/mib
* http://balisage.net
****************************************************************
Received on Friday, 11 October 2013 00:13:19 UTC