diff options
Diffstat (limited to 'schemas/domain-1.0.xml')
-rw-r--r-- | schemas/domain-1.0.xml | 432 |
1 files changed, 432 insertions, 0 deletions
diff --git a/schemas/domain-1.0.xml b/schemas/domain-1.0.xml new file mode 100644 index 0000000..4685985 --- /dev/null +++ b/schemas/domain-1.0.xml @@ -0,0 +1,432 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<schema targetNamespace="urn:ietf:params:xml:ns:domain-1.0" + xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" + xmlns:host="urn:ietf:params:xml:ns:host-1.0" + xmlns:epp="urn:ietf:params:xml:ns:epp-1.0" + xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0" + xmlns="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified"> + +<!-- +Import common element types. +--> +<import namespace="urn:ietf:params:xml:ns:eppcom-1.0"/> +<import namespace="urn:ietf:params:xml:ns:epp-1.0"/> +<import namespace="urn:ietf:params:xml:ns:host-1.0"/> + +<annotation> + <documentation> + Extensible Provisioning Protocol v1.0 + domain provisioning schema. + </documentation> +</annotation> + +<!-- +Child elements found in EPP commands. +--> +<element name="check" type="domain:mNameType"/> +<element name="create" type="domain:createType"/> +<element name="delete" type="domain:sNameType"/> +<element name="info" type="domain:infoType"/> +<element name="renew" type="domain:renewType"/> +<element name="transfer" type="domain:transferType"/> +<element name="update" type="domain:updateType"/> +<!-- +Child elements of the <create> command. +--> +<complexType name="createType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="period" type="domain:periodType" + minOccurs="0"/> + <element name="ns" type="domain:nsType" + minOccurs="0"/> + <element name="registrant" type="eppcom:clIDType" + minOccurs="0"/> + <element name="contact" type="domain:contactType" + minOccurs="0" maxOccurs="unbounded"/> + <element name="authInfo" type="domain:authInfoType"/> + </sequence> +</complexType> + +<complexType name="periodType"> + <simpleContent> + <extension base="domain:pLimitType"> + <attribute name="unit" type="domain:pUnitType" + use="required"/> + </extension> + </simpleContent> +</complexType> + +<simpleType name="pLimitType"> + <restriction base="unsignedShort"> + <minInclusive value="1"/> + <maxInclusive value="99"/> + </restriction> +</simpleType> + +<simpleType name="pUnitType"> + <restriction base="token"> + <enumeration value="y"/> + <enumeration value="m"/> + </restriction> +</simpleType> + +<complexType name="nsType"> + <choice> + <element name="hostObj" type="eppcom:labelType" + maxOccurs="unbounded"/> + <element name="hostAttr" type="domain:hostAttrType" + maxOccurs="unbounded"/> + </choice> +</complexType> +<!-- +Name servers are either host objects or attributes. +--> + +<complexType name="hostAttrType"> + <sequence> + <element name="hostName" type="eppcom:labelType"/> + <element name="hostAddr" type="host:addrType" + minOccurs="0" maxOccurs="unbounded"/> + </sequence> +</complexType> +<!-- +If attributes, addresses are optional and follow the +structure defined in the host mapping. +--> + +<complexType name="contactType"> + <simpleContent> + <extension base="eppcom:clIDType"> + <attribute name="type" type="domain:contactAttrType"/> + </extension> + </simpleContent> +</complexType> + +<simpleType name="contactAttrType"> + <restriction base="token"> + <enumeration value="admin"/> + <enumeration value="billing"/> + <enumeration value="tech"/> + </restriction> +</simpleType> + +<complexType name="authInfoType"> + <choice> + <element name="pw" type="eppcom:pwAuthInfoType"/> + <element name="ext" type="eppcom:extAuthInfoType"/> + </choice> +</complexType> + +<!-- +Child element of commands that require a single name. +--> +<complexType name="sNameType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + </sequence> +</complexType> +<!-- +Child element of commands that accept multiple names. +--> +<complexType name="mNameType"> + <sequence> + <element name="name" type="eppcom:labelType" + maxOccurs="unbounded"/> + </sequence> +</complexType> + +<!-- +Child elements of the <info> command. +--> +<complexType name="infoType"> + <sequence> + <element name="name" type="domain:infoNameType"/> + <element name="authInfo" type="domain:authInfoType" + minOccurs="0"/> + </sequence> +</complexType> + +<complexType name="infoNameType"> + <simpleContent> + <extension base = "eppcom:labelType"> + <attribute name="hosts" type="domain:hostsType" + default="all"/> + </extension> + </simpleContent> +</complexType> + +<simpleType name="hostsType"> + <restriction base="token"> + <enumeration value="all"/> + <enumeration value="del"/> + <enumeration value="none"/> + <enumeration value="sub"/> + </restriction> +</simpleType> + +<!-- +Child elements of the <renew> command. +--> +<complexType name="renewType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="curExpDate" type="date"/> + <element name="period" type="domain:periodType" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +Child elements of the <transfer> command. +--> +<complexType name="transferType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="period" type="domain:periodType" + minOccurs="0"/> + <element name="authInfo" type="domain:authInfoType" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +Child elements of the <update> command. +--> + +<complexType name="updateType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="add" type="domain:addRemType" + minOccurs="0"/> + <element name="rem" type="domain:addRemType" + minOccurs="0"/> + <element name="chg" type="domain:chgType" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +Data elements that can be added or removed. +--> +<complexType name="addRemType"> + <sequence> + <element name="ns" type="domain:nsType" + minOccurs="0"/> + <element name="contact" type="domain:contactType" + minOccurs="0" maxOccurs="unbounded"/> + <element name="status" type="domain:statusType" + minOccurs="0" maxOccurs="11"/> + </sequence> +</complexType> + +<!-- +Data elements that can be changed. +--> +<complexType name="chgType"> + <sequence> + <element name="registrant" type="domain:clIDChgType" + minOccurs="0"/> + <element name="authInfo" type="domain:authInfoChgType" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +Allow the registrant value to be nullified by changing the +minLength restriction to "0". +--> +<simpleType name="clIDChgType"> + <restriction base="token"> + <minLength value="0"/> + <maxLength value="16"/> + </restriction> +</simpleType> + +<!-- +Allow the authInfo value to be nullified by including an +empty element within the choice. +--> +<complexType name="authInfoChgType"> + <choice> + <element name="pw" type="eppcom:pwAuthInfoType"/> + <element name="ext" type="eppcom:extAuthInfoType"/> + <element name="null"/> + </choice> +</complexType> + +<!-- +Child response elements. +--> +<element name="chkData" type="domain:chkDataType"/> +<element name="creData" type="domain:creDataType"/> +<element name="infData" type="domain:infDataType"/> +<element name="panData" type="domain:panDataType"/> +<element name="renData" type="domain:renDataType"/> +<element name="trnData" type="domain:trnDataType"/> + +<!-- +<check> response elements. +--> +<complexType name="chkDataType"> + <sequence> + <element name="cd" type="domain:checkType" + maxOccurs="unbounded"/> + </sequence> +</complexType> + +<complexType name="checkType"> + <sequence> + <element name="name" type="domain:checkNameType"/> + <element name="reason" type="eppcom:reasonType" + minOccurs="0"/> + </sequence> +</complexType> + +<complexType name="checkNameType"> + <simpleContent> + <extension base="eppcom:labelType"> + <attribute name="avail" type="boolean" + use="required"/> + </extension> + </simpleContent> +</complexType> + +<!-- +<create> response elements. +--> +<complexType name="creDataType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="crDate" type="dateTime"/> + <element name="exDate" type="dateTime" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +<info> response elements. +--> +<complexType name="infDataType"> + <sequence> + <element name="name" type="eppcom:labelType"/> + <element name="roid" type="eppcom:roidType"/> + <element name="status" type="domain:statusType" + minOccurs="0" maxOccurs="11"/> + <element name="registrant" type="eppcom:clIDType" + minOccurs="0"/> + <element name="contact" type="domain:contactType" + minOccurs="0" maxOccurs="unbounded"/> + <element name="ns" type="domain:nsType" + minOccurs="0"/> + <element name="host" type="eppcom:labelType" + minOccurs="0" maxOccurs="unbounded"/> + <element name="clID" type="eppcom:clIDType"/> + <element name="crID" type="eppcom:clIDType" + minOccurs="0"/> + <element name="crDate" type="dateTime" + minOccurs="0"/> + <element name="upID" type="eppcom:clIDType" + minOccurs="0"/> + <element name="upDate" type="dateTime" + minOccurs="0"/> + <element name="exDate" type="dateTime" + minOccurs="0"/> + <element name="trDate" type="dateTime" + minOccurs="0"/> + <element name="authInfo" type="domain:authInfoType" + minOccurs="0"/> + </sequence> +</complexType> + +<!-- +Status is a combination of attributes and an optional +human-readable message that may be expressed in languages other +than English. +--> +<complexType name="statusType"> + <simpleContent> + <extension base="normalizedString"> + <attribute name="s" type="domain:statusValueType" + use="required"/> + <attribute name="lang" type="language" + default="en"/> + </extension> + </simpleContent> +</complexType> + +<simpleType name="statusValueType"> + <restriction base="token"> + <enumeration value="clientDeleteProhibited"/> + <enumeration value="clientHold"/> + <enumeration value="clientRenewProhibited"/> + <enumeration value="clientTransferProhibited"/> + <enumeration value="clientUpdateProhibited"/> + <enumeration value="inactive"/> + <enumeration value="ok"/> + <enumeration value="pendingCreate"/> + <enumeration value="pendingDelete"/> + <enumeration value="pendingRenew"/> + <enumeration value="pendingTransfer"/> + <enumeration value="pendingUpdate"/> + <enumeration value="serverDeleteProhibited"/> + <enumeration value="serverHold"/> + <enumeration value="serverRenewProhibited"/> + <enumeration value="serverTransferProhibited"/> + <enumeration value="serverUpdateProhibited"/> + </restriction> +</simpleType> + +<!-- +Pending action notification response elements. +--> +<complexType name="panDataType"> + <sequence> + <element name="name" type="domain:paNameType"/> + <element name="paTRID" type="epp:trIDType"/> + <element name="paDate" type="dateTime"/> + </sequence> +</complexType> + +<complexType name="paNameType"> + <simpleContent> + <extension base="eppcom:labelType"> + <attribute name="paResult" type="boolean" + use="required"/> + </extension> + </simpleContent> +</complexType> + +<!-- +<renew> response elements. +--> +<complexType name="renDataType"> +<sequence> + <element name="name" type="eppcom:labelType"/> + <element name="exDate" type="dateTime" + minOccurs="0"/> +</sequence> +</complexType> + +<!-- +<transfer> response elements. +--> +<complexType name="trnDataType"> +<sequence> + <element name="name" type="eppcom:labelType"/> + <element name="trStatus" type="eppcom:trStatusType"/> + <element name="reID" type="eppcom:clIDType"/> + <element name="reDate" type="dateTime"/> + <element name="acID" type="eppcom:clIDType"/> + <element name="acDate" type="dateTime"/> + <element name="exDate" type="dateTime" + minOccurs="0"/> +</sequence> +</complexType> + +<!-- +End of schema. +--> +</schema>
\ No newline at end of file |