Skip to main content

SSO samples and schemas

Examples

Sample Examples

SSO Validate Token RQ
<ValidateTokenRQ xmlns="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0" version="1.1.0" applicationID="App1">
    <SAMLToken>
	PHNhbWwycDpSZXNwb25zZSB4bWxuczpzYW1sMnA9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIu MDpwcm90b2NvbCIgRGVzdGluYXRpb249Imh0dHBzOi8vd3gxLmdldHRoZXJlLm5ldC9sb2dpbi9z YW1sL3Bvc3QuYWN0IiBJRD0iXzMxMGQ1MzdiNjBlNDQwMzBiNGUzZGE0OGRhYmY3NzdiIiBJc3N1 ZUluc3RhbnQ9IjIwMTItMDYtMjFUMTA6NDU6MjUuNjgwWiIgVmVyc2lvbj0iMi4wIj48c2FtbDI6 SXNzdWVyIHhtbG5zOnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9u IiBGb3JtYXQ9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIuMDpuYW1laWQtZm9ybWF0OmVudGl0 eSI+aHR0cHM6Ly9sb2dpbjIuZGV2LnNhYnJlLmNvbS88L3NhbWwyOklzc3Vlcj48c2FtbDJwOlN0 YXR1cz48c2FtbDJwOlN0YXR1c0NvZGUgVmFsdWU9InVybjpvYXNpczpuYW1lczp0YzpTQU1MOjIu MDpzdGF0dXM6U3VjY2VzcyIvPjwvc2FtbDJwOlN0YXR1cz48c2FtbDI6QXNzZXJ0aW9uIHhtbG5z OnNhbWwyPSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoyLjA6YXNzZXJ0aW9uIiBJRD0iXzZjYzQx ODRmZGYwZTRjYTU5ZDI5ZmI0MDA3YTg3Yzc5IiBJc3N1ZUluc3RhbnQ9IjIwMTItMDYtMjFUMTA6 NDU6MjUuNjgwWiIgVmVyc2lvbj0iMi4wIiB4bWxuczp4cz0iaHR0cDovL3d3dy53My5vcmcvMjAw MS9YTUxTY2hlbWEiPjxzYW1sMjpJc3N1ZXIgRm9ybWF0PSJ1cm46b2FzaXM6bmFtZXM6dGM6U0FN TDoyLjA6bmFtZWlkLWZvcm1hdDplbnRpdHkiPmh0dHBzOi8vbG9naW4yLmRldi5zYWJyZS5jb20v PC9zYW1sMjpJc3N1ZXI+PGRzOlNpZ25hdHVyZSB4bWxuczpkcz0iaHR0cDovL3d3dy53My5vcmcv MjAwMC8wOS94bWxkc2lnIyI+PGRzOlNpZ25lZEluZm8+PGRzOkNhbm9uaWNhbGl6YXRpb25NZXRo b2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMtYzE0biMiLz48 ZHM6U2lnbmF0dXJlTWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMC8wOS94 bWxkc2lnI3JzYS1zaGExIi8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNmNjNDE4NGZkZjBlNGNhNTlk MjlmYjQwMDdhODdjNzkiPjxkczpUcmFuc2Zvcm1zPjxkczpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJo dHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjZW52ZWxvcGVkLXNpZ25hdHVyZSIvPjxk czpUcmFuc2Zvcm0gQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzEwL3htbC1leGMt YzE0biMiPjxlYzpJbmNsdXNpdmVOYW1lc3BhY2VzIHhtbG5zOmVjPSJodHRwOi8vd3d3LnczLm9y Zy8yMDAxLzEwL3htbC1leGMtYzE0biMiIFByZWZpeExpc3Q9InhzIi8+PC9kczpUcmFuc2Zvcm0+ PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3Lncz Lm9yZy8yMDAwLzA5L3htbGRzaWcjc2hhMSIvPjxkczpEaWdlc3RWYWx1ZT55WDgvODAxZlJDYlQ0 QjBoeEg1bEJsMUFZVVE9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25l ZEluZm8+PGRzOlNpZ25hdHVyZVZhbHVlPmZmUHUwN1A2NkxPRXZDUWNaNXVMWFl0YTFSeWRTZU1X TEN3RGY0cEovQmdrYXJaaGp5cWlFbWVjcGluWEZQYk5jQlpzZlVHaXNONVdSOHRXclVWbWtmMDNM WFlGT1p3L0N0cUFqVUhoU2p0anJ3c05UQk90ejhjd01QRFJhNmJ0ajEvejA4NFV1NG42K0RBWU04 OTBXRTQ0ZnFnbDFwSjF2cUJTZ3luTlRxKzRaTnNOMzl4eXo3RTNZSWtuRk9kSVY4V2hQajVoVjEv d1lZenNJNXVSSkNMZEFRaVRERXhOMGRJcVliaXo1bkpBbk81VFZNWjBJWTFlRmp6c0N5R1c2WXRW eVk1ZnNWT2VZazJHN0hSL241c01EMzJEWTdZQmxKTllMY1RscUdnVGZQYXlNSXVrQVZUekowdHcy YjdKakNXWENzTkppMXhBdUxCMlFidXdWUT09PC9kczpTaWduYXR1cmVWYWx1ZT48ZHM6S2V5SW5m bz48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0aWZpY2F0ZT5NSUlEdURDQ0FxQUNDUUNyRWlvQ01q V1hHREFOQmdrcWhraUc5dzBCQVFVRkFEQ0JuVEVMTUFrR0ExVUVCaE1DVlZNeERqQU1CZ05WQkFn VEJWUmxlR0Z6TVJJd0VBWURWUVFIRXdsVGIzVjBhR3hoYTJVeEZ6QVZCZ05WQkFvVERsTmhZbkps SUVodmJHUnBibWR6TVF3d0NnWURWUVFMRXdORFNVOHhIVEFiQmdOVkJBTVRGR3h2WjJsdU1pNWta WFl1YzJGaWNtVXVZMjl0TVNRd0lnWUpLb1pJaHZjTkFRa0JGaFZ6YzI4dWMzVndjRzl5ZEVCellX SnlaUzVqYjIwd0hoY05NVEV3T1RFME1UUXhNREEyV2hjTk1UTXdPVEV6TVRReE1EQTJXakNCblRF TE1Ba0dBMVVFQmhNQ1ZWTXhEakFNQmdOVkJBZ1RCVlJsZUdGek1SSXdFQVlEVlFRSEV3bFRiM1Yw YUd4aGEyVXhGekFWQmdOVkJBb1REbE5oWW5KbElFaHZiR1JwYm1kek1Rd3dDZ1lEVlFRTEV3TkRT VTh4SFRBYkJnTlZCQU1URkd4dloybHVNaTVrWlhZdWMyRmljbVV1WTI5dE1TUXdJZ1lKS29aSWh2 Y05BUWtCRmhWemMyOHVjM1Z3Y0c5eWRFQnpZV0p5WlM1amIyMHdnZ0VpTUEwR0NTcUdTSWIzRFFF QkFRVUFBNElCRHdBd2dnRUtBb0lCQVFEVTFEeklKNWJXNUFKRzlWaTdiMjdsb2t4TkVXbjAzeUxz VlFWNmh0QXB0b2IxUHNNbU1mUUZ3UDFKTENYamprenpqbFRFRnZ5TnJ5R2NXUGc3cm1vUk45cUFS RnNMcExrSER0Ukh5UFIrdERLSVJkTThETVhSaEJsWFNGajdiNGpyQkRCYVQzTGRlNU85MXhMd1di ZHpSU0tCRFdHanhoRFdvQ3pHd29VVHJkQjVzUEFSZzZrTzZwaXdhOUp3aHlwaXlkYUVsZjRmajJG aFFWcUV5cWZjTmR0bmhUV3dETk0xSnlTVFBzZ0pwK0hPWnhSZmMycHlLVXcwSFNiNXgzZS9zSUpq MXltdFh6Z2h6aGZ0Qm9JTGd3ZjZGY25SSmtXc2Myb3RGMC9nSUhNSEd1NUtGekc0V0dRd1Z3c2VS YTVkZCtoZm05Y2cxVGhRTEx2eFdXdDVBZ01CQUFFd0RRWUpLb1pJaHZjTkFRRUZCUUFEZ2dFQkFG QzFrdE5JLzN5ZzhjNThtQ3FqZmEyQ2Z1V3FIaUcvOXhFcXMrOURqNklYRTJ0aDZhUFc5d2dQU0Q5 czQzSWs5dUFkZEVBc3lSamo3cGxEMkVlV3pKaWpaQThvTEZLWjd1dlR5MFQ3dGtzb0lDVUVxdXgx TlRrMzRTVmpoSTErT3B6aUJOUEpWeXNCMTZlZjN2bFNZaXlhbG9GT3JReW9qUUdoakJHd2UvbXhv N0g0dURhSnZQUENNK05NdEY5K0pVZWY5S1VIbTRsRDZHMFRkTk9CcHZ4WmVQNTBwZkJJUDJ5T0xz MUhkWDVWbGNxN1lDV1piOWpZNjJxNVRJdzZ6aDA4OFVSZGl1MnYrc3pJNWw4aE9HMlp6VzgzcVNQ ZmJEeHlWYnExUzdnV0F5K1hUTUNiQm0waGhHQ1hzMnZ5cmNJbGdLeStNMlp3K2llVFQrcFM5ZE09 PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWdu YXR1cmU+PHNhbWwyOlN1YmplY3Q+PHNhbWwyOk5hbWVJRCBGb3JtYXQ9InVybjpvYXNpczpuYW1l czp0YzpTQU1MOjEuMTpuYW1laWQtZm9ybWF0OnVuc3BlY2lmaWVkIj45Mjk0MTM8L3NhbWwyOk5h bWVJRD48c2FtbDI6U3ViamVjdENvbmZpcm1hdGlvbiBNZXRob2Q9InVybjpvYXNpczpuYW1lczp0 YzpTQU1MOjIuMDpjbTpiZWFyZXIiPjxzYW1sMjpTdWJqZWN0Q29uZmlybWF0aW9uRGF0YSBOb3RP bk9yQWZ0ZXI9IjIwMTItMDYtMjFUMTA6NDc6MjUuNjgwWiIgUmVjaXBpZW50PSJodHRwczovL3d3 dy5nZXR0aGVyZS5jb20iLz48L3NhbWwyOlN1YmplY3RDb25maXJtYXRpb24+PC9zYW1sMjpTdWJq ZWN0PjxzYW1sMjpDb25kaXRpb25zIE5vdEJlZm9yZT0iMjAxMi0wNi0yMVQxMDo0NToyNS42ODBa IiBOb3RPbk9yQWZ0ZXI9IjIwMTItMDYtMjFUMTA6NDY6MjUuNjgwWiI+PHNhbWwyOkF1ZGllbmNl UmVzdHJpY3Rpb24+PHNhbWwyOkF1ZGllbmNlPmh0dHBzOi8vd3d3LmdldHRoZXJlLmNvbTwvc2Ft bDI6QXVkaWVuY2U+PC9zYW1sMjpBdWRpZW5jZVJlc3RyaWN0aW9uPjwvc2FtbDI6Q29uZGl0aW9u cz48c2FtbDI6QXV0aG5TdGF0ZW1lbnQgQXV0aG5JbnN0YW50PSIyMDEyLTA2LTIxVDEwOjQ1OjI1 LjY4MFoiIFNlc3Npb25JbmRleD0iSUV2WjZQelcxT2UvK3lvSVJGUEVMU1lyQkRzPSIgU2Vzc2lv bk5vdE9uT3JBZnRlcj0iMjAxMi0wNi0yMVQxNDo0NToyNS42ODBaIj48c2FtbDI6QXV0aG5Db250 ZXh0PjxzYW1sMjpBdXRobkNvbnRleHRDbGFzc1JlZj51cm46b2FzaXM6bmFtZXM6dGM6U0FNTDoy LjA6YWM6Y2xhc3NlczpQYXNzd29yZDwvc2FtbDI6QXV0aG5Db250ZXh0Q2xhc3NSZWY+PC9zYW1s MjpBdXRobkNvbnRleHQ+PC9zYW1sMjpBdXRoblN0YXRlbWVudD48c2FtbDI6QXR0cmlidXRlU3Rh dGVtZW50PjxzYW1sMjpBdHRyaWJ1dGUgTmFtZT0idXNlcm5hbWUiPjxzYW1sMjpBdHRyaWJ1dGVW YWx1ZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNl IiB4c2k6dHlwZT0ieHM6c3RyaW5nIj45Mjk0MTM8L3NhbWwyOkF0dHJpYnV0ZVZhbHVlPjwvc2Ft bDI6QXR0cmlidXRlPjxzYW1sMjpBdHRyaWJ1dGUgTmFtZT0ic2l0ZW5hbWUiPjxzYW1sMjpBdHRy aWJ1dGVWYWx1ZSB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWlu c3RhbmNlIiB4c2k6dHlwZT0ieHM6c3RyaW5nIj5zYWJyZWluYzwvc2FtbDI6QXR0cmlidXRlVmFs dWU+PC9zYW1sMjpBdHRyaWJ1dGU+PC9zYW1sMjpBdHRyaWJ1dGVTdGF0ZW1lbnQ+PC9zYW1sMjpB c3NlcnRpb24+PC9zYW1sMnA6UmVzcG9uc2U+
	</SAMLToken>
</ValidateTokenRQ>
SSO Validate Token RS Example
<ValidateTokenRS version="1.1.0" xmlns="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0">
    <ResponseInfo isValid="true" code="0">Assertion is valid</ResponseInfo>
	<TokenInfo>
		<User username="929413">
		<Attrs>
			<Attr key="username"><Val>929413</Val></Attr>
			<Attr key="sitename"><Val>sabreinc</Val></Attr>
		</Attrs>
		</User>
		<Session id="_6cc4184fdf0e4ca59d29fb4007a87c79">
			<Valid validFrom="2012-06-21T10:45:25.680Z" validTo="2012-06-21T14:45:25.680Z"/>
			<Duration nil="true"/>
		</Session>
	</TokenInfo>
</ValidateTokenRS>
Validation Request Parameters
POST https:// #host# /ssoaas/services/SSO_ValidateTokenRQ/1.1.0/

POST data:
<ValidateTokenRQ xmlns="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0"  version="1.1.0" applicationID="#ApplicationId#"><SAMLToken>#base64 encoded saml assertion – received from sso service: response.getPayload().getAssertion(); #</SAMLToken></ValidateTokenRQ>

[no cookies]

Request Headers:
Connection: close
user: #user#
password: #password#
User-Agent: Jakarta Commons-HttpClient/3.1
Host: #host#
Content-Length: 6475
Content-Type: text/xml; charset=utf-8

Schema Examples

Env
<?xml version="1.0" encoding="UTF-8"?>
<!-- Schema for the SOAP/1.1 envelope

     This schema has been produced using W3C's SOAP Version 1.2 schema
     found at:

     http://www.w3.org/2001/06/soap-envelope

     Copyright 2001 Martin Gudgin, Developmentor.

     Changes made are the following:
     - reverted namespace to http://schemas.xmlsoap.org/soap/envelope/
     - reverted mustUnderstand to only allow 0 and 1 as lexical values
	 - made encodingStyle a global attribute 20020825

	 Further changes:

	 - removed default value from mustUnderstand attribute declaration - 20030314

     Original copyright:
     
     Copyright 2001 W3C (Massachusetts Institute of Technology,
     Institut National de Recherche en Informatique et en Automatique,
     Keio University). All Rights Reserved.
     http://www.w3.org/Consortium/Legal/

     This document is governed by the W3C Software License [1] as
     described in the FAQ [2].

     [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
     [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
-->
<xs:schema targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<!-- Envelope, header and body -->
	<xs:element name="Envelope" type="tns:Envelope"/>
	<xs:complexType name="Envelope">
		<xs:sequence>
			<xs:element ref="tns:Header" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element ref="tns:Body"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:element name="Header" type="tns:Header"/>
	<xs:complexType name="Header">
		<xs:sequence>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:element name="Body" type="tns:Body"/>
	<xs:complexType name="Body">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##any" processContents="lax">
			<xs:annotation>
				<xs:documentation>
		  Prose in the spec does not specify that attributes are allowed on the Body element
		</xs:documentation>
			</xs:annotation>
		</xs:anyAttribute>
	</xs:complexType>
	<!-- Global Attributes.  The following attributes are intended to be usable via qualified attribute names on any complex type referencing them.  -->
	<xs:attribute name="mustUnderstand">
		<xs:simpleType>
			<xs:restriction base="xs:boolean">
				<xs:pattern value="0|1"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="actor" type="xs:anyURI"/>
	<xs:simpleType name="encodingStyle">
		<xs:annotation>
			<xs:documentation>
	    'encodingStyle' indicates any canonicalization conventions followed in the contents of the containing element.  For example, the value 'http://schemas.xmlsoap.org/soap/encoding/' indicates the pattern described in SOAP specification
	  </xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:anyURI"/>
	</xs:simpleType>
	<xs:attribute name="encodingStyle" type="tns:encodingStyle"/>
	<xs:attributeGroup name="encodingStyle">
		<xs:attribute ref="tns:encodingStyle"/>
	</xs:attributeGroup>
	<xs:element name="Fault" type="tns:Fault"/>
	<xs:complexType name="Fault" final="extension">
		<xs:annotation>
			<xs:documentation>
	    Fault reporting structure
	  </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="faultcode" type="xs:QName"/>
			<xs:element name="faultstring" type="xs:string"/>
			<xs:element name="faultactor" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="detail" type="tns:detail" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="detail">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##any" processContents="lax"/>
	</xs:complexType>
</xs:schema>
Envelope
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://schemas.xmlsoap.org/soap/envelope/" 
                                   xmlns="http://www.w3.org/2001/XMLSchema" 
                                   xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/">
	<include schemaLocation="env.xsd" />
</schema>
msg header 2_0
<?xml version="1.0" encoding="UTF-8"?>
<!-- Some parsers may require explicit declaration of 'xmlns:xml="http://www.w3.org/XML/1998/namespace"'. 
     In that case, a copy of this schema augmented with the above declaration should be cached and used
     for the purpose of schema validation on ebXML messages. -->
<schema xmlns:tns="http://www.ebxml.org/namespaces/messageHeader" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ebxml.org/namespaces/messageHeader" elementFormDefault="qualified" attributeFormDefault="qualified" version="2.0c">
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
	<import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd"/>
	<import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd"/>
	<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
	<!-- MANIFEST, for use in soap:Body element -->
	<element name="Manifest">
		<complexType>
			<sequence>
				<element ref="tns:Reference" maxOccurs="unbounded"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:bodyExtension.grp"/>
		</complexType>
	</element>
	<element name="Reference">
		<complexType>
			<sequence>
				<element ref="tns:Schema" minOccurs="0" maxOccurs="unbounded"/>
				<element ref="tns:Description" minOccurs="0" maxOccurs="unbounded"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute ref="tns:id"/>
			<attribute ref="xlink:type" fixed="simple"/>
			<attribute ref="xlink:href" use="required"/>
			<attribute ref="xlink:role"/>
			<anyAttribute namespace="##other" processContents="lax"/>
		</complexType>
	</element>
	<element name="Schema">
		<complexType>
			<attribute name="location" type="anyURI" use="required"/>
			<attribute name="version" type="tns:non-empty-string"/>
		</complexType>
	</element>
	<!-- MESSAGEHEADER, for use in soap:Header element -->
	<element name="MessageHeader">
		<complexType>
			<sequence>
				<element ref="tns:From"/>
				<element ref="tns:To"/>
				<element ref="tns:CPAId"/>
				<element ref="tns:ConversationId"/>
				<element ref="tns:Service"/>
				<element ref="tns:Action"/>
				<element ref="tns:MessageData"/>
				<element ref="tns:DuplicateElimination" minOccurs="0"/>
				<element ref="tns:Description" minOccurs="0" maxOccurs="unbounded"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
		</complexType>
	</element>
	<element name="CPAId" type="tns:non-empty-string"/>
	<element name="ConversationId" type="tns:non-empty-string"/>
	<element name="Service">
		<complexType>
			<simpleContent>
				<extension base="string">
					<attribute name="type" type="tns:non-empty-string"/>
				</extension>
			</simpleContent>
		</complexType>
	</element>
	<element name="Action" type="tns:non-empty-string"/>
	<element name="MessageData">
		<complexType>
			<sequence>
				<element ref="tns:MessageId"/>
				<element ref="tns:Timestamp"/>
				<element ref="tns:RefToMessageId" minOccurs="0"/>
				<element ref="tns:TimeToLive" minOccurs="0"/>
				<element ref="tns:Timeout" minOccurs="0"/>
			</sequence>
		</complexType>
	</element>
	<element name="MessageId" type="tns:non-empty-string"/>
	<element name="Timeout" type="nonNegativeInteger"/>
	<element name="TimeToLive" type="dateTime"/>
	<element name="DuplicateElimination" type="anyType"/>
	<!-- SYNC REPLY, for use in soap:Header element -->
	<element name="SyncReply">
		<complexType>
			<sequence>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
			<attribute ref="soap:actor" use="required"/>
		</complexType>
	</element>
	<!-- MESSAGE ORDER, for use in soap:Header element -->
	<element name="MessageOrder">
		<complexType>
			<sequence>
				<element ref="tns:SequenceNumber"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
		</complexType>
	</element>
	<element name="SequenceNumber" type="tns:sequenceNumber.type"/>
	<!-- ACK REQUESTED, for use in soap:Header element -->
	<element name="AckRequested">
		<complexType>
			<sequence>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
			<attribute ref="soap:actor"/>
			<attribute name="signed" type="boolean" use="required"/>
		</complexType>
	</element>
	<!-- ACKNOWLEDGMENT, for use in soap:Header element -->
	<element name="Acknowledgment">
		<complexType>
			<sequence>
				<element ref="tns:Timestamp"/>
				<element ref="tns:RefToMessageId"/>
				<element ref="tns:From" minOccurs="0"/>
				<element ref="tns:Reference" minOccurs="0" maxOccurs="unbounded"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
			<attribute ref="soap:actor"/>
		</complexType>
	</element>
	<!-- ERROR LIST, for use in soap:Header element -->
	<element name="ErrorList">
		<complexType>
			<sequence>
				<element ref="tns:Error" maxOccurs="unbounded"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:headerExtension.grp"/>
			<attribute name="highestSeverity" type="tns:severity.type" use="required"/>
		</complexType>
	</element>
	<element name="Error">
		<complexType>
			<sequence>
				<element ref="tns:Description" minOccurs="0"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attribute ref="tns:id"/>
			<attribute name="codeContext" type="anyURI" default="urn:oasis:names:tc:ebxml-msg:service:errors"/>
			<attribute name="errorCode" type="tns:non-empty-string" use="required"/>
			<attribute name="severity" type="tns:severity.type" use="required"/>
			<attribute name="location" type="tns:non-empty-string"/>
			<anyAttribute namespace="##other" processContents="lax"/>
		</complexType>
	</element>
	<!-- STATUS RESPONSE, for use in soap:Body element -->
	<element name="StatusResponse">
		<complexType>
			<sequence>
				<element ref="tns:RefToMessageId"/>
				<element ref="tns:Timestamp" minOccurs="0"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:bodyExtension.grp"/>
			<attribute name="messageStatus" type="tns:messageStatus.type" use="required"/>
		</complexType>
	</element>
	<!-- STATUS REQUEST, for use in soap:Body element -->
	<element name="StatusRequest">
		<complexType>
			<sequence>
				<element ref="tns:RefToMessageId"/>
				<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</sequence>
			<attributeGroup ref="tns:bodyExtension.grp"/>
		</complexType>
	</element>
	<!-- COMMON TYPES -->
	<complexType name="sequenceNumber.type">
		<simpleContent>
			<extension base="nonNegativeInteger">
				<attribute name="status" type="tns:status.type" default="Continue"/>
			</extension>
		</simpleContent>
	</complexType>
	<simpleType name="status.type">
		<restriction base="NMTOKEN">
			<enumeration value="Reset"/>
			<enumeration value="Continue"/>
		</restriction>
	</simpleType>
	<simpleType name="messageStatus.type">
		<restriction base="NMTOKEN">
			<enumeration value="UnAuthorized"/>
			<enumeration value="NotRecognized"/>
			<enumeration value="Received"/>
			<enumeration value="Processed"/>
			<enumeration value="Forwarded"/>
		</restriction>
	</simpleType>
	<simpleType name="non-empty-string">
		<restriction base="string">
			<minLength value="1"/>
		</restriction>
	</simpleType>
	<simpleType name="severity.type">
		<restriction base="NMTOKEN">
			<enumeration value="Warning"/>
			<enumeration value="Error"/>
		</restriction>
	</simpleType>
	<!-- COMMON ATTRIBUTES and ATTRIBUTE GROUPS -->
	<attribute name="id" type="ID"/>
	<attribute name="version" type="tns:non-empty-string"/>
	<attributeGroup name="headerExtension.grp">
		<attribute ref="tns:id"/>
		<attribute ref="tns:version" use="required"/>
		<anyAttribute namespace="##other" processContents="lax"/>
		<!--attribute ref="soap:mustUnderstand" use="optional"/-->
	</attributeGroup>
	<attributeGroup name="bodyExtension.grp">
		<attribute ref="tns:id"/>
		<attribute ref="tns:version" use="required"/>
		<anyAttribute namespace="##other" processContents="lax"/>
	</attributeGroup>
	<!-- COMMON ELEMENTS -->
	<element name="PartyId">
		<complexType>
			<simpleContent>
				<extension base="string">
					<attribute name="type" type="tns:non-empty-string"/>
				</extension>
			</simpleContent>
		</complexType>
	</element>
	<element name="To">
		<complexType>
			<sequence>
				<element ref="tns:PartyId" maxOccurs="unbounded"/>
				<element name="Role" type="tns:non-empty-string" minOccurs="0"/>
			</sequence>
		</complexType>
	</element>
	<element name="From">
		<complexType>
			<sequence>
				<element ref="tns:PartyId" maxOccurs="unbounded"/>
				<element name="Role" type="tns:non-empty-string" minOccurs="0"/>
			</sequence>
		</complexType>
	</element>
	<element name="Description">
		<complexType>
			<simpleContent>
				<extension base="string">
					<attribute ref="xml:lang" use="required"/>
				</extension>
			</simpleContent>
		</complexType>
	</element>
	<element name="RefToMessageId" type="tns:non-empty-string"/>
	<element name="Timestamp" type="string"/>
</schema>
SSO Validate Token 1.1.0 RQ
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0"
    xmlns:tns="https://webservices.sabre.com/websvc" xmlns:eb="http://www.ebxml.org/namespaces/messageHeader"
    xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="https://webservices.sabre.com/websvc">
    <types>
        <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:import namespace="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0" schemaLocation="SSO_ValidateToken1.1.0RQRS.xsd" />
            <xsd:import namespace="http://www.ebxml.org/namespaces/messageHeader" schemaLocation="msg-header-2_0.xsd" />
            <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
            <xsd:import namespace="http://www.w3.org/1999/xlink" schemaLocation="xlink.xsd" />
            <xsd:import namespace="http://schemas.xmlsoap.org/soap/envelope/" schemaLocation="envelope.xsd" />
            <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd" />
            <xsd:import namespace="http://schemas.xmlsoap.org/ws/2002/12/secext" schemaLocation="wsse.xsd" />
        </xsd:schema>
    </types>
    <message name="SSO_ValidateTokenInput">
        <part name="header" element="eb:MessageHeader" />
        <part name="header2" element="wsse:Security" />
        <part name="body" element="xsd1:ValidateTokenRQ" />
    </message>
    <message name="SSO_ValidateTokenOutput">
        <part name="header" element="eb:MessageHeader" />
        <part name="header2" element="wsse:Security" />
        <part name="body" element="xsd1:ValidateTokenRS" />
    </message>
    <portType name="SSO_ValidateTokenPortType">
        <operation name="SSO_ValidateTokenRQ">
            <input message="tns:SSO_ValidateTokenInput" />
            <output message="tns:SSO_ValidateTokenOutput" />
        </operation>
    </portType>
    <binding name="SSO_ValidateTokenSoapBinding" type="tns:SSO_ValidateTokenPortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <operation name="SSO_ValidateTokenRQ">
            <soap:operation soapAction="OTA" />
            <input>
                <soap:header message="tns:SSO_ValidateTokenInput" part="header" use="literal" />
                <soap:header message="tns:SSO_ValidateTokenInput" part="header2" use="literal" />
                <soap:body parts="body" use="literal" />
            </input>
            <output>
                <soap:header message="tns:SSO_ValidateTokenOutput" part="header" use="literal" />
                <soap:header message="tns:SSO_ValidateTokenOutput" part="header2" use="literal" />
                <soap:body parts="body" use="literal" />
            </output>
        </operation>
    </binding>
    <service name="SSO_ValidateTokenService">
        <port name="SSO_ValidateTokenPortType" binding="tns:SSO_ValidateTokenSoapBinding">
            <soap:address location="https://webservices.sabre.com/websvc" />
        </port>
    </service>
</definitions>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <xs:include schemaLocation="ssoaasCommons1.1.0.xsd"/>

    <xs:element name="ValidateTokenRQ">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="SiteminderToken" type="SiteminderTokenType"/>
                <xs:element name="OpenAMToken" type="OpenAMTokenType"/>
                <xs:element type="xs:string" name="SAMLToken"/>
            </xs:sequence>
            <xs:attribute type="xs:string" name="version" form="unqualified"/>
            <xs:attribute type="xs:string" name="applicationID" form="unqualified"/>
        </xs:complexType>

    </xs:element>
</xs:schema>
SSO Validate Token 1.1.0 RQRS
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://webservices.sabre.com/sabreXML/sso/ssoaas/SSO_ValidateToken/1.1.0"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <xs:include schemaLocation="SSO_ValidateToken1.1.0RQ.xsd"/>
    <xs:include schemaLocation="SSO_ValidateToken1.1.0RS.xsd"/>

</xs:schema>
SSO Validate Token 1.1.0 RS
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">
    <xs:include schemaLocation="ssoaasCommons1.1.0.xsd"/>

    <xs:element name="ValidateTokenRS">
        <xs:complexType>
            <xs:sequence>
                <xs:element type="ResponseInfoType" name="ResponseInfo"/>
                <xs:element type="TokenInfoType" name="TokenInfo"/>
            </xs:sequence>
            <xs:attribute type="xs:string" name="version" form="unqualified"/>
        </xs:complexType>
    </xs:element>

</xs:schema>
Ssoaas Commons 1.1.0
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

    <!--
        for commons using cameleon-anonymous schema w/o targetNamespace
    -->

    <xs:complexType name="SiteminderTokenType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:string" name="name"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="OpenAMTokenType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:string" name="name"/>
                <xs:attribute type="xs:string" name="stickyTokenName"/>
                <xs:attribute type="xs:string" name="stickyTokenBody"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:complexType name="TokenInfoType">
        <xs:sequence>
            <xs:element type="UserType" name="User"/>
            <xs:element type="SessionType" name="Session"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="idpID"/>
        <xs:attribute type="xs:string" name="spID"/>
    </xs:complexType>

    <xs:complexType name="UserType">
        <xs:sequence>
            <xs:element type="AttrsType" name="Attrs"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="username"/>
    </xs:complexType>

    <xs:complexType name="AttrsType">
        <xs:sequence>
            <xs:element type="AttrType" name="Attr" maxOccurs="unbounded"
                        minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="AttrType">
        <xs:sequence>
            <xs:element name="Val" maxOccurs="unbounded" minOccurs="0">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
        </xs:sequence>
        <xs:attribute type="xs:string" name="key" use="optional"/>
    </xs:complexType>

    <xs:complexType name="SessionType">
        <xs:sequence>
            <xs:element type="ValidType" name="Valid" nillable="true"/>
            <xs:element type="DurationInSecondsType" name="Duration" nillable="true"/>
            <xs:element type="xs:string" name="AuthnContext"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="id"/>
    </xs:complexType>

    <xs:complexType name="ValidType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:dateTime" name="validFrom"/>
                <xs:attribute type="xs:dateTime" name="validTo"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

    <xs:simpleType name="DurationInSecondsType">
        <xs:restriction base="xs:unsignedLong">
            <xs:minInclusive value="1"/>
        </xs:restriction>
    </xs:simpleType>

    <!-- common response info type -->
    <xs:complexType name="ResponseInfoType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:string" name="isValid"/>
                <xs:attribute type="xs:string" name="code"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
</xs:schema>
wsse
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:xsse="http://schemas.xmlsoap.org/ws/2002/12/secext" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:app2="http://schemas.xmlsoap.org/ws/2002/12/secext" targetNamespace="http://schemas.xmlsoap.org/ws/2002/12/secext" elementFormDefault="qualified" attributeFormDefault="qualified">
	<element name="Security" msdata:Prefix="wsse">
		<complexType>
			<sequence>
				<element name="UsernameToken" minOccurs="0" msdata:Prefix="wsse">
					<complexType>
						<sequence>
							<element name="Username" type="xs:string" minOccurs="0" msdata:Prefix="wsse"/>
							<element name="Password" type="xs:string" minOccurs="0" msdata:Prefix="wsse"/>
							<element name="NewPassword" type="xs:string" minOccurs="0" maxOccurs="2" msdata:Prefix="wsse"/>
							<element name="Organization" type="xs:string" form="unqualified" minOccurs="0"/>
							<element name="Domain" type="xs:string" form="unqualified" minOccurs="0"/>
							<element name="Lniata" type="xs:string" form="unqualified" minOccurs="0"/>
							<element name="LockId" type="xs:string" form="unqualified" minOccurs="0"/>
						</sequence>
					</complexType>
				</element>
				<element name="SabreAth" type="xs:string" minOccurs="0" msdata:Prefix="wsse"/>
				<element name="BinarySecurityToken" type="xs:string" minOccurs="0" msdata:Prefix="wsse">
					<!--xs:complexType>
						<xs:attribute name="EncodingType" type="xs:string" use="optional"/>
						<xs:attribute name="valueType" type="xs:string" use="optional"/>						
					</xs:complexType-->
				</element>
			</sequence>
		</complexType>
	</element>
</schema>
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.w3.org/1999/xlink" elementFormDefault="qualified" attributeFormDefault="qualified">	<xsd:attribute name="type">		<xsd:simpleType>			<xsd:restriction base="xsd:NMTOKEN">				<xsd:enumeration value="simple"/>				<xsd:enumeration value="extended"/>				<xsd:enumeration value="locator"/>				<xsd:enumeration value="arc"/>				<xsd:enumeration value="resource"/>				<xsd:enumeration value="title"/>				<xsd:enumeration value="none"/>			</xsd:restriction>		</xsd:simpleType>	</xsd:attribute>	<xsd:attribute name="href" type="xsd:anyURI">
	</xsd:attribute>	<xsd:attribute name="role" type="xsd:anyURI">
	</xsd:attribute>	<xsd:attribute name="arcrole" type="xsd:anyURI">
	</xsd:attribute>	<xsd:attribute name="title" type="xsd:string">
	</xsd:attribute>	<xsd:attribute name="label" type="xsd:NMTOKEN">
	</xsd:attribute>	<xsd:attribute name="show">		<xsd:simpleType>			<xsd:restriction base="xsd:NMTOKEN">				<xsd:enumeration value="new"/>				<xsd:enumeration value="replace"/>				<xsd:enumeration value="embed"/>				<xsd:enumeration value="other"/>				<xsd:enumeration value="none"/>			</xsd:restriction>		</xsd:simpleType>	</xsd:attribute></xsd:schema>
xml
<?xml version="1.0"?>
<!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN" "http://webservices.sabre.com/wsdl/sabreXML1.0.00/usg/XMLSchema.dtd">
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace" xmlns:xs="http://www.w3.org/2001/XMLSchema" xml:lang="en">
	<xs:annotation>
		<xs:documentation>
   See http://www.w3.org/XML/1998/namespace.html and
   http://www.w3.org/TR/REC-xml for information about this namespace.
  </xs:documentation>
	</xs:annotation>
	<xs:annotation>
		<xs:documentation>This schema defines attributes and an attribute group
        suitable for use by
        schemas wishing to allow xml:base, xml:lang or xml:space attributes
        on elements they define.

        To enable this, such a schema must import this schema
        for the XML namespace, e.g. as follows:
        &lt;schema . . .>
         . . .
         &lt;import namespace="http://www.w3.org/XML/1998/namespace"
                    schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>

        Subsequently, qualified reference to any of the attributes
        or the group defined below will have the desired effect, e.g.

        &lt;type . . .>
         . . .
         &lt;attributeGroup ref="xml:specialAttrs"/>
 
         will define a type which will schema-validate an instance
         element with any of those attributes</xs:documentation>
	</xs:annotation>
	<xs:annotation>
		<xs:documentation>In keeping with the XML Schema WG's standard versioning
   policy, this schema document will persist at
   http://www.w3.org/2001/03/xml.xsd.
   At the date of issue it can also be found at
   http://www.w3.org/2001/xml.xsd.
   The schema document at that URI may however change in the future,
   in order to remain compatible with the latest version of XML Schema
   itself.  In other words, if the XML Schema namespace changes, the version
   of this document at
   http://www.w3.org/2001/xml.xsd will change
   accordingly; the version at
   http://www.w3.org/2001/03/xml.xsd will not change.
  </xs:documentation>
	</xs:annotation>
	<xs:attribute name="lang" type="xs:language">
		<xs:annotation>
			<xs:documentation>In due course, we should install the relevant ISO 2- and 3-letter
         codes as the enumerated possible values . . .</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attribute name="space" default="preserve">
		<xs:simpleType>
			<xs:restriction base="xs:NCName">
				<xs:enumeration value="default"/>
				<xs:enumeration value="preserve"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="base" type="xs:anyURI">
		<xs:annotation>
			<xs:documentation>See http://www.w3.org/TR/xmlbase/ for
                     information about this attribute.</xs:documentation>
		</xs:annotation>
	</xs:attribute>
	<xs:attributeGroup name="specialAttrs">
		<xs:attribute ref="xml:base"/>
		<xs:attribute ref="xml:lang"/>
		<xs:attribute ref="xml:space"/>
	</xs:attributeGroup>
</xs:schema>
xmldsig core schema
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE schema PUBLIC "-//W3C//DTD XMLSchema 200102//EN" "http://webservices.sabre.com/wsdl/sabreXML1.0.00/usg/XMLSchema.dtd" [
	<!ATTLIST schema
	xmlns:ds CDATA #FIXED "http://www.w3.org/2000/09/xmldsig#"
>
	<!ENTITY dsig 'http://www.w3.org/2000/09/xmldsig#'>
	<!ENTITY % p ''>
	<!ENTITY % s ''>
]>
<!-- Schema for XML Signatures
    http://www.w3.org/2000/09/xmldsig#
    $Revision: 1.1 $ on $Date: 2002/02/08 20:32:26 $ by $Author: reagle $

    Copyright 2001 The Internet Society and W3C (Massachusetts Institute
    of Technology, Institut National de Recherche en Informatique et en
    Automatique, Keio University). All Rights Reserved.
    http://www.w3.org/Consortium/Legal/

    This document is governed by the W3C Software License [1] as described
    in the FAQ [2].

    [1] http://www.w3.org/Consortium/Legal/copyright-software-19980720
    [2] http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
-->
<schema targetNamespace="http://www.w3.org/2000/09/xmldsig#" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" version="0.1">
	<!-- Basic Types Defined for Signatures -->
	<simpleType name="CryptoBinary">
		<restriction base="base64Binary"/>
	</simpleType>
	<!-- Start Signature -->
	<element name="Signature" type="ds:SignatureType"/>
	<complexType name="SignatureType">
		<sequence>
			<element ref="ds:SignedInfo"/>
			<element ref="ds:SignatureValue"/>
			<element ref="ds:KeyInfo" minOccurs="0"/>
			<element ref="ds:Object" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="SignatureValue" type="ds:SignatureValueType"/>
	<complexType name="SignatureValueType">
		<simpleContent>
			<extension base="base64Binary">
				<attribute name="Id" type="ID" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- Start SignedInfo -->
	<element name="SignedInfo" type="ds:SignedInfoType"/>
	<complexType name="SignedInfoType">
		<sequence>
			<element ref="ds:CanonicalizationMethod"/>
			<element ref="ds:SignatureMethod"/>
			<element ref="ds:Reference" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="CanonicalizationMethod" type="ds:CanonicalizationMethodType"/>
	<complexType name="CanonicalizationMethodType" mixed="true">
		<sequence>
			<any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
			<!-- (0,unbounded) elements from (1,1) namespace -->
		</sequence>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<element name="SignatureMethod" type="ds:SignatureMethodType"/>
	<complexType name="SignatureMethodType" mixed="true">
		<sequence>
			<element name="HMACOutputLength" type="ds:HMACOutputLengthType" minOccurs="0"/>
			<any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			<!-- (0,unbounded) elements from (1,1) external namespace -->
		</sequence>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<!-- Start Reference -->
	<element name="Reference" type="ds:ReferenceType"/>
	<complexType name="ReferenceType">
		<sequence>
			<element ref="ds:Transforms" minOccurs="0"/>
			<element ref="ds:DigestMethod"/>
			<element ref="ds:DigestValue"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
		<attribute name="URI" type="anyURI" use="optional"/>
		<attribute name="Type" type="anyURI" use="optional"/>
	</complexType>
	<element name="Transforms" type="ds:TransformsType"/>
	<complexType name="TransformsType">
		<sequence>
			<element ref="ds:Transform" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<element name="Transform" type="ds:TransformType"/>
	<complexType name="TransformType" mixed="true">
		<choice minOccurs="0" maxOccurs="unbounded">
			<any namespace="##other" processContents="lax"/>
			<element name="XPath" type="string"/>
			<!-- (1,1) elements from (0,unbounded) namespaces -->
		</choice>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<!-- End Reference -->
	<element name="DigestMethod" type="ds:DigestMethodType"/>
	<complexType name="DigestMethodType" mixed="true">
		<sequence>
			<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Algorithm" type="anyURI" use="required"/>
	</complexType>
	<element name="DigestValue" type="ds:DigestValueType"/>
	<simpleType name="DigestValueType">
		<restriction base="base64Binary"/>
	</simpleType>
	<!-- End SignedInfo -->
	<!-- Start KeyInfo -->
	<element name="KeyInfo" type="ds:KeyInfoType"/>
	<complexType name="KeyInfoType" mixed="true">
		<choice maxOccurs="unbounded">
			<element ref="ds:KeyName"/>
			<element ref="ds:KeyValue"/>
			<element ref="ds:RetrievalMethod"/>
			<element ref="ds:X509Data"/>
			<element ref="ds:PGPData"/>
			<element ref="ds:SPKIData"/>
			<element ref="ds:MgmtData"/>
			<any namespace="##other" processContents="lax"/>
			<!-- (1,1) elements from (0,unbounded) namespaces -->
		</choice>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="KeyName" type="string"/>
	<element name="MgmtData" type="string"/>
	<element name="KeyValue" type="ds:KeyValueType"/>
	<complexType name="KeyValueType" mixed="true">
		<choice>
			<element ref="ds:DSAKeyValue"/>
			<element ref="ds:RSAKeyValue"/>
			<any namespace="##other" processContents="lax"/>
		</choice>
	</complexType>
	<element name="RetrievalMethod" type="ds:RetrievalMethodType"/>
	<complexType name="RetrievalMethodType">
		<sequence>
			<element ref="ds:Transforms" minOccurs="0"/>
		</sequence>
		<attribute name="URI" type="anyURI"/>
		<attribute name="Type" type="anyURI" use="optional"/>
	</complexType>
	<!-- Start X509Data -->
	<element name="X509Data" type="ds:X509DataType"/>
	<complexType name="X509DataType">
		<sequence maxOccurs="unbounded">
			<choice>
				<element name="X509IssuerSerial" type="ds:X509IssuerSerialType"/>
				<element name="X509SKI" type="base64Binary"/>
				<element name="X509SubjectName" type="string"/>
				<element name="X509Certificate" type="base64Binary"/>
				<element name="X509CRL" type="base64Binary"/>
				<any namespace="##other" processContents="lax"/>
			</choice>
		</sequence>
	</complexType>
	<complexType name="X509IssuerSerialType">
		<sequence>
			<element name="X509IssuerName" type="string"/>
			<element name="X509SerialNumber" type="integer"/>
		</sequence>
	</complexType>
	<!-- End X509Data -->
	<!-- Begin PGPData -->
	<element name="PGPData" type="ds:PGPDataType"/>
	<complexType name="PGPDataType">
		<sequence>
			<element name="PGPKeyID" type="base64Binary"/>
			<element name="PGPKeyPacket" type="base64Binary" minOccurs="0"/>
			<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- End PGPData -->
	<!-- Begin SPKIData -->
	<element name="SPKIData" type="ds:SPKIDataType"/>
	<complexType name="SPKIDataType">
		<sequence maxOccurs="unbounded">
			<element name="SPKISexp" type="base64Binary"/>
			<any namespace="##other" processContents="lax" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- End SPKIData -->
	<!-- End KeyInfo -->
	<!-- Start Object (Manifest, SignatureProperty) -->
	<element name="Object" type="ds:ObjectType"/>
	<complexType name="ObjectType" mixed="true">
		<sequence minOccurs="0" maxOccurs="unbounded">
			<any namespace="##any" processContents="lax"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
		<attribute name="MimeType" type="string" use="optional"/>
		<attribute name="Encoding" type="anyURI" use="optional"/>
		<!-- add a grep facet -->
	</complexType>
	<element name="Manifest" type="ds:ManifestType"/>
	<complexType name="ManifestType">
		<sequence>
			<element ref="ds:Reference" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="SignatureProperties" type="ds:SignaturePropertiesType"/>
	<complexType name="SignaturePropertiesType">
		<sequence>
			<element ref="ds:SignatureProperty" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<element name="SignatureProperty" type="ds:SignaturePropertyType"/>
	<complexType name="SignaturePropertyType" mixed="true">
		<choice maxOccurs="unbounded">
			<any namespace="##other" processContents="lax"/>
			<!-- (1,1) elements from (1,unbounded) namespaces -->
		</choice>
		<attribute name="Target" type="anyURI" use="required"/>
		<attribute name="Id" type="ID" use="optional"/>
	</complexType>
	<!-- End Object (Manifest, SignatureProperty) -->
	<!-- Start Algorithm Parameters -->
	<simpleType name="HMACOutputLengthType">
		<restriction base="integer"/>
	</simpleType>
	<!-- Start KeyValue Element-types -->
	<element name="DSAKeyValue" type="ds:DSAKeyValueType"/>
	<complexType name="DSAKeyValueType">
		<sequence>
			<sequence minOccurs="0">
				<element name="P" type="ds:CryptoBinary"/>
				<element name="Q" type="ds:CryptoBinary"/>
			</sequence>
			<element name="G" type="ds:CryptoBinary" minOccurs="0"/>
			<element name="Y" type="ds:CryptoBinary"/>
			<element name="J" type="ds:CryptoBinary" minOccurs="0"/>
			<sequence minOccurs="0">
				<element name="Seed" type="ds:CryptoBinary"/>
				<element name="PgenCounter" type="ds:CryptoBinary"/>
			</sequence>
		</sequence>
	</complexType>
	<element name="RSAKeyValue" type="ds:RSAKeyValueType"/>
	<complexType name="RSAKeyValueType">
		<sequence>
			<element name="Modulus" type="ds:CryptoBinary"/>
			<element name="Exponent" type="ds:CryptoBinary"/>
		</sequence>
	</complexType>
	<!-- End KeyValue Element-types -->
	<!-- End Signature -->
</schema>