Restricting the simpleContent of a complexType

Hello,

I'm trying to derive a new complexType by restricting the simpleContent of a 
base complexType. e.g. (assuming I have declaration and an import for the "x:" 
namespace)

  <xs:complexType name="baseType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute ref="x:lang" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="RFC1766">
   <xs:simpleContent>
    <xs:restriction base="baseType">
      <xs:simpleType>
          <xs:restriction base="xs:language"/>
        </xs:simpleType> 
        <xs:attribute ref="x:lang" use="prohibited"/>
    </xs:restriction>
   </xs:simpleContent>
  </xs:complexType>

It seemed to me this should be OK as xs:language is derived from xs:string. As 
far as I can see, this _seems_ to be acceptable to the XSV (latest release), 
Xerces Java 2 (latest release) and MSXML (probably not quite the most recent 
update), but XML Spy rejects it (complaining that xs:simpleType is unexpected 
at that location in the derived type definition). 

I'm inclined to go with the majority vote here, but I would welcome some 
reassurance that this is OK - or, indeed, a clear indication that it is broken!

Thanks very much

Pete Johnston

Received on Wednesday, 15 May 2002 12:26:33 UTC