1<?xml version="1.0" encoding="UTF-8"?>
   2<!--
   3 Copyright (c) 2009 IETF Trust and the persons identified as authors
   4   of the code.  All rights reserved.
   5
   6   Redistribution and use in source and binary forms, with or without
   7   modification, are permitted provided that the following conditions
   8   are met:
   9
  10   o  Redistributions of source code must retain the above copyright
  11      notice, this list of conditions and the following disclaimer.
  12
  13   o  Redistributions in binary form must reproduce the above copyright
  14      notice, this list of conditions and the following disclaimer in
  15      the documentation and/or other materials provided with the
  16      distribution.
  17
  18   o  Neither the name of Internet Society, IETF or IETF Trust, nor the
  19      names of specific contributors, may be used to endorse or promote
  20      products derived from this software without specific prior written
  21      permission.
  22
  23   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  24   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  25   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  26   A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT
  27   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  28   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  29   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  30   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  31   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  32   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  33   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34-->
  35<schema xmlns:secDNS="urn:ietf:params:xml:ns:secDNS-1.1" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ietf:params:xml:ns:secDNS-1.1" elementFormDefault="qualified">
  36    <annotation>
  37        <documentation>
  38            Extensible Provisioning Protocol v1.0
  39            domain name extension schema
  40            for provisioning DNS security (DNSSEC) extensions.
  41        </documentation>
  42    </annotation>
  43    <!--
  44     Child elements found in EPP commands.
  45     -->
  46    <element name="create" type="secDNS:dsOrKeyType"/>
  47    <element name="update" type="secDNS:updateType"/>
  48    <!--
  49         Child elements supporting either the
  50         dsData or the keyData interface.
  51         -->
  52    <complexType name="dsOrKeyType">
  53        <sequence>
  54            <element name="maxSigLife" type="secDNS:maxSigLifeType" minOccurs="0"><annotation><documentation>NOT USED</documentation></annotation></element>
  55            <choice>
  56                <element name="dsData" type="secDNS:dsDataType" maxOccurs="unbounded"/>
  57                <element name="keyData" type="secDNS:keyDataType" maxOccurs="unbounded"><annotation><documentation>NOT USED</documentation></annotation></element>
  58            </choice>
  59        </sequence>
  60    </complexType>
  61    <!--
  62         Definition for the maximum signature lifetime (maxSigLife)
  63         -->
  64    <simpleType name="maxSigLifeType">
  65        <restriction base="int">
  66            <minInclusive value="1"/>
  67        </restriction>
  68    </simpleType>
  69    <!--
  70         Child elements of dsData used for dsData interface
  71         -->
  72    <complexType name="dsDataType">
  73        <sequence>
  74            <element name="keyTag" type="unsignedShort"/>
  75            <element name="alg" type="unsignedByte"/>
  76            <element name="digestType" type="unsignedByte"/>
  77            <element name="digest" type="hexBinary"/>
  78            <element name="keyData" type="secDNS:keyDataType" minOccurs="0"/>
  79        </sequence>
  80    </complexType>
  81    <!--
  82         Child elements of keyData used for keyData interface
  83         and optionally with dsData interface
  84         -->
  85    <complexType name="keyDataType">
  86        <sequence>
  87            <element name="flags" type="unsignedShort"/>
  88            <element name="protocol" type="unsignedByte"/>
  89            <element name="alg" type="unsignedByte"/>
  90            <element name="pubKey" type="secDNS:keyType"/>
  91        </sequence>
  92    </complexType>
  93    <!--
  94             Definition for the public key
  95             -->
  96    <simpleType name="keyType">
  97        <restriction base="base64Binary">
  98            <minLength value="1"/>
  99        </restriction>
 100    </simpleType>
 101    <!--
 102             Child elements of the <update> element.
 103             -->
 104    <complexType name="updateType">
 105        <sequence>
 106            <element name="rem" type="secDNS:remType" minOccurs="0"/>
 107            <element name="add" type="secDNS:dsOrKeyType" minOccurs="0"/>
 108            <element name="chg" type="secDNS:chgType" minOccurs="0"/>
 109        </sequence>
 110        <attribute name="urgent" type="boolean" default="false"/>
 111    </complexType>
 112    <!--
 113             Child elements of the <rem> command.
 114             -->
 115    <complexType name="remType">
 116        <choice>
 117            <element name="all" type="boolean"/>
 118            <element name="dsData" type="secDNS:dsDataType" maxOccurs="unbounded"/>
 119            <element name="keyData" type="secDNS:keyDataType" maxOccurs="unbounded"><annotation><documentation>NOT USED</documentation></annotation></element>
 120        </choice>
 121    </complexType>
 122    <!--
 123             Child elements supporting the <chg> element.
 124             -->
 125    <complexType name="chgType">
 126        <sequence>
 127            <element name="maxSigLife" type="secDNS:maxSigLifeType" minOccurs="0"><annotation><documentation>NOT USED</documentation></annotation></element>
 128        </sequence>
 129    </complexType>
 130    <!--
 131             Child response elements.
 132             -->
 133    <element name="infData" type="secDNS:dsOrKeyType"/>
 134</schema>
 135