﻿<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE schema  PUBLIC "-//W3C//DTD XMLSchema 200102//EN"
 "http://www.w3.org/2001/XMLSchema.dtd"
 [
  <!ATTLIST schema
     xmlns:xenc CDATA #FIXED 'http://www.w3.org/2001/04/xmlenc#'
     xmlns:ds CDATA #FIXED 'http://www.w3.org/2000/09/xmldsig#'
     xmlns:xenc11 CDATA #FIXED 'http://www.w3.org/2009/xmlenc11#'>
  <!ENTITY xenc 'http://www.w3.org/2001/04/xmlenc#'>
  <!ENTITY % p ''>
  <!ENTITY % s ''>
]>

<schema xmlns='http://www.w3.org/2001/XMLSchema' version='1.0'
        xmlns:xenc='http://www.w3.org/2001/04/xmlenc#'
        xmlns:xenc11='http://www.w3.org/2009/xmlenc11#'
        xmlns:ds='http://www.w3.org/2000/09/xmldsig#'
        targetNamespace='http://www.w3.org/2009/xmlenc11#'
        elementFormDefault='qualified'>

  <import namespace='http://www.w3.org/2000/09/xmldsig#'
          schemaLocation='http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd'/>

  <import namespace='http://www.w3.org/2001/04/xmlenc#'
          schemaLocation='http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd'/>

  <element name="ConcatKDFParams" type="xenc11:ConcatKDFParamsType"/>
  <complexType name="ConcatKDFParamsType">
    <sequence>
      <element ref="ds:DigestMethod"/>
    </sequence>
    <attribute name="AlgorithmID" type="hexBinary"/>
    <attribute name="PartyUInfo" type="hexBinary"/>
    <attribute name="PartyVInfo" type="hexBinary"/>
    <attribute name="SuppPubInfo" type="hexBinary"/>
    <attribute name="SuppPrivInfo" type="hexBinary"/>
  </complexType>

  <element name="DerivedKey" type="xenc11:DerivedKeyType"/> 
  <complexType name="DerivedKeyType">
    <sequence>
      <element ref="xenc11:KeyDerivationMethod" minOccurs="0"/>
      <element ref="xenc:ReferenceList" minOccurs="0"/>
      <element name="DerivedKeyName" type="string" minOccurs="0"/>
      <element name="MasterKeyName" type="string" minOccurs="0"/>
    </sequence>
    <attribute name="Recipient" type="string" use="optional"/>
    <attribute name="Id" type="ID" use="optional"/>
    <attribute name="Type" type="anyURI" use="optional"/>
  </complexType>
  
  <element name="KeyDerivationMethod" type="xenc11:KeyDerivationMethodType"/>
  <complexType name="KeyDerivationMethodType">
    <sequence>
      <any namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="Algorithm" type="anyURI" use="required"/>
  </complexType>

</schema>
