<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://xbean/scomp/derivation/AttributeWCExtension"
    targetNamespace="http://xbean/scomp/derivation/AttributeWCExtension"
    xmlns:base="http://xbean/scomp/namespace/AttributeWC"
    xmlns:simple="http://xbean/scomp/attribute/GlobalAttrDefault"
    attributeFormDefault="qualified"
    >

    <xsd:import namespace="http://xbean/scomp/attribute/GlobalAttrDefault"
    schemaLocation="../attribute/GlobalAttrDefault.xsd"/>

    <xsd:complexType name="BaseNoWCT">
        <xsd:complexContent>
            <xsd:extension base="simple:GlobalAttrDefaultT">
                <xsd:anyAttribute namespace="##targetNamespace" processContents="strict"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <!--processContent Restrictions
        1. strict==>lax    AnyLaxT
        2. strict==>skip   AnySkipT
        3. lax==>strict    AnyStrictT
        4. lax==>skip      OtherListSkipT
        5. skip==>strict    OtherListStrictT
        6. skip==>lax       OtherListLaxT
        -->

    <!--Resticting any w/ anything: result should be any-->
    <xsd:complexType name="AnyLaxT">
        <xsd:complexContent>
            <xsd:extension base="base:AnyStrictT">
                <xsd:anyAttribute namespace="##local" processContents="lax"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="AnySkipT">
        <xsd:complexContent>
            <xsd:extension base="base:AnyStrictT">
                <xsd:anyAttribute namespace="http://apache.org" processContents="skip"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="AnyStrictT">
        <xsd:complexContent>
            <xsd:extension base="base:AnyLaxT">
                <xsd:anyAttribute namespace="##other"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="OtherListLaxT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherSkipT">
                <xsd:anyAttribute namespace="##local" processContents="lax"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="OtherListSkipT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherLaxT">
                <xsd:anyAttribute namespace="##targetNamespace" processContents="skip"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="OtherListStrictT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherSkipT">
                <xsd:anyAttribute namespace="http://foobar
                http://xbean/scomp/attribute/GlobalAttrFixed"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <!--since targetNS of these 2 schemas is different, the effect should be ANY-->
    <xsd:complexType name="OtherOthertLaxT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherSkipT">
                <xsd:anyAttribute namespace="##other" processContents="lax"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="OtherOtherSkipT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherLaxT">
                <xsd:anyAttribute namespace="##other" processContents="skip"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="OtherOtherStrictT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherSkipT">
                <xsd:anyAttribute namespace="##other"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:complexType name="UriListLaxT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherSkipT">
                <xsd:anyAttribute namespace="##local" processContents="lax"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="UriListSkipT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherStrictT">
                <xsd:anyAttribute namespace="##targetNamespace" processContents="skip"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>

    <xsd:complexType name="UriListStrictT">
        <xsd:complexContent>
            <xsd:extension base="base:OtherStrictT">
                <xsd:anyAttribute namespace="http://xbean/scomp/attribute/GlobalAttrFixed"/>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>


    <xsd:element name="BaseNoWC" type="BaseNoWCT"/>
    <xsd:element name="AnyLax" type="AnyLaxT"/>
    <xsd:element name="AnySkip" type="AnySkipT"/>
    <xsd:element name="AnyStrict" type="AnyStrictT"/>
    <xsd:element name="OtherListLax" type="OtherListLaxT"/>
    <xsd:element name="OtherListSkip" type="OtherListSkipT"/>
    <xsd:element name="OtherListStrict" type="OtherListStrictT"/>
    <xsd:element name="OtherOtherLax" type="OtherOthertLaxT"/>
    <xsd:element name="OtherOtherSkip" type="OtherOtherSkipT"/>
    <xsd:element name="OtherOtherStrict" type="OtherOtherStrictT"/>
    <xsd:element name="UriListLax" type="UriListLaxT"/>
    <xsd:element name="UriListSkip" type="UriListSkipT"/>
    <xsd:element name="UriListStrict" type="UriListStrictT"/>


    <xsd:attribute name="testAttr"/>
</xsd:schema>