<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://xbean/scomp/derivation/ElementRestriction"
    targetNamespace="http://xbean/scomp/derivation/ElementRestriction"
    >

   <xsd:simpleType name="uniontype">
     <xsd:union memberTypes="xsd:integer xsd:decimal xsd:string xsd:double"/>
   </xsd:simpleType>

   <!--Walmsley p.320-->
    <xsd:complexType name="baseT">
        <xsd:sequence>
            <xsd:element name="a" maxOccurs="3"/>
            <xsd:element name="b" fixed="myval"/>
            <xsd:element name="c" type="xsd:string"/>
            <xsd:element name="d" type="uniontype"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="RestrictedEltT">
        <xsd:complexContent>
            <xsd:restriction base="baseT">
                <xsd:sequence>
                    <xsd:element name="a" maxOccurs="2"/>
                    <xsd:element name="b" fixed="myval"/>
                    <xsd:element name="c" type="xsd:token"/>
                    <xsd:element name="d" type="xsd:integer"/>
                </xsd:sequence>
            </xsd:restriction>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:element name="Element" type="RestrictedEltT"/>

</xsd:schema>

