<?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.
 */
-->

<schema targetNamespace="urn:xbeans:jira_33a:SAML:1.0:assertion" 
xmlns:saml="urn:xbeans:jira_33a:SAML:1.0:assertion"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
attributeFormDefault="unqualified" version="1.1">

	<element name="Subject" type="saml:SubjectType"/>
	<complexType name="SubjectType">
		<choice>
			<sequence>
				<element ref="saml:NameIdentifier"/>
				<element ref="saml:SubjectConfirmation" minOccurs="0"/>
			</sequence>
			<element ref="saml:SubjectConfirmation"/>
		</choice>
	</complexType>
	<element name="NameIdentifier" type="saml:NameIdentifierType"/>
	<complexType name="NameIdentifierType">
		<simpleContent>
			<extension base="string">
				<attribute name="NameQualifier" type="string" use="optional"/>
				<attribute name="Format" type="anyURI" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<element name="SubjectConfirmation" type="saml:SubjectConfirmationType"/>
	<complexType name="SubjectConfirmationType">
		<sequence>
			<element ref="saml:ConfirmationMethod" maxOccurs="unbounded"/>
			<element ref="saml:SubjectConfirmationData" minOccurs="0"/>
<!--			<element ref="ds:KeyInfo" minOccurs="0"/> -->
		</sequence>
	</complexType>
	<element name="SubjectConfirmationData" type="anyType"/>
	<element name="ConfirmationMethod" type="anyURI"/>
</schema>
