RE: How to derive from a mixed anyType?

> 
> Given a base type defined thus:
> 
>   <complexType name="AbstractBaseType" abstract="true" mixed="true">
>     <attribute name="id" type="ID" use="optional"/>
>   </complexType>
> 
> The intention was to define a type from which both simpleContent and
> complexContent types could be derived, which may carry an id 
> attribute.  
> 
> 1.  how does one derive an element-only type from it?  I 
> think extension
> leaves the mixed content still there.  does it require a two-step
> restriction to suppress the literal content then extension to add the
> desired element content?  What does this look like?

Yes, restrict the type by setting mixed to false:

  <xs:complexType name = "elementOnly" mixed = "false">
    <xs:complexContent>
      <xs:restriction base = "AbstractBaseType"></xs:restriction>
    </xs:complexContent>
  </xs:complexType>
 
> 2.  how does one derive a simpleContent type whose content 
> has a specified
> simpleType?  

Define the simpleContent type by a local simpleType:

  <xs:complexType name = "simpleContent">
    <xs:simpleContent>
      <xs:restriction base = "AbstractBaseType">
        <xs:simpleType>
          <xs:restriction base = "xs:string"></xs:restriction>
        </xs:simpleType>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType> 

Received on Thursday, 17 April 2003 05:06:07 UTC