<?xml version="1.0" encoding="UTF-8"?>

<!--
    Document   : symkeyRequest.xsd
    Created on : December 24, 2007, 4:46 PM
    Author     : Arshad Noor
    Verstion   : 2.1
    Description: Document is the XML Schema Definition (XSD) for the
                 SOAP-Body contents of a request for a SymkeyRequest.
                 The SOAP message itself is secured with a Web Services 
                 Security (WSS) Header containing a digital signature
                 which provides the service provider with the information 
                 it needs about the requestor.  The Global Key ID (GlobalKeyID)
                 tells the service provider the symmetric key the client
                 needs.  The optional KeyClasses allows the requestor to
                 request multiple symmetric keys of different KeyClass
                 values for applications.
                 
    Changes since 1.0:
     
    01) Added the optional KeyClasses element to specify one or more
        KeyClass elements within it.  If KeyClasses is not specified
        in the request, the SKS server will return a symmetric key 
        of some default KeyClass.  
                 
        
    Created on : December 24, 2007, 4:46 PM
    Author     : Arshad Noor
    Verstion   : 1.0
-->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://docs.oasis-open.org/ekmi/2008/01"
            xmlns:ekmi="http://docs.oasis-open.org/ekmi/2008/01"
            elementFormDefault="qualified">
    <xsd:include schemaLocation="EKMICoreLibrary.xsd"/>
    
    <!--
        =============================================
        SymkeyRequest
        =============================================
     -->
     
    <xsd:element name="SymkeyRequest">
        <xsd:annotation>
            <xsd:documentation>
                This element requests a new, or an existing, symmetric 
                encryption key from an SKS server.  It contains a GlobalKeyID
                child element, which is the global key identifier (GlobalKeyID) 
                of the requested key and an optional KeyClasses element
                containing a list of KeyClass elements.  The number of
                KeyClass elements indicates the number of symmetric keys
                being requested by the client.
            </xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="GlobalKeyID" type="ekmi:GlobalKeyIDType" minOccurs="1" maxOccurs="unbounded">
                    <xsd:annotation>
                        <xsd:documentation>
                            The global key-identifier being requested.  A 
                            GlobalKeyID of 10514-0-0 is a request for a new 
                            symmetric key; all other values indicate an 
                            existing symmetric key.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
                <xsd:element name="KeyClasses" type="ekmi:KeyClassesType" minOccurs="0">
                    <xsd:annotation>
                        <xsd:documentation>
                            An optional qualifier that indicates the types of 
                            symmetric keys being requested by the client 
                            application.  KeyClasses are application-defined 
                            and site-specific.
                        </xsd:documentation>
                    </xsd:annotation>
                </xsd:element>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    
</xsd:schema>

