DRDE/AusRegEPPTK/resources/idnadomain-1.0.xsd

175 lines
5.0 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:X-ar:params:xml:ns:idnadomain-1.0"
xmlns:idnadomain="urn:X-ar:params:xml:ns:idnadomain-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"
schemaLocation="eppcom-1.0.xsd" />
<annotation>
<documentation>
Internationalised Domain Name Extensions to the Extensible
Provisioning Protocol v1.1 schema. Domain-specific types and
attributes.
</documentation>
</annotation>
<group name="namePair">
<annotation>
<documentation>
User and DNS presentation forms of a domain
</documentation>
</annotation>
<sequence>
<element name="userForm" type="eppcom:labelType">
<annotation>
<documentation>
This should be of type internationalisedLabelType
</documentation>
</annotation>
</element>
<element name="dnsForm" type="eppcom:labelType" />
</sequence>
</group>
<!--
Child elements found in EPP commands.
-->
<element name="check" type="idnadomain:mNameType" />
<!--
Child elements of the <check> command.
-->
<complexType name="mNameType">
<sequence>
<element name="name" type="idnadomain:internationalisedLabelType"
maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="internationalisedLabelType">
<simpleContent>
<extension base="eppcom:labelType">
<attribute name="language" type="language">
<annotation>
<documentation>
Registration of language with IANA requires the definition
of a Script or Language Designator
(http://www.iana.org/procedures/idn-repository.html).
The linked document above notes that Language Designators
are defined in BCP 47
(http://www.rfc-editor.org/rfc/bcp/bcp47.txt), which
satisfies the requirements of the language datatype and
RFC3066 (BCP 47, Section 2.2.8).
</documentation>
</annotation>
</attribute>
</extension>
</simpleContent>
</complexType>
<!--
Child response elements.
-->
<element name="chkData" type="idnadomain:chkDataType" />
<!--
<check> response elements.
-->
<complexType name="chkDataType">
<sequence>
<element name="cd" type="idnadomain:checkType"
maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="checkType">
<sequence>
<element name="name" type="idnadomain:checkNameType" />
<element name="reason" type="eppcom:reasonType" minOccurs="0" />
</sequence>
</complexType>
<complexType name="checkNameType">
<simpleContent>
<extension base="idnadomain:internationalisedLabelType">
<attribute name="avail" type="boolean" use="required" />
</extension>
</simpleContent>
</complexType>
<!--
Custom extensions
-->
<element name="create" type="idnadomain:createType" />
<element name="info" type="idnadomain:infoType" />
<!--
Child elements of the <create> command extension.
-->
<complexType name="createType">
<attribute name="language" use="required" />
</complexType>
<!--
Child elements of the <info> command extension.
-->
<complexType name="infoType">
<attribute name="variants" type="idnadomain:variantsInfoType"
default="all" />
</complexType>
<simpleType name="variantsInfoType">
<restriction base="token">
<enumeration value="all" />
<enumeration value="none" />
</restriction>
</simpleType>
<!--
Custom response
-->
<element name="infData" type="idnadomain:resDataType" />
<element name="creData" type="idnadomain:resDataType" />
<!--
Response extension elements.
-->
<complexType name="resDataType">
<sequence>
<!-- primary is the name in domain create -->
<element name="primary" type="idnadomain:primaryType"
minOccurs="1" />
<element name="variant" type="idnadomain:variantType"
minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
<complexType name="primaryType">
<annotation>
<documentation>
Should this be moved directly into the resDataType? - assumes
that userForm of namePair is of type internationalisedLabelType
</documentation>
</annotation>
<group ref="idnadomain:namePair" />
<attribute name="language" />
</complexType>
<complexType name="variantType">
<group ref="idnadomain:namePair" />
<attribute name="language" />
<attribute name="provisioned" type="boolean" default="false" />
</complexType>
<!--
End of schema.
-->
</schema>