<?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. -->

<xs:schema targetNamespace="urn:xbeans:jira33b"
    xmlns="urn:xbeans:jira33b"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:saml="urn:xbeans:jira_33a:SAML:1.0:assertion"
    elementFormDefault="qualified" attributeFormDefault="unqualified">

    <xs:import namespace="urn:xbeans:jira_33a:SAML:1.0:assertion"
        schemaLocation="xmlbeans_33a.xsd"/>

    <xs:complexType name="SubjectType">
        <xs:complexContent>
            <xs:extension base="saml:SubjectType">
                <xs:sequence>
                    <xs:element ref="IDPProvidedNameIdentifier"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
<!--
    <xs:element name="Subject" type="SubjectType" substitutionGroup="saml:Subject"/>
-->
    <xs:element name="IDPProvidedNameIdentifier" type="saml:NameIdentifierType"/>
</xs:schema>
