Re: Standard Extensions

Jay Daley <[email protected]>
Newsgroups gmane.ietf.provreg
Message-ID <[email protected]>
On 25/01/2012, at 1:02 PM, Jay Daley wrote:

> Then there is the big change to the core protocol I've always wanted to do:
> 
> 3.  Change the command extension mechanism to use SubstitutionGroup to give first class extensions.  

To explain this a bit better, here is some XML Schema:

  <!-- New types and elements to support substitutionGroup -->

  <complexType name="abstractCommandType" abstract="true"/>
  
  <!-- We need an element here that is the target of a substitutiongroup attribute later on -->
  <element name="abstractCommand" type="epp:abstractCommandType" />
    
  <complexType name="commandType">
    <sequence>
      <element ref="epp:abstractCommand"/>
      <element name="extension" type="epp:extAnyType"
        minOccurs="0"/>
      <element name="clTRID" type="epp:trIDStringType"
        minOccurs="0"/>      
    </sequence>
  </complexType>

  <element name="check" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>
  <element name="create" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>
  <element name="delete" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>
  <element name="info" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>
  <element name="login" substitutionGroup="epp:abstractCommand" type="epp:loginType"/>
  <element name="logout" substitutionGroup="epp:abstractCommand" />
  <element name="poll" substitutionGroup="epp:abstractCommand" type="epp:pollType"/>
  <element name="renew" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>
  <element name="transfer" substitutionGroup="epp:abstractCommand" type="epp:transferType"/>
  <element name="update" substitutionGroup="epp:abstractCommand" type="epp:readWriteType"/>

  <complexType name="readWriteType">
    <complexContent>
      <extension base="epp:abstractCommandType">
        <sequence>
          <any namespace="##other" />
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  
  <complexType name="loginType">
    <complexContent>
      <extension base="epp:abstractCommandType">
        <sequence>
          <element name="clID" type="eppcom:clIDType"/>
          <element name="pw" type="epp:pwType"/>
          <element name="newPW" type="epp:pwType"
            minOccurs="0"/>
          <element name="options" type="epp:credsOptionsType"/>
          <element name="svcs" type="epp:loginSvcType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  
  <complexType name="pollType">
    <complexContent>
      <extension base="epp:abstractCommandType">
        <attribute name="op" type="epp:pollOpType"
          use="required"/>
        <attribute name="msgID" type="token"/>
      </extension>
    </complexContent>
  </complexType>
  
  <complexType name="transferType">
    <complexContent>
      <extension base="epp:abstractCommandType">
        <sequence>
          <any namespace="##other"/>
        </sequence>
        <attribute name="op" type="epp:transferOpType"
          use="required"/>
       </extension>
    </complexContent>
  </complexType>

cheers
Jay

-- 
Jay Daley
Chief Executive
.nz Registry Services (New Zealand Domain Name Registry Limited)
desk: +64 4 931 6977
mobile: +64 21 678840

_______________________________________________
provreg mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/provreg
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.