vacuous redefinition

In June, the XML Schema WG briefly discussed cases like the
following:

   XSD1:
   <schema ...>
     <complexType name="CT">
       ...
   </schema>

   XSD2:
   <schema ...>
     <redefine schemaLocation="XSD1">
       <!--* CT in XSD2 is vacuous restriction of CT in XSD1 *-->
       <complexType name="CT">
         <restriction base="CT"/>
       </complexType>
     </redefine>
   </schema>

   XSD3:
   <schema ...>
     <import schemaLocation="XSD1"/>
     <import schemaLocation="XSD2"/>
   </schema>

Several questions arise:

(1) is this legal or not, in XML Schema 1.0?
(2) regardless of the answer to (1), SHOULD this be
     legal in XML Schema?

One position one could take is that since the CT of XSD1 and
the CT of XSD2 are as similar as one can make them (same name,
same extension), the double import really should be legal.

Another possible position is that if one wanted them to
be identical one would not have redefined CD in XSD2 -- just as
vacuous restrictions can be used to block certain substitutions
by imposing a certain structure on the type hierarchy, so
the vacuous restriction here should be allowed, and should
not be treated differently from a non-vacuous restriction.

When this came up in June, some WG members offered an analysis
of this case which led them to conclude that the example is
not legal; I never understood the details.  Can anyone expound?

Depending on what the WG decides to do, this topic might turn
into an error report on 1.0 or a requirement for 1.1, or
a no-action-needed.

-CMSMcQ

Received on Thursday, 28 August 2003 10:55:19 UTC