# zxid/sg/liberty-idwsf-pmm-v1.0.sg  -- Provisioned Module Manager
# Slightly edited, 3.6.2007, Sampo Kellomaki (sampo@iki.fi)
# $Id: liberty-idwsf-shps-v1.0.sg,v 1.3 2009-09-05 02:23:41 sampo Exp $

target(shps, urn:liberty:shps:2006-12)
import(lu,   urn:liberty:util:2006-08, liberty-idwsf-utility-v2.0.xsd)
import(di,   urn:liberty:disco:2006-08, liberty-idwsf-disco-svc-v2.0.xsd)
import(dp,   urn:liberty:dp:2006-12, liberty-idwsf-dp-v1.0.xsd)
import(a,    http://www.w3.org/2005/08/addressing, http://www.w3.org/2005/08/addressing/ws-addr.xsd)

ns(xenc,http://www.w3.org/2001/04/xmlenc#)
ns(ds,http://www.w3.org/2000/09/xmldsig#)

ServiceHandle	 -> %xs:anyURI
ServiceMode	 -> %xs:anyURI
ServiceStatus	 -> %xs:anyURI

InvocationContext	 -> %shps:InvocationContextType
%InvocationContextType:
  shps:InvokingProvider
  shps:InvokingPrincipal?
  di:SecurityMechID
  @any
  ;

InvokingProvider	 -> %xs:string
InvokingPrincipal	 -> %saml2:NameIDType
CallbackEPR	 -> %a:EndpointReferenceType

%RequestAbstractType:
  @any
  ;

%ResponseAbstractType:
  lu:Status
  @any
  ;

Delete	 -> %shps:DeleteType
%DeleteType:	 base(shps:RequestAbstractType)
  shps:ServiceHandle+
  ;

DeleteResponse	 -> %shps:DeleteResponseType
%DeleteResponseType:	 base(shps:ResponseAbstractType) ;

GetStatus	 -> %shps:GetStatusType
%GetStatusType:	 base(shps:RequestAbstractType)
  shps:ServiceHandle+
  ;

GetStatusResponse	 -> %shps:GetStatusResponseType
%GetStatusResponseType:	 base(shps:ResponseAbstractType)
  shps:GetStatusResponseItem+
  ;

GetStatusResponseItem	 -> %shps:GetStatusResponseItemType
%GetStatusResponseItemType:
  shps:ServiceHandle
  shps:ServiceStatus
  @any
  ;

Query	 -> %di:QueryType
QueryResponse	 -> %di:QueryResponseType

Invoke	 -> %InvokeType
%InvokeType:	 base(shps:RequestAbstractType)
  shps:InvokeItem+
  ;

InvokeItem	 -> %shps:InvokeItemType
%InvokeItemType:
  shps:ServiceHandle
  any*  ns(##other)  processContents(lax)
  @itemID	 -> %xs:string
  @any
  ;

InvokeResponse	 -> %shps:InvokeResponseType
%InvokeResponseType:	 base(shps:ResponseAbstractType)
  shps:InvokeResponseItem+
  ;

InvokeResponseItem	 -> %shps:InvokeResponseItemType
%InvokeResponseItemType:
  any*  ns(##other)  processContents(lax)
  @ref	 -> %xs:string
  ;

QueryRegistered	 -> %shps:QueryRegisteredType
%QueryRegisteredType:	 base(shps:RequestAbstractType)
  shps:ServiceHandle*
  ;

QueryRegisteredResponse	 -> %di:QueryResponseType

Register	 -> %shps:RegisterType
%RegisterType:	 base(shps:RequestAbstractType)
  a:EndpointReference+
  ;

RegisterResponse	 -> %shps:RegisterResponseType
%RegisterResponseType:	 base(shps:ResponseAbstractType)
  shps:RegisterResponseItem+
  ;

RegisterResponseItem	 -> %shps:RegisterResponseItemType
%RegisterResponseItemType:
  shps:ServiceHandle
  @ref	 -> %xs:string
  ;

SetStatus	 -> %shps:SetStatusType
%SetStatusType:	 base(shps:RequestAbstractType)
  shps:SetStatusItem+
  ;

SetStatusItem	 -> %shps:SetStatusItemType
%SetStatusItemType:
  shps:ServiceStatus
  shps:ServiceHandle+
  @itemID	 -> %xs:string
  ;

SetStatusResponse	 -> %shps:SetStatusResponseType
%SetStatusResponseType:	 base(shps:ResponseAbstractType) ;

Update	 -> %shps:UpdateType
%UpdateType:	 base(shps:RequestAbstractType)
  shps:UpdateItem+
  ;

UpdateItem	 -> %shps:UpdateItemType
%UpdateItemType:
  shps:ServiceHandle
  a:EndpointReference
  @itemID	 -> %xs:string
  ;

UpdateResponse	 -> %shps:UpdateResponseType
%UpdateResponseType:	 base(shps:ResponseAbstractType) ;

Poll	 -> %dp:PollType
PollResponse	 -> %dp:PollResponseType

ProxyInvoke	 -> %shps:ProxyInvokeType
%ProxyInvokeType:	 base(shps:RequestAbstractType)
  shps:ProxyInvokeItem+
  ;

ProxyInvokeItem	 -> %shps:ProxyInvokeItemType
%ProxyInvokeItemType:
  shps:ServiceHandle
  shps:InvocationContext
  shps:RequestHeaders?
  any*  ns(##other)  processContents(lax)
  @itemID	 -> %xs:string
  @any
  ;
RequestHeaders	 -> %xs:any

ProxyInvokeResponse	 -> %shps:ProxyInvokeResponseType
%ProxyInvokeResponseType:	 base(shps:ResponseAbstractType)
  shps:ProxyInvokeResponseItem*
  ;

ProxyInvokeResponseItem	 -> %shps:ProxyInvokeResponseItemType
%ProxyInvokeResponseItemType:
  shps:ServiceHandle
  shps:ResponseHeaders?
  any*  ns(##other)  processContents(lax)
  @ref	 -> %xs:string
  ;

ResponseHeaders	 -> %xs:any

#EOF
