Unity Registry Logo               Time to re-organise
The Proposal
 

Appendix L

Example XML Schema for Escrow Operation

<?xml version="1.0"?>
<schema targetNamespace="urn:unityregistry:registry" xmlns:registry="urn:unityregistry:registry" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:host="urn:ietf:params:xml:ns:host-1.0" xmlns:EPPcom="urn:ietf:params:xml:ns:EPPcom-1.0" xmlns:EPP="urn:ietf:params:xml:ns:EPP-1.0" xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0" elementFormDefault="qualified">
  <!--Import EPP Element Types-->
  <import namespace="urn:ietf:params:xml:ns:EPPcom-1.0" schemaLocation="EPPcom-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:EPP-1.0" schemaLocation="EPP-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:contact-1.0" schemaLocation="contact-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:domain-1.0" schemaLocation="domain-1.0.xsd"/>
  <import namespace="urn:ietf:params:xml:ns:host-1.0" schemaLocation="host-1.0.xsd"/>
  <annotation>
    <documentation>XML Schema for Data Escrow From Unityregistry
    </documentation>
  </annotation>
  <!--Child Element-->
  <element name="WHOIS-data" type="registry:registryType"/>
  <complexType name="registryType">
    <choice>
      <element name="full" type="registry:fullsetType"/>
      <element name="incremental" type="registry:partialType"/>
    </choice>
    <attribute name="tld" type="registry:tldType" use="required"/>
    <attribute name="date" type="dateTime" use="required"/>
  </complexType>
  <simpleType name="tldType">
    <restriction base="string">
      <enumeration value="coop"/>
    </restriction>
  </simpleType>
  <complexType name="fullsetType">
    <sequence>
      <element name="contact" type="registry:ContactType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="domain" type="registry:DomainType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="host" type="host:infDataType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="registrar" type="registry:registrarType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <complexType name="partialType">
    <sequence>
      <element name="contact" type="registry:ContactType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="domain" type="registry:DomainType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="host" type="host:infDataType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="registrar" type="registry:registrarType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="del-contact" type="contact:sIDType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="del-domain" type="domain:sNameType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="del-host" type="host:sNameType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="del-registrar" type="EPPcom:clIDType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <complexType name="registrarIDType">
    <sequence>
      <element name="registrar-id" type="EPPcom:clIDType"/>
    </sequence>
  </complexType>
  <complexType name="registrarType">
    <sequence>
      <element name="roid" type="EPPcom:roidType"/>
      <element name="registrar-id" type="EPPcom:clIDType"/>
      <element name="name" type="registry:registrarNameType"/>
      <element name="address" type="contact:addrType"/>
      <element name="web-url" type="registry:registrarWebUrlType"/>
      <element name="iana-id" type="registry:registrarIanaIDType"/>
      <element name="contact" type="registry:registrarContactType" maxOccurs="5"/>
      <element name="status" type="registry:registrarStatusType"/>
      <element name="crDate" type="dateTime"/>
      <element name="upDate" type="dateTime" minOccurs="0"/>
    </sequence>
  </complexType>
  <simpleType name="registrarNameType">
    <restriction base="token">
      <minLength value="1"/>
      <maxLength value="128"/>
    </restriction>
  </simpleType>
  <simpleType name="registrarWebUrlType">
    <restriction base="token"/>
  </simpleType>
  <simpleType name="registrarIanaIDType">
    <restriction base="token"/>
  </simpleType>
  <complexType name="registrarContactType">
  <simpleContent>
    <extension base="EPPcom:roidType">
    <attribute name="type" use="required">
      <simpleType>
        <restriction base="string">
        <enumeration value="administrative"/>
        <enumeration value="billing"/>
        <enumeration value="technical"/>
        </restriction>
      </simpleType>
    </attribute>
    </extension>
  </simpleContent>
  </complexType>
  <simpleType name="registrarStatusType">
    <restriction base="string">
      <enumeration value="active"/>
        <enumeration value="suspended"/>
      <enumeration value="defunct"/>
    </restriction>
  </simpleType>
  <complexType name="DomainType">
  <sequence>
    <element name="name" type="EPPcom:labelType"/>
    <element name="roid" type="EPPcom:roidType"/>
    <element name="status" type="domain:statusType" maxOccurs="14"/>
    <element name="registrant" type="domain:contactType" minOccurs="0"/>
    <element name="contact" type="domain:contactType" minOccurs="0" maxOccurs="unbounded"/>
    <element name="ns" type="EPPcom:labelType" minOccurs="0" maxOccurs="unbounded"/>
    <element name="host" type="EPPcom:labelType" minOccurs="0" maxOccurs="unbounded"/>
    <element name="clID" type="EPPcom:clIDType"/>
    <element name="crID" type="EPPcom:clIDType"/>
    <element name="crDate" type="dateTime"/>
    <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="EPPcom:authInfoType" minOccurs="0"/>
    <element name="ENSIdentity" type="registry:ENSIdType"/>
  </sequence>
</complexType>
<complexType name="ContactType">
  <sequence>
      <element name="id" type="EPPcom:clIDType"/>
      <element name="roid" type="EPPcom:roidType"/>
      <element name="status" type="contact:statusType" maxOccurs="8"/>
      <element name="ascii" type="contact:postalInfoType"/>
      <element name="i15d" type="contact:optPostalLineType" minOccurs="0"/>
      <element name="voice" type="contact:e164Type" minOccurs="0"/>
      <element name="fax" type="contact:e164Type" minOccurs="0"/>
      <element name="email" type="normalizedString"/>
      <element name="clID" type="EPPcom:clIDType"/>
      <element name="crID" type="EPPcom:clIDType"/>
      <element name="crDate" type="dateTime"/>
      <element name="upID" type="EPPcom:clIDType" minOccurs="0"/>
      <element name="upDate" type="dateTime" minOccurs="0"/>
      <element name="trDate" type="dateTime" minOccurs="0"/>
      <element name="authInfo" type="EPPcom:authInfoType" minOccurs="0"/>
      <element name="ENSIdentity" type="registry:ENSIdType"/>
      </sequence>
  </complexType>
  <simpleType name="ENSIdType">
    <restriction base="token">
      <minLength value="8"/>
      <maxLength value="14"/>
      <pattern value="ORG-[a-zA-Z0-9]+"/>
    </restriction>
  </simpleType>
</schema>

Appendices