Structures, Datatypes spec not consistent on simpleType final values

Question: Can a simpleType's "final" attribute have the value
"extension"?  For example:

    <simpleType name="foo" final="extension">
       ...
    </simpleType>

The information on this topic differs between the structure's spec and
the datatype's spec (the former says it is a valid value, the later says
it isn't).

Here's what it says in section 3.14.1 of the structure's spec:

"... the explicit values extension, restriction, list and union prevent
further derivations by extension (to yield a complex type) and
restriction (to yield a simple type) and use in constructing lists and
unions respectively."

And yet later, in section 3.14.2 it says:

<simpleType
   final = (#all | (list | union | restriction))

Note that this says nothing about an extension value.

Later on, in the same section we find:

{final}    As for the {prohibited substitutions} property 
           of complex type definitions, but using the final 
           and finalDefault [attributes] in place of the 
           block and blockDefault [attributes] and with 
           the relevant set being 
           {extension, restriction, list, union}

So, at one point in the structure's spec it says extension is a legal
value for final, at another point it says that it's not legal, and then
at a third point it's back to saying that it is legal.

Now, if we turn to the datatype's spec, here's what it says:

<simpleType 
  id = ID 
  final = #all | List of (restriction, list, union) 

This says that there is no extension value for final.

Okay, I'm confused.  What's the answer - is extension a legal value for
the simpleType's final attribute?  /Roger

Received on Saturday, 9 June 2001 09:17:39 UTC