<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:liberty:sb:2004-04" 
    xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" 
    xmlns:sb-ext="urn:liberty:sb:2004-04" 
    xmlns:lib="urn:liberty:iff:2003-08"
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns="urn:liberty:sb:2004-04" 
    elementFormDefault="qualified" 
    attributeFormDefault="unqualified">
    
    <!-- Author: John Kemp -->
    <!-- Last editor: $Author: steveg $ -->
    <!-- $Date: 2005/02/04 21:38:21 $ -->
    <!-- $Revision: 1.1 $ -->
    
    <xs:import 
        namespace="http://schemas.xmlsoap.org/soap/envelope/" 
        schemaLocation="http://schemas.xmlsoap.org/soap/envelope/"/>

    <xs:import 
        namespace="urn:liberty:iff:2003-08" 
        schemaLocation="liberty-idff-protocols-schema-1.2-errata-v3.0.xsd"/>
    
    <xs:include schemaLocation="liberty-idwsf-utility-v1.1.xsd"/>
    
    <xs:annotation>
        <xs:documentation>
            Liberty ID-WSF SOAP Binding Specification Extension XSD
        </xs:documentation>
        <xs:documentation> 
            The source code in this XSD file was excerpted verbatim from:
            
            Liberty ID-WSF SOAP Binding Specification
            Version 1.2
            December 2004
            
            Copyright (c) 2004 Liberty Alliance participants, see
            http://www.projectliberty.org/specs/idwsf_1_1_copyrights.php

        </xs:documentation>
    </xs:annotation>
    
    <xs:complexType name="CredentialsContextType">
        <xs:sequence>
            <xs:element ref="lib:RequestAuthnContext" minOccurs="0"/>
            <xs:element name="SecurityMechID" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID" use="optional"/>
        <xs:attribute ref="S:mustUnderstand" use="optional"/>
        <xs:attribute ref="S:actor" use="optional"/>
    </xs:complexType>

    <xs:element name="CredentialsContext" type="CredentialsContextType"/>

    <xs:complexType name="ServiceInstanceUpdateType">
        <xs:sequence>
            <xs:element name="SecurityMechID" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="Credential" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                   <xs:sequence>
                       <xs:any namespace="##any" processContents="lax"/>
                   </xs:sequence>
                   <xs:attribute name="notOnOrAfter" type="xs:dateTime" use="optional"/>
                </xs:complexType>
            </xs:element>
            <xs:element name="Endpoint" type="xs:anyURI" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID" use="optional"/>
        <xs:attribute ref="S:mustUnderstand" use="optional"/>
        <xs:attribute ref="S:actor" use="optional"/>
    </xs:complexType>
   
    <xs:element name="ServiceInstanceUpdate" type="ServiceInstanceUpdateType"/>

    <xs:complexType name="TimeoutType">
        <xs:attribute name="maxProcessingTime" type="xs:integer" use="required"/>
        <xs:attribute name="id" type="xs:ID" use="optional"/>
        <xs:attribute ref="S:mustUnderstand" use="optional"/>
        <xs:attribute ref="S:actor" use="optional"/>
    </xs:complexType>
   
    <xs:element name="Timeout" type="TimeoutType"/>

</xs:schema>

