From Openprovider API documentation
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:op="http://www.openprovider.nl/epp/xml/opprov-1.0"
targetNamespace="http://www.openprovider.nl/epp/xml/opprov-1.0" elementFormDefault="qualified"
xmlns="http://www.w3.org/2001/XMLSchema" xmlns:domain="urn:ietf:params:xml:ns:domain-1.0"
xmlns:eppcom="urn:ietf:params:xml:ns:eppcom-1.0"
xmlns:contact="urn:ietf:params:xml:ns:contact-1.0" xmlns:epp="urn:ietf:params:xml:ns:epp-1.0">
<annotation>
<documentation>Extensible Provisioning Protocol v1.0 Openprovider.nl specific extensions.</documentation>
</annotation>
<import id="eppcom" 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"/>
<element name="ext" type="op:extT"/>
<complexType name="extT">
<choice>
<element name="create" type="op:createT"/>
<element name="update" type="op:updateT"/>
<element name="result" type="op:resultT"/>
<element name="transfer" type="op:transferT"/>
<element name="command" type="op:cmdT"/>
<element name="resData" type="op:resDataT"/>
</choice>
</complexType>
<complexType name="createT">
<choice>
<element name="domain" type="op:domainCreateUpdateT"/>
<element name="contact" type="op:contactCreateUpdateT"/>
</choice>
</complexType>
<complexType name="updateT">
<choice>
<element name="domain" type="op:domainUpdateChgT"/>
<element name="contact" type="op:contactUpdateChgT"/>
</choice>
</complexType>
<complexType name="transferT">
<sequence>
<element name="domain" type="op:domainTransferT"/>
</sequence>
</complexType>
<complexType name="domainTransferT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element name="registrant" type="eppcom:clIDType"/>
<element maxOccurs="unbounded" minOccurs="1" name="contact" type="domain:contactType"/>
<element minOccurs="0" name="ns" type="domain:nsType"/>
<element minOccurs="0" name="autorenew" type="op:autorenewT"/>
<element minOccurs="0" name="nsGroup" type="token"/>
<element minOccurs="0" name="useDomicile" type="boolean"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="promoCode" type="token"/>
<element minOccurs="0" name="nsTemplateId" type="integer"/>
<element minOccurs="0" name="nsTemplateName" type="string"/>
</sequence>
</complexType>
<complexType name="domainCreateUpdateT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element minOccurs="0" name="promoCode" type="token"/>
<element minOccurs="0" name="useDomicile" type="boolean"/>
<element minOccurs="0" name="nsGroup" type="token"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="autorenew" type="op:autorenewT"/>
<element minOccurs="0" name="nsTemplateId" type="integer"/>
<element minOccurs="0" name="nsTemplateName" type="string"/>
<element minOccurs="0" name="resetAuthCode" type="boolean"/>
</sequence>
</complexType>
<complexType name="contactCreateUpdateT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element minOccurs="0" name="vat" type="token"/>
<element minOccurs="0" name="gender" type="op:genderT"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="birthCountry" type="token"/>
<element minOccurs="0" name="birthState" type="contact:postalLineType"/>
<element minOccurs="0" name="birthCity" type="contact:postalLineType"/>
<element minOccurs="0" name="birthZipcode" type="contact:pcType"/>
<element minOccurs="0" name="birthAddress" type="contact:postalLineType"/>
<element minOccurs="0" name="birthDate" type="date"/>
<element minOccurs="0" name="companyRegistrationCity" type="contact:postalLineType"/>
<element minOccurs="0" name="companyRegistrationNumber" type="token"/>
<element minOccurs="0" name="companyRegistrationSubscriptionDate" type="date"/>
<element minOccurs="0" name="headquartersCountry" type="contact:ccType"/>
<element minOccurs="0" name="headquartersState" type="contact:postalLineType"/>
<element minOccurs="0" name="headquartersZipcode" type="contact:pcType"/>
<element minOccurs="0" name="headquartersCity" type="contact:postalLineType"/>
<element minOccurs="0" name="headquartersAddress" type="contact:postalLineType"/>
<element minOccurs="0" name="socialSecurityNumber" type="token"/>
<element minOccurs="0" name="passportNumber" type="token"/>
<element minOccurs="0" name="cifNifNumber" type="token"/>
<element minOccurs="0" name="costCenter" type="token"/>
<element minOccurs="0" name="costCategory" type="token"/>
<element minOccurs="0" name="purchaseOrderNumber" type="token"/>
<element minOccurs="0" name="projectCode" type="token"/>
<element minOccurs="0" name="internalReference" type="token"/>
</sequence>
</complexType>
<complexType name="domainUpdateChgT">
<sequence>
<element name="chg" type="op:domainCreateUpdateT"/>
</sequence>
</complexType>
<complexType name="contactUpdateChgT">
<sequence>
<element name="chg" type="op:contactCreateUpdateT"/>
</sequence>
</complexType>
<complexType name="resultT">
<sequence>
<element name="msg" type="epp:msgType"/>
<choice maxOccurs="unbounded" minOccurs="0">
<element name="value" type="epp:errValueType"/>
</choice>
</sequence>
<attribute name="code" type="nonNegativeInteger"/>
</complexType>
<complexType name="errorResultT">
<sequence>
<element name="code" type="nonNegativeInteger"/>
<element name="msg" type="string"/>
<element minOccurs="0" name="value" type="string"/>
</sequence>
</complexType>
<complexType name="cmdT">
<sequence>
<choice>
<element name="trade">
<complexType>
<complexContent>
<extension base="op:cmdTrdT">
<attribute name="op" type="epp:transferOpType"/>
</extension>
</complexContent>
</complexType>
</element>
</choice>
<element minOccurs="0" name="clTRID" type="epp:trIDStringType"/>
</sequence>
</complexType>
<complexType name="cmdTrdT">
<choice>
<element name="domain" type="op:cmdTrdDomainT"/>
</choice>
</complexType>
<complexType name="cmdTrdDomainT">
<sequence>
<element name="name" type="eppcom:labelType"/>
<element name="authInfo" minOccurs="0" type="domain:authInfoType"/>
<element name="registrant" type="eppcom:clIDType" minOccurs="0"/>
<element maxOccurs="unbounded" minOccurs="0" name="contact" type="domain:contactType"/>
<element minOccurs="0" name="ns" type="domain:nsType"/>
<element minOccurs="0" name="autorenew" type="op:autorenewT"/>
<element minOccurs="0" name="nsGroup" type="token"/>
<element minOccurs="0" name="useDomicile" type="boolean"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="promoCode" type="token"/>
<element minOccurs="0" name="nsTemplateId" type="integer"/>
<element minOccurs="0" name="nsTemplateName" type="string"/>
</sequence>
</complexType>
<complexType name="attachmentT">
<sequence>
<element name="name" type="string"/>
<element name="body" type="base64Binary"/>
</sequence>
</complexType>
<complexType name="resDataT">
<choice>
<element name="trdData" type="op:trdDataT"/>
<element name="infData" type="op:infDataT"/>
<element name="creData" type="op:creDataT"/>
<element name="panData" type="op:panDataT"/>
<element name="trnData" type="op:trnDataT"/>
</choice>
</complexType>
<complexType name="trdDataT">
<choice>
<element name="domain" type="op:trdDataDomainT"/>
</choice>
</complexType>
<complexType name="creDataT">
<choice>
<element name="domain" type="op:creDataDomainT"/>
</choice>
</complexType>
<complexType name="infDataT">
<choice>
<element name="domain" type="op:infDataDomainT"/>
<element name="contact" type="op:infDataContactT"/>
</choice>
</complexType>
<complexType name="panDataT">
<choice>
<element name="domain" type="op:panDataDomainT"/>
</choice>
</complexType>
<complexType name="trnDataT">
<choice>
<element name="domain" type="op:trnDataDomainT"/>
</choice>
</complexType>
<complexType name="trdDataDomainT">
<complexContent>
<extension base="op:polAwareDomainT">
<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 minOccurs="0" name="exDate" type="dateTime"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="infDataContactT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element minOccurs="0" name="vat" type="token"/>
<element minOccurs="0" name="gender" type="token"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="birthCountry" type="token"/>
<element minOccurs="0" name="birthState" type="contact:postalLineType"/>
<element minOccurs="0" name="birthCity" type="contact:postalLineType"/>
<element minOccurs="0" name="birthZipcode" type="contact:pcType"/>
<element minOccurs="0" name="birthAddress" type="contact:postalLineType"/>
<element minOccurs="0" name="birthDate" type="date"/>
<element minOccurs="0" name="companyRegistrationCity" type="contact:postalLineType"/>
<element minOccurs="0" name="companyRegistrationNumber" type="token"/>
<element minOccurs="0" name="companyRegistrationSubscriptionDate" type="date"/>
<element minOccurs="0" name="headquartersCountry" type="contact:ccType"/>
<element minOccurs="0" name="headquartersState" type="contact:postalLineType"/>
<element minOccurs="0" name="headquartersZipcode" type="contact:pcType"/>
<element minOccurs="0" name="headquartersCity" type="contact:postalLineType"/>
<element minOccurs="0" name="headquartersAddress" type="contact:postalLineType"/>
<element minOccurs="0" name="socialSecurityNumber" type="token"/>
<element minOccurs="0" name="passportNumber" type="token"/>
<element minOccurs="0" name="cifNifNumber" type="token"/>
<element minOccurs="0" name="costCenter" type="token"/>
<element minOccurs="0" name="costCategory" type="token"/>
<element minOccurs="0" name="purchaseOrderNumber" type="token"/>
<element minOccurs="0" name="projectCode" type="token"/>
<element minOccurs="0" name="internalReference" type="token"/>
</sequence>
</complexType>
<complexType name="creDataDomainT">
<complexContent>
<extension base="op:polAwareDomainT"/>
</complexContent>
</complexType>
<complexType name="infDataDomainT">
<complexContent>
<extension base="op:polAwareDomainT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element minOccurs="0" name="isLockable" type="boolean"/>
<element minOccurs="0" name="isLocked" type="boolean"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="commentsLastChangedAt" type="string"/>
<element minOccurs="0" name="reDate" type="dateTime"/>
<element minOccurs="0" name="renewalDate" type="dateTime"/>
<element minOccurs="0" name="quarantineExpirationDate" type="dateTime"/>
<element minOccurs="0" name="canRenew" type="boolean"/>
<element minOccurs="0" name="autorenew" type="token"/>
<element minOccurs="0" name="nsGroup" type="token"/>
<element minOccurs="0" name="nsTemplateId" type="int"/>
<element minOccurs="0" name="nsTemplateName" type="string"/>
<element minOccurs="0" name="useDomicile" type="boolean"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="panDataDomainT">
<complexContent>
<extension base="op:polAwareDomainT"/>
</complexContent>
</complexType>
<complexType name="trnDataDomainT">
<complexContent>
<extension base="op:polAwareDomainT"/>
</complexContent>
</complexType>
<complexType name="polAwareDomainT">
<sequence>
<element minOccurs="0" name="polData" type="op:polDataDomainT"/>
</sequence>
</complexType>
<complexType name="polDataDomainT">
<sequence maxOccurs="unbounded" minOccurs="0">
<element name="action" type="op:actionT"/>
<element name="status" type="op:actionStatusT"/>
<element minOccurs="0" name="transaction" type="token"/>
<element minOccurs="0" name="title" type="string"/>
<element minOccurs="0" name="description" type="string"/>
<element minOccurs="0" name="comments" type="string"/>
<element minOccurs="0" name="registryMessage" type="string"/>
<element maxOccurs="unbounded" minOccurs="0" name="attachment" type="op:attachmentT"/>
</sequence>
</complexType>
<simpleType name="autorenewT">
<restriction base="token">
<enumeration value="on"/>
<enumeration value="off"/>
<enumeration value="default"/>
</restriction>
</simpleType>
<simpleType name="actionStatusT">
<restriction base="string">
<enumeration value="complete"/>
<enumeration value="pending"/>
<enumeration value="onhold"/>
<enumeration value="reject"/>
<enumeration value="error"/>
<enumeration value="cancel"/>
</restriction>
</simpleType>
<simpleType name="actionT">
<restriction base="token"/>
</simpleType>
<simpleType name="genderT">
<restriction base="token">
<enumeration value="male"/>
<enumeration value="female"/>
</restriction>
</simpleType>
</schema>