# zxid/sg/liberty-idwsf-idp-v1.0.sg
# Slightly edited, 3.6.2007, Sampo Kellomaki (sampo@iki.fi)
# $Id: liberty-idwsf-idp-v1.0.sg,v 1.3 2007-06-19 15:17:04 sampo Exp $

target(idp, urn:liberty:idp:2006-12)

import(lu, urn:liberty:util:2006-08, liberty-idwsf-utility-v2.0.xsd)
import(sa, urn:oasis:names:tc:SAML:2.0:assertion, http://docs.oasis-open.org/security/saml/v2.0/saml-schema-assertion-2.0.xsd)
import(sp, urn:oasis:names:tc:SAML:2.0:protocol, http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd)

ProviderInfo	 -> %idp:ProviderInfoType
%ProviderInfoType:
  @providerID	 -> %xs:anyURI
  @name?	 -> %xs:string
  ;

AuthnContextRestriction	 -> %idp:AuthnContextRestrictionType
%AuthnContextRestrictionType:	 base(sa:ConditionsAbstractType)
  sa:AuthnContext+
  ;

SubjectRestriction	 -> %idp:SubjectRestrictionType
%SubjectRestrictionType:	 base(sa:ConditionsAbstractType)
  sa:Subject+
  ;

%RequestAbstractType: ;

%ResponseAbstractType:
  lu:Status
  ;

GetAssertion	 -> %idp:GetAssertionType
%GetAssertionType:	 base(idp:RequestAbstractType)
  sp:AuthnRequest+
  @purpose	 -> %xs:anyURI
  ;

GetAssertionResponse	 -> %idp:GetAssertionResponseType
%GetAssertionResponseType:	 base(idp:ResponseAbstractType)
  idp:GetAssertionResponseItem*
  ;

GetAssertionResponseItem	 -> %idp:GetAssertionResponseItemType
%GetAssertionResponseItemType:
  idp:AssertionItem*
  @ref	 -> %xs:string
  @id?	 -> %xs:anyURI
  @any
  ;

AssertionItem	 -> %idp:AssertionItemType
%AssertionItemType:
  idp:MEDInfo
  sa:Assertion*
  @created?	 -> %xs:boolean
  @id?	 -> %xs:anyURI
  @any
  ;

MEDInfo	 -> %idp:MEDInfoType
%MEDInfoType:
  sa:NameID+
  sa:AttributeStatement*
  ;

GetProviderInfo	 -> %idp:GetProviderInfoType
%GetProviderInfoType:	base(idp:RequestAbstractType)
  idp:ProviderID*
  @all?	 -> %xs:boolean
  ;

ProviderID -> %xs:anyURI

GetProviderInfoResponse	 -> %idp:GetProviderInfoResponseType
%GetProviderInfoResponseType:	base(idp:ResponseAbstractType)
  idp:ProviderInfo*
  ;

CreatedStatus -> %idp:CreatedStatusType
%CreatedStatusType:	base(idp:RequestAbstractType)
  idp:CreatedStatusItem*
  ;

CreatedStatusItem -> %idp:CreatedStatusItemType
%CreatedStatusItemType:
  @ref -> %xs:anyURI
  @used -> %xs:boolean
  @firstUsed? -> %xs:dateTime
  ;

CreatedStatusResponse -> %idp:CreatedStatusResponseType
%CreatedStatusResponseType:	base(idp:ResponseAbstractType)
  ;

#EOF
