<?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/contentType/Named"
    targetNamespace="http://xbean/scomp/contentType/Named"
    >

     <xsd:complexType name="elementT">
                <xsd:sequence>
                    <xsd:element name="child1" type="xsd:integer"/>
                    <xsd:element name="child2" type="xsd:integer"/>
                    <xsd:element name="child3" type="xsd:integer"/>
                </xsd:sequence>
            </xsd:complexType>

    <xsd:complexType mixed="true" name="mixedT">
                <xsd:sequence>
                    <xsd:element name="child1" type="xsd:integer"/>
                    <xsd:element name="child2" type="xsd:integer"/>
                    <xsd:element name="child3" type="xsd:integer"/>
                </xsd:sequence>
            </xsd:complexType>

      <xsd:element name="NamedElt" type="elementT"/>
    <xsd:element name="NamedMixedElt" type="mixedT"/>



</xsd:schema>