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