<group ref="areg:contactSearchGroup" />
<element name="organizationId"
type="areg:exactMatchParameter" />
</choice>
<element name="language" type="language" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="findContacts" type="areg:findContactsType"
substitutionGroup="iris:query" />
<!-- -->
<!-- Find Organizations -->
<!-- -->
<complexType name="findOrganizationsType">
<complexContent>
<extension base="iris:queryType">
<sequence>
<choice>
<element name="organizationName"
type="areg:exactOrPartialMatchParameter" />
<group ref="areg:commonSearchGroup" />
</choice>
<element name="language" type="language" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="findOrganizations" type="areg:findOrganizationsType"
substitutionGroup="iris:query" />
<!-- -->
<!-- Find Networks by Name Server -->
<!-- -->
<complexType name="findNetworksByNameServerType">
<complexContent>
<extension base="iris:queryType">
<sequence>
<element name="nameServer" type="normalizedString" />
<element name="returnedResultType" minOccurs="0"
maxOccurs="1" >
<simpleType>
<restriction base="string" >
<enumeration value="returnIPv4Networks" />
<enumeration value="returnIPv6Networks" />
</restriction>
</simpleType>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="findNetworksByNameServer"
type="areg:findNetworksByNameServerType"
substitutionGroup="iris:query" />
<!-- -->
<!-- Contact Search Group -->
<!-- -->
<group name="contactSearchGroup">
<choice>
<element name="commonName"
type="areg:exactOrPartialMatchParameter" />
<group ref="areg:commonSearchGroup" />
</choice>
</group>
<!-- -->
<!-- Common Search Group -->
<!-- -->
<group name="commonSearchGroup">
<choice>
<element name="eMail" type="areg:domainResourceParameter" />
<element name="city" type="areg:exactMatchParameter" />
<element name="region" type="areg:exactMatchParameter" />
<element name="country" type="areg:exactMatchParameter" />
<element name="postalCode" type="areg:exactMatchParameter" />
</choice>
</group>
<!-- -->
<!-- Parameters for Search Groups -->
<!-- -->
<complexType name="exactOrPartialMatchParameter">
<choice>
<group ref="areg:partialMatchGroup" />
<group ref="areg:exactMatchGroup" />
</choice>
</complexType>
<complexType name="exactMatchParameter">
<group ref="areg:exactMatchGroup" />
</complexType>
<complexType name="partialMatchParameter">
<sequence>
<group ref="areg:partialMatchGroup" />
</sequence>
</complexType>
<complexType name="domainResourceParameter" >
<choice>
<group ref="areg:exactMatchGroup" />
<element name="inDomain" type="token" />
</choice>
</complexType>
<group name="partialMatchGroup">
<choice>
<sequence>
<element name="beginsWith">
<simpleType>
<restriction base="token">
<minLength value="1"/>
</restriction>
</simpleType>
</element>
<element minOccurs="0" ref="areg:endsWith"/>
</sequence>
<element ref="areg:endsWith" />
</choice>
</group>
<element name="endsWith">
<simpleType>
<restriction base="token">
<minLength value="1"/>
</restriction>
</simpleType>
</element>
<group name="exactMatchGroup">
<sequence>
<element name="exactMatch" type="normalizedString" />
</sequence>
</group>
<!-- ========================================= -->
<!-- -->
<!-- Result Types -->
<!-- -->
<!-- ========================================= -->
<!-- -->
<!-- IPv4 and IPv6 Network Results -->
<!-- -->
<complexType name="ipNetworkType">
<complexContent>
<extension base="iris:resultType">
<sequence>
<element name="networkHandle" type="token"
minOccurs="0" maxOccurs="1" />
<element name="name" minOccurs="0" maxOccurs="1"
type="normalizedString" />
<element name="startAddress" type="token" />
<element name="endAddress" type="token" />
<sequence minOccurs="0" maxOccurs="1">
<element name="networkType" type="normalizedString"
minOccurs="1" maxOccurs="1" />
<element name="networkTypeInfo" type="iris:entityType"
minOccurs="0" maxOccurs="1" />
</sequence>
<element name="nameServer" type="normalizedString"
minOccurs="0" maxOccurs="unbounded" />
<element name="organization" type="iris:entityType"
minOccurs="0" maxOccurs="1" />
<choice minOccurs="0" maxOccurs="1" >
<element name="parent" type="iris:entityType" />
<element name="noParent">
</element>
</choice>
<group ref="areg:contactGroup" />
<group ref="areg:commonGroup" />
</sequence>
</extension>
</complexContent>
</complexType>
<element name="ipv4Network" type="areg:ipNetworkType"
substitutionGroup="iris:result" />
<element name="ipv6Network" type="areg:ipNetworkType"
substitutionGroup="iris:result" />
<!-- -->
<!-- Autonomous System -->
<!-- -->
<complexType name="autonomousSystemType">
<complexContent>
<extension base="iris:resultType">
<sequence>
<element name="asHandle" type="token"
minOccurs="0" maxOccurs="1" />
<element name="asNumberStart" type="integer" minOccurs="0"
maxOccurs="1" />
<element name="asNumberEnd" type="integer" minOccurs="0"
maxOccurs="1" />
<element name="name" type="normalizedString" minOccurs="0"
maxOccurs="1" />
<element name="organization" type="iris:entityType"
minOccurs="0" maxOccurs="1" />
<choice minOccurs="0" maxOccurs="1">
<element name="parent" type="iris:entityType" />
<element name="noParent" />
</choice>
<group ref="areg:contactGroup" />
<group ref="areg:commonGroup" />
</sequence>
</extension>
</complexContent>
</complexType>
<element name="autonomousSystem" type="areg:autonomousSystemType"
substitutionGroup="iris:result" />
<!-- -->
<!-- Contact -->
<!-- -->
<complexType name="contactType">
<complexContent>
<extension base="iris:resultType">
<sequence>
<element name="contactHandle" type="token"
minOccurs="0" maxOccurs="1" />
<element name="commonName" type="normalizedString"
minOccurs="0" maxOccurs="1" />
<element name="eMail" type="normalizedString" minOccurs="0"
maxOccurs="unbounded" />
<element name="sip" type="normalizedString" minOccurs="0"
maxOccurs="unbounded" />
<element name="organization" type="iris:entityType"
minOccurs="0" maxOccurs="unbounded" />
<element name="postalAddress" minOccurs="0"
maxOccurs="unbounded">
<complexType>
<sequence>
<element name="address" type="string" minOccurs="0"
maxOccurs="1" />
<element name="city" type="string" minOccurs="0"
maxOccurs="1" />
<element name="region" type="string" minOccurs="0"
maxOccurs="1" />
<element name="postalCode" type="normalizedString"
minOccurs="0" maxOccurs="1" />
<element name="country" type="token" minOccurs="0"
maxOccurs="1" />
</sequence>
</complexType>
</element>
<element name="phone" minOccurs="0" maxOccurs="unbounded" >
<complexType>
<sequence>
<element name="number" type="normalizedString" />
<element name="extension" type="normalizedString"
minOccurs="0" maxOccurs="unbounded" />
<element name="type" type="normalizedString"
minOccurs="0" maxOccurs="1" />
</sequence>
</complexType>
</element>
<group ref="areg:commonGroup" />
</sequence>
</extension>
</complexContent>
</complexType>
<element name="contact" type="areg:contactType"
substitutionGroup="iris:result" />
<!-- -->
<!-- Organization -->
<!-- -->
<complexType name="organizationType">
<complexContent>
<extension base="iris:resultType">
<sequence>
<element name="name" type="normalizedString"
minOccurs="0" maxOccurs="1" />
<element name="eMail" type="normalizedString" minOccurs="0"
maxOccurs="unbounded" />
<element name="id" type="token" />
<element name="postalAddress" minOccurs="0"
maxOccurs="unbounded">
<complexType>
<sequence>
<element name="address" type="string" minOccurs="0"
maxOccurs="1" />
<element name="city" type="string" minOccurs="0"
maxOccurs="1" />
<element name="region" type="string" minOccurs="0"
maxOccurs="1" />
<element name="postalCode" type="normalizedString"
minOccurs="0" maxOccurs="1" />
<element name="country" type="token" minOccurs="0"
maxOccurs="1" />
</sequence>
</complexType>
</element>
<element name="phone" minOccurs="0" maxOccurs="unbounded" >
<complexType>
<sequence>
<element name="number" type="normalizedString" />
<element name="extension" type="normalizedString"
minOccurs="0" maxOccurs="unbounded" />
<element name="type" type="normalizedString"
minOccurs="0" maxOccurs="1" />
</sequence>
</complexType>
</element>
<group ref="areg:contactGroup" />
<group ref="areg:commonGroup" />
</sequence>
</extension>
</complexContent>
</complexType>
<element name="organization" type="areg:organizationType"
substitutionGroup="iris:result" />
<!-- -->
<!-- Contact Group -->
<!-- -->
<group name="contactGroup">
<sequence>
<element name="adminContact" type="iris:entityType"
minOccurs="0" maxOccurs="unbounded" />
<element name="techContact" type="iris:entityType"
minOccurs="0" maxOccurs="unbounded" />
<element name="nocContact" type="iris:entityType" minOccurs="0"
maxOccurs="unbounded" />
<element name="abuseContact" type="iris:entityType"
minOccurs="0" maxOccurs="unbounded" />
<element name="otherContact" type="iris:entityType"
minOccurs="0" maxOccurs="unbounded" />
</sequence>
</group>
<!-- -->
<!-- Common Group -->
<!-- -->
<group name="commonGroup">
<sequence>
<element name="numberResourceRegistry" type="iris:entityType"
minOccurs="0" maxOccurs="1" />
<element name="registrationDate" type="dateTime" minOccurs="0"
maxOccurs="1" />
<element name="lastUpdatedDate" type="dateTime" minOccurs="0"
maxOccurs="1" />
<element ref="iris:seeAlso" minOccurs="0" maxOccurs="unbounded"
/>
</sequence>
</group>
</schema>
Figure 9
6. BEEP Transport Compliance
IRIS allows several extensions of the core capabilities. This
section outlines those extensions allowable by IRIS-BEEP [3].
6.1. Message Pattern
This registry type uses the default message pattern as described in
IRIS-BEEP [3].
6.2. Server Authentication
This registry type uses the default server authentication method as
described in IRIS-BEEP [3].
7. URI Resolution
7.1. Application Service Label
See Section 9 for the application service label registration.
7.2. Operational Considerations
Address registries do not have natural links to DNS. Using reverse
DNS tree presents problems for IP address delegation (for example,
delegations do not fall into byte boundaries, unlike reverse DNS),
and DNS does not currently contain any information regarding
autonomous system delegation.
Therefore, in order for the top-down resolution to operate properly,
it is requested that the IAB instruct IANA to insert and maintain a
NAPTR DNS resource record for areg.iris.arpa, as described in
Section 9.
7.3. Top-Down Resolution
The top-down alternative resolution method MUST be identified as
’top’ in IRIS URIs.
The process for this condition is as follows:
1. The IRIS [2] direct-resolution process is tried against
areg.iris.arpa.
2. If the direct-resolution process yields no server for which a
connection can be made, then a negative response is returned, and
no further action is taken.
It is RECOMMENDED that IRIS clients issuing AREG1 requests use the
’top’ resolution method when no resolution method has been explicitly
given by a user. IRIS servers accepting AREG1 requests that seek
information for which they are not authoritative SHOULD refer clients
using the ’top’ resolution method.
8. Internationalization Considerations
This document lays out no new considerations for internationalization
beyond those specified in IRIS [2].
9. IANA Considerations
The following URN has been registered with IANA according to the IANA
considerations defined in IRIS [2]:
urn:ietf:params:xml:ns:areg1
The following S-NAPTR application service label has been registered
with IANA according to the IANA considerations defined in IRIS [2]:
AREG1
Under instructions from the IAB, the IANA will create a new second
level domain under .arpa called iris (i.e., iris.arpa.). The
contents of this new domain are to be under the control of the IAB.
Under instructions from the IAB, the IANA will insert and maintain a
NAPTR DNS resource record in the iris.arpa. domain for the name
areg.iris.arpa. The initial contents for that record is:
areg.iris.arpa.
;; order pref flags service re replacement
IN NAPTR 100 10 "" "AREG1:iris.xpc:iris.lwz" "" areg.nro.net
10. Security Considerations
This document lays out no new considerations for security precautions
beyond those specified in IRIS [2].
11. References
11.1. Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Newton, A. and M. Sanz, "IRIS: The Internet Registry Information
Service (IRIS) Core Protocol", RFC 3981, January 2005.
[3] Newton, A. and M. Sanz, "Using the Internet Registry Information
Service (IRIS) over the Blocks Extensible Exchange Protocol
(BEEP)", RFC 3983, January 2005.