<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->

<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>