<?xml version="1.0" encoding="UTF-8"?>
<!--
    Coral Consortium Architecture Specification version 4-0

    Note: This schema is normative.

    DISCLAIMER: THE CORAL CONSORTIUM ON BEHALF OF ITSELF AND ITS MEMBERS MAKES NO
    REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, CONCERNING THE COMPLETENESS,
    ACCURACY, OR APPLICABILITY OF ANY INFORMATION CONTAINED IN THIS SPECIFICATION.
    THE CORAL CONSORTIUM, FOR ITSELF AND THE MEMBERS, DISCLAIM ALL LIABILITY OF ANY
    KIND WHATSOEVER, EXPRESS OR IMPLIED, ARISING OR RESULTING FROM THE RELIANCE OR
    USE BY ANY PARTY OF THIS SPECIFICATION OR ANY INFORMATION CONTAINED HEREIN.

    THE CORAL CONSORTIUM ON BEHALF OF ITSELF AND ITS MEMBERS MAKES NO REPRESENTATIONS
    CONCERNING THE APPLICABILITY OF ANY PATENT, COPYRIGHT OR OTHER PROPRIETARY RIGHT
    OF A THIRD PARTY TO THIS SPECIFICATION OR ITS USE, AND THE RECEIPT OR ANY USE OF
    THIS SPECIFICATION OR ITS CONTENTS DOES NOT IN ANY WAY CREATE BY IMPLICATION,
    ESTOPPEL OR OTHERWISE, ANY LICENSE OR RIGHT TO OR UNDER ANY CORAL CONSORTIUM
    MEMBER COMPANY'S PATENT, COPYRIGHT, TRADEMARK OR TRADE SECRET RIGHTS WHICH ARE
    OR MAY BE ASSOCIATED WITH THE IDEAS, TECHNIQUES, CONCEPTS OR EXPRESSIONS
    CONTAINED HEREIN.

    Use of this Draft Specification is subject to the Specification Evaluation
    Agreement executed by you and the Coral Consortium Corporation.

    (c) Coral Consortium Corporation 2004-2007. All rights reserved.
-->
<xsd:schema xmlns:cca="http://www.coral-interop.org/arch/core/4-0" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  targetNamespace="http://www.coral-interop.org/arch/core/4-0" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified">
<!-- Sections/01-Introduction -->
<!-- Sections/02-Structures -->
<xsd:complexType name="system-identifier-type">
  <xsd:simpleContent>
    <xsd:extension base="xsd:anyURI">
      <xsd:attribute name="type" type="xsd:string" use="optional"/>
      <xsd:attribute name="name" type="xsd:string" use="optional"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

<xsd:element name="system-identifier" type="cca:system-identifier-type"/>
<xsd:complexType name="drm-system-identifier-type">
  <xsd:simpleContent>
    <xsd:restriction base="cca:system-identifier-type">
      <xsd:attribute name="type" type="xsd:string" fixed="drm"/>
    </xsd:restriction>
  </xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="resource-handler-identifier-type">
  <xsd:complexContent>
    <xsd:extension base="cca:system-identifier-type">
      <xsd:attribute name="connect" type="xsd:boolean" use="required"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="capability-type">
  <xsd:sequence>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="system-identifier" type="cca:system-identifier-type"/>
      <xsd:element ref="cca:principal"/>
    </xsd:choice>
    <xsd:any namespace="##other" processContents="lax" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="name" type="xsd:string"/>
  <xsd:attribute name="type" type="xsd:string"/>
</xsd:complexType>

<xsd:complexType name="sac-capability-type">
  <xsd:complexContent>
    <xsd:restriction base="cca:capability-type">
      <xsd:sequence>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:element name="system-identifier" type="cca:system-identifier-type"/>
          <xsd:element ref="cca:principal"/>
        </xsd:choice>
        <xsd:any namespace="##other" processContents="lax" minOccurs="0"
          maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string"/>
      <xsd:attribute name="type" type="xsd:string" fixed="SAC"/>
    </xsd:restriction>
  </xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="format-capability-type">
  <xsd:complexContent>
    <xsd:restriction base="cca:capability-type">
      <xsd:sequence>
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:element name="system-identifier" type="cca:system-identifier-type"/>
          <xsd:element ref="cca:principal"/>
        </xsd:choice>
        <xsd:any namespace="##other" processContents="lax" minOccurs="0"
          maxOccurs="unbounded"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string"/>
      <xsd:attribute name="type" type="xsd:string" fixed="format"/>
    </xsd:restriction>
  </xsd:complexContent>
</xsd:complexType>
<xsd:element name="relation">
  <xsd:complexType>
    <xsd:sequence>
     <xsd:element name="manager" type="cca:system-identifier-type" minOccurs="0"/>
     <xsd:any namespace="##other" processContents="lax" minOccurs="0"
       maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="type" type="xsd:string" use="optional"/>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
</xsd:element>
<xsd:complexType name="principal-type">
  <xsd:sequence>
    <xsd:element name="system-identifier" type="cca:system-identifier-type"
      minOccurs="0"/>
    <xsd:element name="name" minOccurs="0">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:any namespace="##other" processContents="lax"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:element name="manager" type="cca:system-identifier-type"
      minOccurs="0"/>
    <xsd:any namespace="##other" processContents="lax" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="primitive" type="xsd:boolean" use="optional"/>
</xsd:complexType>

<xsd:element name="principal" type="cca:principal-type"/>

<xsd:complexType name="principal-chain-type">
  <xsd:sequence>
    <xsd:element ref="cca:principal"/>
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="cca:relation"/>
      <xsd:element ref="cca:principal"/>
    </xsd:sequence>
  </xsd:sequence>
  <xsd:attribute name="valid-until" type="xsd:dateTime" use="optional"/>
</xsd:complexType>

<xsd:element name="principal-chain" type="cca:principal-chain-type"/>
<xsd:complexType name="resource-type">
  <xsd:sequence>
    <xsd:element name="system-identifier" type="cca:system-identifier-type"
      minOccurs="0"/>
    <xsd:element name="name" minOccurs="0">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:any namespace="##other" processContents="lax"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:any namespace="##other" processContents="lax" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="primitive" type="xsd:boolean" use="optional"/>
</xsd:complexType>

<xsd:element name="resource" type="cca:resource-type"/>

<xsd:complexType name="resource-chain-type">
  <xsd:sequence>
    <xsd:element ref="cca:resource"/>
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="cca:relation"/>
      <xsd:element ref="cca:resource"/>
    </xsd:sequence>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="resource-chain"/>

<xsd:element name="resource-chain-visible" type="cca:resource-chain-type"
  substitutionGroup="cca:resource-chain"/>

<xsd:element name="resource-chain-opaque" substitutionGroup="cca:resource-chain">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="opaque-chain" type="xsd:hexBinary"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:complexType name="usage-model-type">
  <xsd:sequence>
    <xsd:element name="system-identifier"
                 type="cca:system-identifier-type" minOccurs="0"/>
    <xsd:element name="model" minOccurs="0">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:any namespace="##other" processContents="lax"/>
        </xsd:sequence>
      </xsd:complexType>
    </xsd:element>
    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
      processContents="strict"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="usage-model" type="cca:usage-model-type"/>
<xsd:complexType name="rights-token-type">
  <xsd:sequence>
    <xsd:element name="manager" type="cca:system-identifier-type"
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element ref="cca:principal-chain" minOccurs="0"/>
    <xsd:element ref="cca:resource-chain" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element ref="cca:usage-model" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:any namespace="##other" processContents="lax" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="identifier" type="xsd:anyURI" use="optional"/>
  <xsd:attribute name="valid-until" type="xsd:dateTime" use="optional"/>
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>

<xsd:element name="rights-token" type="cca:rights-token-type"/>
<xsd:complexType name="error-type">
  <xsd:sequence>
    <xsd:element name="system-identifier" type="cca:system-identifier-type"/>
    <xsd:element name="name" type="xsd:string"/>
    <xsd:element name="location" type="cca:system-identifier-type"/>
    <xsd:element name="reporter" type="cca:system-identifier-type" minOccurs="0"/>
    <xsd:element name="time" type="xsd:dateTime" minOccurs="0"/>
    <xsd:element name="severity" type="xsd:string" minOccurs="0"/>
    <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
      processContents="lax"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="error" type="cca:error-type"/>

<xsd:element name="error-descriptor">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="cca:error" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
</xsd:element>
<xsd:complexType name="policy-specifier-type">
  <xsd:sequence>
    <xsd:element name="next-validation" type="xsd:dateTime" minOccurs="0"/>
    <xsd:element name="policy-provider" type="cca:system-identifier-type"
      minOccurs="0" maxOccurs="unbounded"/>
    <xsd:any namespace="##other" processContents="lax" minOccurs="0"
      maxOccurs="unbounded"/>
  </xsd:sequence>
  <xsd:attribute name="policy-target-name" type="xsd:anyURI" use="optional"/>
</xsd:complexType>
<xsd:simpleType name="identifier-type">
  <xsd:restriction base="xsd:anyURI"/>
</xsd:simpleType>
<xsd:element name="drm-info">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="drm-system" type="cca:drm-system-identifier-type"/>
      <xsd:element ref="cca:principal-chain" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:any namespace="##other"
               processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="authentication-token">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:any minOccurs="0" maxOccurs="unbounded" namespace="##other"
        processContents="lax"/>
      <xsd:element name="valid-until" type="xsd:dateTime" minOccurs="0"/>
      <xsd:element name="count" type="xsd:positiveInteger" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="session-id" type="cca:identifier-type" use="optional"/>
  </xsd:complexType>
</xsd:element>
<xsd:complexType name="coral-request">
  <xsd:attribute name="session-id" type="cca:identifier-type" use="optional"/>
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:complexType name="coral-response">
  <xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
<xsd:element name="coral-error-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element ref="cca:error-descriptor"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:complexType name="configuration-type">
  <xsd:sequence>
    <xsd:element name="system-identifier" type="cca:system-identifier-type"
      minOccurs="0"/>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:any namespace="##other" processContents="lax"/>
      <xsd:element ref="cca:core-configuration"/>
    </xsd:choice>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="core-configuration"/>
<xsd:element name="role" substitutionGroup="cca:core-configuration"/>
<xsd:element name="all" substitutionGroup="cca:core-configuration"/>
<xsd:complexType name="event-type">
  <xsd:sequence>
    <xsd:element name="source" type="cca:system-identifier-type" minOccurs="0"/>
    <xsd:element name="sequence-number" type="xsd:nonNegativeInteger" minOccurs="0"/>
    <xsd:element name="time" type="xsd:dateTime" minOccurs="0"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="event" type="cca:event-type"/>
<xsd:element name="drm-whitelist">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="drm-system" type="cca:drm-system-identifier-type"
        minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/03-Interfaces -->
<!-- Sections/Interfaces/00-CommonInvocationBehavior -->
<!-- Sections/Interfaces/01-Authenticate -->
<xsd:element name="authenticate-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element ref="cca:authentication-token" minOccurs="1"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="authenticate-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element ref="cca:authentication-token" minOccurs="1"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/02-QueryPolicy -->
<xsd:element name="query-policy-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="policy-target-name" type="xsd:anyURI"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-policy-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="policy-specifier" type="cca:policy-specifier-type"
            maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/03-QueryCapabilities -->
 <xsd:element name="query-capabilities-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="name" type="xsd:string" minOccurs="0"
            maxOccurs="unbounded"/>
          <xsd:element name="type" type="xsd:string" minOccurs="0"
            maxOccurs="unbounded"/>
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="system-identifier" type="cca:system-identifier-type"/>
            <xsd:element ref="cca:principal-chain"/>
          </xsd:choice>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-capabilities-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="capability" type="cca:capability-type" minOccurs="0"
            maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0"
            maxOccurs="unbounded" processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/04-QueryRights -->
<xsd:element name="query-rights-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element ref="cca:rights-token" minOccurs="1" maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-rights-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element ref="cca:rights-token" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/05-QueryResourceRelations -->
<xsd:element name="query-resource-relations-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element ref="cca:resource-chain" maxOccurs="unbounded"/>
          <xsd:element name="system-identifier" 
                       type="cca:system-identifier-type"
                       minOccurs="0" maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
          processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-resource-relations-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="resource-chain" type="cca:resource-chain-type"
            maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/06-RegisterPrincipalRelations -->
<xsd:element name="register-principal-relations-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:sequence maxOccurs="unbounded">
            <xsd:element ref="cca:principal-chain"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="register-principal-relations-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element ref="cca:principal-chain"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/065-DeregisterPrincipalRelations -->
<xsd:element name="deregister-principal-relations-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:sequence maxOccurs="unbounded">
            <xsd:element ref="cca:principal-chain"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="deregister-principal-relations-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element ref="cca:principal-chain"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/07-QueryPrincipalRelations -->
<xsd:element name="query-principal-relations-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="principal-chain" type="cca:principal-chain-type"
            maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-principal-relations-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="principal-chain" type="cca:principal-chain-type"
            minOccurs="0" maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/10-RegisterRights -->
<xsd:element name="register-rights-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:sequence maxOccurs="unbounded">
            <xsd:element ref="cca:rights-token"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="register-rights-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:sequence minOccurs="0" maxOccurs="unbounded">
            <xsd:element ref="cca:rights-token"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/11-TransferRights -->
<xsd:element name="transfer-rights-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:sequence maxOccurs="unbounded">
            <xsd:element ref="cca:rights-token"/>
            <xsd:element ref="cca:drm-info" minOccurs="0"/>
          </xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="transfer-rights-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence minOccurs="0" maxOccurs="unbounded">
          <xsd:element ref="cca:rights-token" maxOccurs="unbounded"/>
          <xsd:element ref="cca:drm-info" minOccurs="0"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/12-TransferResource -->
<xsd:element name="transfer-resource-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element ref="cca:resource-chain" maxOccurs="unbounded"/>
          <xsd:element name="source">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="system-identifier"
                  type="cca:system-identifier-type" minOccurs="0"/>
                <xsd:element name="resource-format" 
                   type="cca:format-capability-type" minOccurs="0"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="destination">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="transfer-session-identifier" 
                   type="xsd:hexBinary"/>
                <xsd:element name="system-identifier"
                   type="cca:system-identifier-type" minOccurs="0"/>
                <xsd:element name="resource-format"
                   type="cca:format-capability-type" minOccurs="0"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element ref="cca:drm-info" minOccurs="0"/>
          <xsd:any namespace="##other" processContents="lax" minOccurs="0"
            maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="transfer-resource-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="destination">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="transfer-session-identifier" 
                   type="xsd:hexBinary"/>
                <xsd:element name="system-identifier" 
                   type="cca:system-identifier-type"/>
                <xsd:element name="resource-format" 
                   type="cca:format-capability-type"/>
              </xsd:sequence>
            </xsd:complexType>
          </xsd:element>
          <xsd:element ref="cca:drm-info" minOccurs="0"/>
          <xsd:any namespace="##other" processContents="lax" minOccurs="0"
            maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/13-ConnectSourceAndSink -->
<xsd:element name="connect-source-and-sink-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier"
            type="xsd:hexBinary"/>
          <xsd:element name="capability" type="cca:sac-capability-type"
            minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="nonce" type="xsd:hexBinary"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="connect-source-and-sink-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier"
            type="xsd:hexBinary"/>
          <xsd:element name="capability" type="cca:sac-capability-type"
            minOccurs="0"/>
          <xsd:element name="nonce" type="xsd:hexBinary"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/14-ExportResource -->
<xsd:element name="export-resource-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier" type="xsd:hexBinary"/>
          <xsd:element ref="cca:resource-chain" maxOccurs="unbounded"/>
          <xsd:element name="capability" type="cca:format-capability-type"
            maxOccurs="unbounded"/>
          <xsd:element name="sink" type="cca:resource-handler-identifier-type"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="export-resource-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/15-TransformResource -->
<xsd:element name="transform-resource-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier" type="xsd:hexBinary"/>
          <xsd:element ref="cca:resource-chain" maxOccurs="unbounded"/>
          <xsd:element name="capability" type="cca:format-capability-type"
            maxOccurs="unbounded"/>
          <xsd:element name="source" type="cca:resource-handler-identifier-type"/>
          <xsd:element name="sink" type="cca:resource-handler-identifier-type"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="transform-resource-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/16-ImportResource -->
<xsd:element name="import-resource-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier" type="xsd:hexBinary"/>
          <xsd:element ref="cca:resource-chain" maxOccurs="unbounded"/>
          <xsd:element name="capability" type="cca:format-capability-type"
            maxOccurs="unbounded"/>
          <xsd:element name="system-identifier" type="cca:system-identifier-type"
            minOccurs="0"/>
          <xsd:element name="source" type="cca:resource-handler-identifier-type"/>
          <xsd:element ref="cca:drm-info" minOccurs="0"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="import-resource-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element ref="cca:drm-info" minOccurs="0"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/18-CancelResourceTransfer -->
<xsd:element name="cancel-resource-transfer-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="transfer-session-identifier" type="xsd:hexBinary"
            maxOccurs="unbounded"/>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="cancel-resource-transfer-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"
            processContents="lax"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/22-QueryConfiguration -->
<xsd:element name="query-configuration-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="configuration" 
             type="cca:configuration-type" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="query-configuration-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="configuration" 
             type="cca:configuration-type" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/23-PullEvents -->
<xsd:element name="pull-events-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="subscription-id" type="cca:subscription-id-type"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="pull-events-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
           <xsd:element name="subscription-id" type="cca:subscription-id-type"/>
           <xsd:element name="expiration" type="xsd:dateTime" minOccurs="0"/>
           <xsd:element ref="cca:event" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/24-SubscribeEvent -->
<xsd:simpleType name="delivery-method">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="none"/>
    <xsd:enumeration value="push"/>
    <xsd:enumeration value="pull"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:element name="subscribe-events-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element ref="cca:event" maxOccurs="unbounded"/>
          <xsd:element name="listener" type="cca:system-identifier-type"/>
          <xsd:element name="subscription-id" type="cca:subscription-id-type"
            minOccurs="0"/>
          <xsd:element name="method" type="cca:delivery-method"/>
          <xsd:element name="expiration" type="xsd:dateTime" minOccurs="0"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:simpleType name="subscription-id-type">
  <xsd:restriction base="cca:identifier-type"/>
</xsd:simpleType>

<xsd:element name="subscribe-events-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
          <xsd:element name="subscription-id" type="cca:subscription-id-type"/>
          <xsd:element name="expiration" type="xsd:dateTime" minOccurs="0"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Interfaces/25-PushEvents -->
<xsd:element name="push-events-request">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-request">
        <xsd:sequence>
          <xsd:element name="subscription-id" type="cca:subscription-id-type"/>
          <xsd:element ref="cca:event"   maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<xsd:element name="push-events-response">
  <xsd:complexType>
    <xsd:complexContent>
      <xsd:extension base="cca:coral-response">
        <xsd:sequence>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
</xsd:element>
<!-- Sections/04-Events -->
<!-- Sections/Events/Boilerplate -->
<!-- Sections/Events/01-ResourceTransferStatusUpdate -->
<xsd:complexType name="resource-transfer-status-event-type">
  <xsd:complexContent>
    <xsd:extension base="cca:event-type">
      <xsd:sequence>
        <xsd:element name="transfer-session-identifier" type="xsd:hexBinary"/>
        <xsd:element name="transfer-status-report"
          type="cca:transfer-status-report-type" minOccurs="1" maxOccurs="unbounded"/>
        <xsd:any namespace="##other" processContents="lax"
          minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="transfer-status-report-type">
  <xsd:sequence>
    <xsd:element name="resource-index" type="xsd:positiveInteger" minOccurs="1"/>
    <xsd:element ref="cca:transfer-status"/>
  </xsd:sequence>
</xsd:complexType>

<xsd:element name="transfer-status"/>
<xsd:element name="started" substitutionGroup="cca:transfer-status"/>
<xsd:element name="completed" substitutionGroup="cca:transfer-status"/>
<xsd:element name="transfer-error" type="cca:error-type" 
                   substitutionGroup="cca:transfer-status"/>

<xsd:element name="progress" substitutionGroup="cca:transfer-status">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="complete" type="xsd:integer"/>
      <xsd:element name="start" type="xsd:integer"/>
      <xsd:element name="end" type="xsd:integer"/>
      <xsd:element name="unit" type="xsd:string"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Events/02-ConfigurationChange -->
<xsd:complexType name="configuration-change-event-type">
  <xsd:complexContent>
    <xsd:extension base="cca:event-type">
      <xsd:sequence>
         <xsd:any namespace="##other" processContents="lax"
           minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
<!-- Sections/Events/03-RelationChange -->
<xsd:simpleType name="relation-change-type">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="register"/>
    <xsd:enumeration value="deregister"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="principal-relation-change-event-type">
  <xsd:complexContent>
    <xsd:extension base="cca:event-type">
      <xsd:sequence>
         <xsd:element ref="cca:principal-chain"/>
      </xsd:sequence>
      <xsd:attribute name="relation-change" type="cca:relation-change-type" 
                     use="optional"/>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
<!-- Sections/Events/04-UpdateRights -->
<!-- different types of updates: addition, removal or modification -->
<xsd:simpleType name="rights-token-update-type">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="added"/>
    <xsd:enumeration value="removed"/>
    <xsd:enumeration value="modified-old"/>
    <xsd:enumeration value="modified-new"/>
  </xsd:restriction>
</xsd:simpleType>

<!-- rights token extended with attribute that shows update-type -->
<xsd:complexType name="updated-rights-token-type">
  <xsd:complexContent>
    <xsd:extension base="cca:rights-token-type">
      <xsd:attribute name="update" type="cca:rights-token-update-type"
        use="optional" />
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>

<!-- event with updated rights tokens -->
<xsd:complexType name="update-rights-event-type">
  <xsd:complexContent>
    <xsd:extension base="cca:event-type">
      <xsd:sequence>
          <xsd:element name="rights-token" type="cca:updated-rights-token-type"
            minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>
<!-- Sections/05-Roles -->
<!-- Sections/Roles/00-CommonRoleBehavior -->
<!-- Sections/Roles/01-RightsRegistry -->
<xsd:element name="rights-registry-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="rights-token-timeout" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/02-RightsInstantiator -->
<xsd:element name="rights-instantiator-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="cca:drm-whitelist"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/03-PrincipalManager -->
<xsd:element name="principal-manager-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="principal-declaration" type="cca:managed-principal-type"
        maxOccurs="unbounded"/>
      <xsd:element ref="cca:principal-relation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="relation-instantiation-timeout" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:simpleType name="principal-alias-type">
  <xsd:restriction base="xsd:string"/>
</xsd:simpleType>

<xsd:complexType name="managed-principal-type">
  <xsd:sequence>
    <xsd:element name="namespace" type="cca:system-identifier-type"
      minOccurs="0"/>
    <xsd:element name="label" type="xsd:string" minOccurs="0"/>
  </xsd:sequence>
  <xsd:attribute name="alias" type="cca:principal-alias-type" use="required"/>
  <xsd:attribute name="authority" type="xsd:boolean" use="optional"/>
</xsd:complexType>
<xsd:element name="principal-relation">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="from" type="cca:principal-alias-type"/>
      <xsd:element name="to" type="cca:principal-alias-type"/>
      <xsd:element ref="cca:relation" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="cca:principal-relation-restriction" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="principal-relation-restriction"/>
<xsd:element name="relation-cardinality"
  substitutionGroup="cca:principal-relation-restriction">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="out-degree" type="xsd:double"/>
      <xsd:element name="in-degree" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Frequency with which the 'to' principal may change; computed by the
     principal manager for the 'from' principal. -->
<xsd:element name="out-change-frequency"
  substitutionGroup="cca:principal-relation-restriction">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="number" type="xsd:double"/>
      <xsd:element name="time" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<!-- Frequency with which the 'from' principal may change; computed by the
     principal manager for the 'to' principal. -->
<xsd:element name="in-change-frequency"
  substitutionGroup="cca:principal-relation-restriction">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="number" type="xsd:double"/>
      <xsd:element name="time" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<!-- Frequency with which both the 'from' and 'to' principals may change;
     computed by the principal manager for the 'from' principal. -->
<xsd:element name="relation-change-frequency"
  substitutionGroup="cca:principal-relation-restriction">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="number" type="xsd:double"/>
      <xsd:element name="time" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<xsd:element name="relation-validity-period"
  substitutionGroup="cca:principal-relation-restriction">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="period" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/04-Client -->
<!-- Sections/Roles/05-PrincipalRelationAgent -->
<!-- Sections/Roles/06-RightsMediator -->
<xsd:element name="rights-mediator-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="rights-token-timeout" type="xsd:duration"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/07-ResourceMediator -->
<!-- Sections/Roles/08-ResourceExporter -->
<!-- Sections/Roles/09-ResourceTransformer -->
<!-- Sections/Roles/10-ResourceImporter -->
<!-- Sections/Roles/12-ResourceMapper -->
<!-- Sections/Roles/13-PolicySource -->
<!-- Sections/Roles/14-PrincipalRelationInstantiator -->
<xsd:element name="principal-relation-instantiator-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element ref="cca:drm-whitelist"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/15-AuthenticationInquirer -->
<xsd:element name="authentication-inquirer-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="local-credential-timeout" type="xsd:duration" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/16-Authenticator -->
<xsd:element name="authenticator-policy">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="authentication-validity-period" type="xsd:duration"
        minOccurs="0"/>
      <xsd:element name="authentication-count" type="xsd:double" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>
<!-- Sections/Roles/17-ConfigurationProvider -->
<!-- Sections/06-Nodes -->
<!-- Sections/07-Glossary -->
<!-- Sections/08-References -->
<!-- Sections/A-Errors -->
<!-- Sections/B-Schema -->
<!-- Sections/C-ToDo -->
<!-- Sections/Z-EOS -->

  <!-- This element is used to validate the XML examples -->
  <xsd:element name="coral-examples">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:any namespace="http://www.coral-interop.org/arch/core/4-0" 
          processContents="strict" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
