Contact

Copy
<?xml version="1.0" encoding="UTF-8"?>
<schema
    xmlns="http://www.w3.org/2001/XMLSchema" xmlns:contact="http://registry.denic.de/contact/5.0"
    xmlns:verification="http://registry.denic.de/verification/5.0"
    targetNamespace="http://registry.denic.de/contact/5.0" elementFormDefault="qualified">
    <import namespace="http://registry.denic.de/verification/5.0"
        schemaLocation="verification-5.0.xsd" />
    <complexType name="normalizedStringPrivacyType">
        <simpleContent>
            <extension base="normalizedString" />
        </simpleContent>
    </complexType>
    <complexType name="tokenPrivacyType">
        <simpleContent>
            <extension base="token" />
        </simpleContent>
    </complexType>
    <simpleType name="handleType">
        <restriction base="token">
            <pattern value="[dD][eE][nN][iI][cC]\-[1-9][0-9]*\-[\-\.a-zA-Z0-9]+" />
            <maxLength value="32" />
        </restriction>
    </simpleType>
    <simpleType name="statusType">
        <restriction base="token">
            <enumeration value="free" />
            <enumeration value="exist" />
            <enumeration value="invalid" />
        </restriction>
    </simpleType>
    <simpleType name="roleType">
        <restriction base="token">
            <enumeration value="holder" />
            <enumeration value="generalrequest" />
            <enumeration value="abusecontact" />
        </restriction>
    </simpleType>
    <complexType name="typeType">
        <simpleContent>
            <restriction base="contact:tokenPrivacyType">
                <enumeration value="PERSON" />
                <enumeration value="ROLE" />
                <enumeration value="ORG" />
                <enumeration value="REQUEST" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="nameType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
                <minLength value="1" />
                <maxLength value="255" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="organisationType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
                <minLength value="1" />
                <maxLength value="255" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="addressType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
                <minLength value="1" />
                <maxLength value="255" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="postalCodeType">
        <simpleContent>
            <restriction base="contact:tokenPrivacyType">
                <pattern value="[ a-zA-Z0-9\-]{1,20}" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="cityType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
                <minLength value="1" />
                <maxLength value="80" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="countryCodeType">
        <simpleContent>
            <restriction base="contact:tokenPrivacyType">
                <length value="2" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="postalType">
        <sequence>
            <element name="address" type="contact:addressType" maxOccurs="unbounded" />
            <element name="postalCode" type="contact:postalCodeType" />
            <element name="city" type="contact:cityType" />
            <element name="countryCode" type="contact:countryCodeType" />
        </sequence>
    </complexType>
    <complexType name="nillablePostalType">
        <sequence>
            <element name="address" type="contact:addressType" maxOccurs="unbounded" />
            <element name="postalCode" type="contact:postalCodeType" />
            <element name="city" type="contact:cityType" />
            <element name="countryCode" type="contact:countryCodeType" />
        </sequence>
    </complexType>
    <complexType name="emailType">
        <simpleContent>
            <restriction base="contact:tokenPrivacyType">
                <pattern value="\S+@\S+" />
                <minLength value="1" />
                <maxLength value="255" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="phoneType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
                <minLength value="7" />
                <maxLength value="255" />
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="uriTemplateType">
        <simpleContent>
            <restriction base="contact:normalizedStringPrivacyType">
            </restriction>
        </simpleContent>
    </complexType>
    <complexType name="createType">
        <sequence>
            <element name="handle" type="contact:handleType" />
            <element name="type" type="contact:typeType" />
            <element name="name" type="contact:nameType" minOccurs="0" />
            <element name="organisation" type="contact:organisationType" minOccurs="0"
                maxOccurs="unbounded" />
            <element name="postal" type="contact:postalType" minOccurs="0" />
            <element name="email" type="contact:emailType" minOccurs="0" maxOccurs="unbounded" />
            <element name="phone" type="contact:phoneType" minOccurs="0" maxOccurs="1" />
            <element name="uri-template" type="contact:uriTemplateType" minOccurs="0" />
            <element ref="verification:verificationInformation" minOccurs="0" maxOccurs="5" />
        </sequence>
    </complexType>
    <complexType name="updateType">
        <sequence>
            <element name="handle" type="contact:handleType" />
            <element name="type" type="contact:typeType" />
            <element name="name" type="contact:nameType" minOccurs="0" />
            <element name="organisation" type="contact:organisationType" minOccurs="0"
                maxOccurs="unbounded" />
            <element name="postal" type="contact:postalType" minOccurs="0" />
            <element name="email" type="contact:emailType" minOccurs="0" maxOccurs="unbounded" />
            <element name="phone" type="contact:phoneType" minOccurs="0" maxOccurs="1" />
            <element name="uri-template" type="contact:uriTemplateType" minOccurs="0" />
            <element ref="verification:verificationInformation" minOccurs="0" maxOccurs="5" />
        </sequence>
    </complexType>
    <complexType name="checkInfoType">
        <choice>
            <element name="handle" type="contact:handleType" />
        </choice>
    </complexType>
    <group name="infoDataGroup">
        <sequence>
            <group ref="contact:coreDataGroup" />
            <element ref="verification:verificationInformation" minOccurs="0" maxOccurs="5" />
        </sequence>
    </group>
    <group name="coreDataGroup">
        <sequence>
            <element name="type" type="contact:typeType" />
            <element name="name" type="contact:nameType" minOccurs="0" />
            <element name="organisation" minOccurs="0" type="contact:organisationType"
                maxOccurs="unbounded" />
            <element name="postal" type="contact:nillablePostalType" minOccurs="0" />
            <element name="email" type="contact:emailType" minOccurs="0" maxOccurs="unbounded" />
            <element name="phone" type="contact:phoneType" minOccurs="0" maxOccurs="1" />
            <element name="disputeReference" type="boolean" minOccurs="0" maxOccurs="1" />
            <element name="uri-template" minOccurs="0" type="contact:uriTemplateType" />
            <element name="changed" type="dateTime" minOccurs="0" />
        </sequence>
    </group>
    <complexType name="infoDataType">
        <sequence>
            <element ref="contact:handle" />
            <group ref="contact:infoDataGroup" />
        </sequence>
    </complexType>
    <complexType name="checkDataType">
        <sequence>
            <element name="handle" type="contact:handleType" />
            <element name="status" type="contact:statusType" />
        </sequence>
    </complexType>
    <element name="create" type="contact:createType" />
    <element name="update" type="contact:updateType" />
    <element name="check" type="contact:checkInfoType" />
    <element name="info" type="contact:checkInfoType" />
    <element name="checkData" type="contact:checkDataType" />
    <element name="infoData" type="contact:infoDataType" />
    <element name="handle" type="contact:handleType" />
</schema>