[Crisp] RFC 3982 dreg1 error report
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Crisp] RFC 3982 dreg1 error report



Thanks to Marcos for the reply. 

For Marcos and/or Andy, I have attached a copy of dreg1.xsd that I parsed
from RFC 3982. Other than non-substantive changes in white space on
re-formatting, the only modification that I made was the addition of the
attribute-value pair schemaLocation="iris1.xsd" to the import tag so that
iris1.xsd could be referenced by dreg1.xsd on the validation tests. I did
tests in both Stylus Studio and XMLSpy.

(1) Stylus Studio 2008 Build 1050d returned the following validation error:

dreg1.xsd:172,35: Duplicate element decl in the same scope: endsWith

(2) Altova XMLSpy 2008 sp1 returned the following validation error:

dreg1.xsd could not be validated because of an error in XML Schema/DTD (see
below)
	Element 'dreg:endsWith' is not consistent with element
'dreg:endsWith'

Please advise on recommended corrections for a revised version of dreg.
Thanks very much,

CT

-------------------------
Carl Taswell
Cel: 916-616-4939
Tel: 949-481-3121


<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"; xmlns:dreg="urn:ietf:params:xml:ns:dreg1" xmlns:iris="urn:ietf:params:xml:ns:iris1" targetNamespace="urn:ietf:params:xml:ns:dreg1" elementFormDefault="qualified">
   <import namespace="urn:ietf:params:xml:ns:iris1" schemaLocation="iris1.xsd"/>
   <annotation>
      <documentation>Domain registry schema
         derived from IRIS schema</documentation>
   </annotation>
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Query Types                               -->
   <!--                                           -->
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Find Registrars By Name                   -->
   <!--                                           -->
   <complexType name="findRegistrarsByNameType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <element ref="dreg:baseDomain" minOccurs="0" maxOccurs="1"/>
               <element name="namePart" type="dreg:exactOrPartialMatchParameter" minOccurs="0" maxOccurs="1"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findRegistrarsByName" type="dreg:findRegistrarsByNameType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Find Domains By Contact                   -->
   <!--                                           -->
   <complexType name="findDomainsByContactType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <element ref="dreg:baseDomain" minOccurs="0" maxOccurs="1"/>
               <choice>
                  <group ref="dreg:contactSearchGroup"/>
                  <element name="contactHandle" type="dreg:exactMatchParameter"/>
               </choice>
               <element name="role" minOccurs="0" maxOccurs="1">
                  <simpleType>
                     <restriction base="string">
                        <enumeration value="registrant"/>
                        <enumeration value="billingContact"/>
                        <enumeration value="technicalContact"/>
                        <enumeration value="administrativeContact"/>
                        <enumeration value="legalContact"/>
                        <enumeration value="zoneContact"/>
                        <enumeration value="abuseContact"/>
                        <enumeration value="securityContact"/>
                        <enumeration value="otherContact"/>
                     </restriction>
                  </simpleType>
               </element>
               <element name="language" type="language" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findDomainsByContact" type="dreg:findDomainsByContactType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Find Domains By Name                      -->
   <!--                                           -->
   <complexType name="findDomainsByNameType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <element name="namePart" type="dreg:partialMatchParameter"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findDomainsByName" type="dreg:findDomainsByNameType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Find Domains By Internationalized Name    -->
   <!--                                           -->
   <complexType name="findDomainsByIDNType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <element name="namePart" type="dreg:exactMatchParameter"/>
               <element name="language" type="language" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findDomainsByIDN" type="dreg:findDomainsByIDNType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Find Contacts                             -->
   <!--                                           -->
   <complexType name="findContactsType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <group ref="dreg:contactSearchGroup"/>
               <element name="language" type="language" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findContacts" type="dreg:findContactsType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Find Domains By Host                      -->
   <!--                                           -->
   <complexType name="findDomainsByHostType">
      <complexContent>
         <extension base="iris:queryType">
            <sequence>
               <element ref="dreg:baseDomain" minOccurs="0" maxOccurs="1"/>
               <choice>
                  <element name="hostName" type="dreg:exactMatchParameter"/>
                  <element name="hostHandle" type="dreg:exactMatchParameter"/>
                  <element name="ipV4Address" type="dreg:exactMatchParameter"/>
                  <element name="ipV6Address" type="dreg:exactMatchParameter"/>
               </choice>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="findDomainsByHost" type="dreg:findDomainsByHostType" substitutionGroup="iris:query"/>
   <!--                                           -->
   <!-- Contact Search Group                      -->
   <!--                                           -->
   <group name="contactSearchGroup">
      <choice>
         <element name="commonName" type="dreg:exactOrPartialMatchParameter"/>
         <element name="organization" type="dreg:exactOrPartialMatchParameter"/>
         <element name="eMail" type="dreg:domainResourceParameter"/>
         <element name="city" type="dreg:exactMatchParameter"/>
         <element name="region" type="dreg:exactMatchParameter"/>
         <element name="postalCode" type="dreg:exactMatchParameter"/>
      </choice>
   </group>
   <complexType name="exactOrPartialMatchParameter">
      <choice>
         <group ref="dreg:partialMatchGroup"/>
         <group ref="dreg:exactMatchGroup"/>
      </choice>
   </complexType>
   <complexType name="exactMatchParameter">
      <group ref="dreg:exactMatchGroup"/>
   </complexType>
   <complexType name="partialMatchParameter">
      <sequence>
         <group ref="dreg:partialMatchGroup"/>
      </sequence>
   </complexType>
   <complexType name="domainResourceParameter">
      <choice>
         <group ref="dreg:exactMatchGroup"/>
         <element name="inDomain" type="token"/>
      </choice>
   </complexType>
   <element name="baseDomain" type="normalizedString"/>
   <group name="partialMatchGroup">
      <choice>
         <sequence>
            <element name="beginsWith">
               <simpleType>
                  <restriction base="token">
                     <minLength value="1"/>
                  </restriction>
               </simpleType>
            </element>
            <element name="endsWith" minOccurs="0">
               <simpleType>
                  <restriction base="token">
                     <minLength value="1"/>
                  </restriction>
               </simpleType>
            </element>
         </sequence>
         <element name="endsWith">
            <simpleType>
               <restriction base="token">
                  <minLength value="1"/>
               </restriction>
            </simpleType>
         </element>
      </choice>
   </group>
   <group name="exactMatchGroup">
      <sequence>
         <element name="exactMatch" type="normalizedString"/>
      </sequence>
   </group>
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Result Types                              -->
   <!--                                           -->
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Domain                                    -->
   <!--                                           -->
   <complexType name="domainType">
      <complexContent>
         <extension base="iris:resultType">
            <sequence>
               <element name="domainName" type="token"/>
               <element name="idn" type="token" minOccurs="0" maxOccurs="1"/>
               <element name="domainHandle" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="nameServer" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="registrant" type="iris:entityType" minOccurs="0" maxOccurs="1"/>
               <element name="billingContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="technicalContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="administrativeContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="legalContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="zoneContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="abuseContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="securityContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="otherContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="lastContactModificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastContactModificationBy" type="iris:entityType" minOccurs="0" maxOccurs="1"/>
               <element name="status" minOccurs="0" maxOccurs="1">
                  <complexType>
                     <all>
                        <element name="reservedDelegation" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="assignedAndActive" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="assignedAndInactive" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="assignedAndOnHold" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="revoked" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="transferPending" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="registryLock" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="registrarLock" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                        <element name="other" type="dreg:domainStatusType" minOccurs="0" maxOccurs="1"/>
                     </all>
                  </complexType>
               </element>
               <element name="domainVariant" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="registrationReference" type="iris:entityType" minOccurs="0" maxOccurs="1"/>
               <element name="registry" minOccurs="0" maxOccurs="1">
                  <complexType>
                     <complexContent>
                        <extension base="iris:entityType">
                           <attribute name="hosting" type="boolean"/>
                        </extension>
                     </complexContent>
                  </complexType>
               </element>
               <element name="registrar" minOccurs="0" maxOccurs="1">
                  <complexType>
                     <complexContent>
                        <extension base="iris:entityType">
                           <attribute name="hosting" type="boolean"/>
                        </extension>
                     </complexContent>
                  </complexType>
               </element>
               <element name="initialDelegationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastRenewalDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="expirationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastDelegationModificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastDelegationModificationBy" type="iris:entityType" minOccurs="0" maxOccurs="1"/>
               <element name="lastVerificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element ref="iris:seeAlso" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="domain" type="dreg:domainType" substitutionGroup="iris:result"/>
   <!--                                           -->
   <!-- Host                                      -->
   <!--                                           -->
   <complexType name="hostType">
      <complexContent>
         <extension base="iris:resultType">
            <sequence>
               <element name="hostHandle" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="hostName" type="normalizedString"/>
               <element name="ipV4Address" type="token" minOccurs="0" maxOccurs="unbounded"/>
               <element name="ipV6Address" type="token" minOccurs="0" maxOccurs="unbounded"/>
               <element name="hostContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element name="createdDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastModificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastVerificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element ref="iris:seeAlso" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="host" type="dreg:hostType" substitutionGroup="iris:result"/>
   <!--                                           -->
   <!-- Contact                                   -->
   <!--                                           -->
   <complexType name="contactType">
      <complexContent>
         <extension base="iris:resultType">
            <sequence>
               <element name="contactHandle" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="commonName" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="language" type="language" minOccurs="0" maxOccurs="1"/>
               <element name="type" minOccurs="0" maxOccurs="1">
                  <complexType>
                     <choice>
                        <element name="person" type="dreg:contactTypeType"/>
                        <element name="organization" type="dreg:contactTypeType"/>
                        <element name="role" type="dreg:contactTypeType"/>
                        <element name="other" type="dreg:contactTypeType"/>
                     </choice>
                  </complexType>
               </element>
               <element name="organization" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="eMail" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
               <element name="IDNeMail" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
               <element name="sip" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
               <element name="postalAddress" minOccurs="0" maxOccurs="unbounded">
                  <complexType>
                     <sequence>
                        <element name="address" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
                        <element name="city" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
                        <element name="region" type="dreg:stringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
                        <element name="postalCode" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
                        <element name="country" type="dreg:tokenPrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
                     </sequence>
                  </complexType>
               </element>
               <element name="phone" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
               <element name="fax" type="dreg:normalizedStringPrivacyType" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
               <element name="createdDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastModificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="lastVerificationDateTime" type="dreg:dateTimePrivacyType" nillable="true" minOccurs="0" maxOccurs="1"/>
               <element name="translatedContact" type="iris:entityType" minOccurs="0" maxOccurs="unbounded"/>
               <element ref="iris:seeAlso" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="contact" type="dreg:contactType" substitutionGroup="iris:result"/>
   <!--                                           -->
   <!-- Registration Authority                    -->
   <!--                                           -->
   <complexType name="registrationAuthorityType">
      <complexContent>
         <extension base="iris:resultType">
            <sequence>
               <element name="serviceInstance" type="iris:entityType" minOccurs="0" maxOccurs="1"/>
               <element name="organizationName" type="string" minOccurs="0" maxOccurs="1"/>
               <choice minOccurs="0" maxOccurs="3">
                  <element name="registry">
                     <complexType/>
                  </element>
                  <element name="registrar">
                     <complexType/>
                  </element>
                  <element name="other">
                     <complexType/>
                  </element>
               </choice>
               <element name="domain" type="token" minOccurs="0" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="registrationAuthority" type="dreg:registrationAuthorityType" substitutionGroup="iris:result"/>
   <!--                                           -->
   <!-- Privacy Label Types                       -->
   <!--                                           -->
   <attributeGroup name="privacyLabelAttributeGroup">
      <attribute name="private" type="boolean"/>
      <attribute name="denied" type="boolean"/>
      <attribute name="doNotRedistribute" type="boolean"/>
      <attribute name="specialAccess" type="boolean"/>
   </attributeGroup>
   <complexType name="dateTimePrivacyType">
      <simpleContent>
         <extension base="dateTime">
            <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
         </extension>
      </simpleContent>
   </complexType>
   <complexType name="stringPrivacyType">
      <simpleContent>
         <extension base="string">
            <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
         </extension>
      </simpleContent>
   </complexType>
   <complexType name="normalizedStringPrivacyType">
      <simpleContent>
         <extension base="normalizedString">
            <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
         </extension>
      </simpleContent>
   </complexType>
   <complexType name="tokenPrivacyType">
      <simpleContent>
         <extension base="token">
            <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
         </extension>
      </simpleContent>
   </complexType>
   <complexType name="domainStatusType">
      <sequence>
         <element name="appliedDate" type="dateTime" minOccurs="0" maxOccurs="1"/>
         <element name="description" minOccurs="0" maxOccurs="unbounded">
            <complexType>
               <simpleContent>
                  <extension base="string">
                     <attribute name="language" type="language" use="required"/>
                  </extension>
               </simpleContent>
            </complexType>
         </element>
      </sequence>
      <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
      <attribute name="scope" type="string"/>
   </complexType>
   <complexType name="contactTypeType">
      <sequence>
         <element name="description" minOccurs="0" maxOccurs="unbounded">
            <complexType>
               <simpleContent>
                  <extension base="string">
                     <attribute name="language" type="language" use="required"/>
                  </extension>
               </simpleContent>
            </complexType>
         </element>
      </sequence>
      <attributeGroup ref="dreg:privacyLabelAttributeGroup"/>
   </complexType>
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Error Codes                               -->
   <!--                                           -->
   <!-- ========================================= -->
   <!--                                           -->
   <!-- Search Too Wide                           -->
   <!--                                           -->
   <element name="searchTooWide" type="iris:codeType" substitutionGroup="iris:genericCode"/>
   <!--                                           -->
   <!-- Language Not Supported                    -->
   <!--                                           -->
   <complexType name="languageNotSupportedType">
      <complexContent>
         <extension base="iris:codeType">
            <sequence>
               <element name="unsupportedLanguage" type="language" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
         </extension>
      </complexContent>
   </complexType>
   <element name="languageNotSupported" type="dreg:languageNotSupportedType" substitutionGroup="iris:genericCode"/>
</schema>
_______________________________________________
Crisp mailing list
Crisp at ietf.org
https://www1.ietf.org/mailman/listinfo/crisp

Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.