Message:

  A new issue has been created in JIRA.

---------------------------------------------------------------------
View the issue:
  http://issues.apache.org/jira/browse/XERCESJ-1014

Here is an overview of the issue:
---------------------------------------------------------------------
        Key: XERCESJ-1014
    Summary: Error handling restriction of complex type
       Type: Bug

     Status: Unassigned
   Priority: Major

    Project: Xerces2-J
   Versions:
             2.5.0

   Assignee: 
   Reporter: Paul Spencer

    Created: Fri, 1 Oct 2004 2:22 AM
    Updated: Fri, 1 Oct 2004 2:22 AM
Environment: Win 2k using the Xerces option in rsXMLtest.

Description:
In the OASIS Election Markup Language (EML), the IncomingGenericCommunicationStructure 
data type using a restriction of the VoterIdentificationStructure. The restriction is 
to set the maxOccurs of an optional xs:choice to zero. This causes the error messages 
"rcase-Recurse.2: There is not a complete functional mapping between the particles." 
and "The particle of the type is not a valid restriction of the particle of the base." 
I don't think either of these messages is correct. The schemas look fine using XSV, 
MSV, MSXML4 SP2 and other validators.

The text below is a shortened version of the schema that shows the error. If I 
simplify it right down, it parses OK, so this is quite long.

I am the editor of the EML schemas, which are currently waiting to be released.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Paul Spencer 
(Boynings Consulting) -->
<xs:schema targetNamespace="urn:oasis:names:tc:evs:schema:eml" 
elementFormDefault="qualified" attributeFormDefault="unqualified" version="4.0" 
id="eml-core" xmlns:xs="http://www.w3.org/2001/XMLSchema"; 
xmlns:ts="urn:oasis:names:tc:evs:schema:eml:ts" 
xmlns:ds="http://www.w3.org/2000/09/xmldsig#"; 
xmlns="urn:oasis:names:tc:evs:schema:eml">
        <xs:complexType name="temp1">
                <xs:sequence>
                        <xs:element name="line" type="xs:token" maxOccurs="unbounded"/>
                </xs:sequence>
        </xs:complexType>
        <xs:element name="ContactDetails" type="ContactDetailsStructure"/>
        <xs:element name="ContestIdentifier" type="ContestIdentifierStructure"/>
        <xs:element name="ElectionIdentifier" type="ElectionIdentifierStructure"/>
        <xs:element name="ElectionStatement" type="MessagesStructure"/>
        <xs:element name="EventIdentifier" type="EventIdentifierStructure"/>
        <xs:element name="EventQualifier" type="EventQualifierStructure"/>
        <xs:element name="MessageType" type="MessageTypeType"/>
        <xs:element name="PersonName" type="xs:string"/>
        <xs:element name="PollingDistrict" type="PollingDistrictStructure"/>
        <xs:element name="PollingPlace" type="PollingPlaceStructure"/>
        <xs:element name="PreviousElectoralAddress" type="temp1"/>
        <xs:element name="ResponsibleOfficer" type="ResponsibleOfficerStructure"/>
        <xs:element name="VoterName" type="xs:string"/>
        <xs:element name="VotingChannel" type="VotingChannelType"/>
        <xs:element name="VotingMethod" type="VotingMethodType"/>
        <xs:element name="VToken" type="VTokenStructure"/>
        <xs:element name="VTokenQualified" type="VTokenQualifiedStructure"/>
        <xs:complexType name="ContactDetailsStructure">
                <xs:sequence>
                        <xs:element name="MailingAddress" type="temp1" minOccurs="0"/>
                        <xs:element name="Email" type="EmailStructure" minOccurs="0" 
maxOccurs="unbounded"/>
                        <xs:element name="Telephone" type="TelephoneStructure" 
minOccurs="0" maxOccurs="unbounded"/>
                        <xs:element name="Fax" type="TelephoneStructure" minOccurs="0" 
maxOccurs="unbounded"/>
                        <xs:element name="PreferredContact" type="xs:string" 
minOccurs="0"/>
                </xs:sequence>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
        </xs:complexType>
        <xs:complexType name="ContestIdentifierStructure">
                <xs:sequence>
                        <xs:element name="ContestName" type="xs:token" minOccurs="0"/>
                </xs:sequence>
                <xs:attributeGroup ref="DisplayIdMand"/>
                <xs:attribute name="ShortCode" type="ShortCodeType" use="optional"/>
        </xs:complexType>
        <xs:complexType name="ElectionGroupStructure">
                <xs:simpleContent>
                        <xs:extension base="xs:token">
                                <xs:attribute name="Id" type="xs:token" 
use="required"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="ElectionIdentifierStructure">
                <xs:sequence>
                        <xs:element name="ElectionName" type="xs:token" minOccurs="0"/>
                        <xs:element name="ElectionGroup" type="ElectionGroupStructure" 
minOccurs="0"/>
                        <xs:element name="ElectionCategory" type="xs:NMTOKEN" 
minOccurs="0"/>
                </xs:sequence>
                <xs:attributeGroup ref="DisplayIdMand"/>
                <xs:attribute name="ShortCode" type="ShortCodeType" use="optional"/>
        </xs:complexType>
        <xs:complexType name="EmailStructure">
                <xs:simpleContent>
                        <xs:extension base="EmailType">
                                <xs:attribute name="Preferred" type="YesNoType" 
use="optional"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="EventIdentifierStructure">
                <xs:sequence>
                        <xs:element name="EventName" type="xs:token" minOccurs="0"/>
                        <xs:element name="EventQualifier" 
type="EventQualifierStructure" minOccurs="0"/>
                </xs:sequence>
                <xs:attributeGroup ref="DisplayIdOpt"/>
        </xs:complexType>
        <xs:complexType name="EventQualifierStructure">
                <xs:simpleContent>
                        <xs:extension base="xs:token">
                                <xs:attribute name="Id" type="xs:NMTOKEN" 
use="optional"/>
                        </xs:extension>
                </xs:simpleContent>
        </xs:complexType>
        <xs:complexType name="IncomingGenericCommunicationStructure">
                <xs:sequence>
                        <xs:element name="Voter">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="VoterIdentification">
                                                        <xs:annotation>
                                                                
<xs:documentation>Restriction is to prohibit VToken and 
VTokenQualified</xs:documentation>
                                                        </xs:annotation>
                                                        <xs:complexType>
                                                                <xs:complexContent>
                                                                        
<xs:restriction base="VoterIdentificationStructure">
                                                                                
<xs:sequence>
                                                                                       
 <xs:element ref="VoterName" minOccurs="0"/>
                                                                                       
 <xs:element name="ElectoralAddress" type="temp1" minOccurs="0">
                                                                                       
         <xs:annotation>
                                                                                       
                 <xs:documentation>This is the address that gives the voter the right 
to vote</xs:documentation>
                                                                                       
         </xs:annotation>
                                                                                       
 </xs:element>
                                                                                       
 <xs:element name="PreviousElectoralAddress" type="temp1" minOccurs="0"/>
                                                                                       
 <xs:choice minOccurs="0" maxOccurs="0">
                                                                                       
         <xs:element ref="VToken"/>
                                                                                       
         <xs:element ref="VTokenQualified"/>
                                                                                       
 </xs:choice>
                                                                                       
 <xs:element name="Id" minOccurs="0" maxOccurs="unbounded">
                                                                                       
         <xs:complexType>
                                                                                       
                 <xs:simpleContent>
                                                                                       
                         <xs:extension base="xs:token">
                                                                                       
                                 <xs:attribute name="Type" type="xs:token" 
use="required"/>
                                                                                       
                         </xs:extension>
                                                                                       
                 </xs:simpleContent>
                                                                                       
         </xs:complexType>
                                                                                       
 </xs:element>
                                                                                
</xs:sequence>
                                                                        
</xs:restriction>
                                                                </xs:complexContent>
                                                        </xs:complexType>
                                                </xs:element>
                                                <xs:element name="VoterContact" 
type="ContactDetailsStructure"/>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                        <xs:element name="Recipient" 
type="ResponsibleOfficerStructure" minOccurs="0"/>
                        <xs:element ref="EventIdentifier" minOccurs="0"/>
                        <xs:element ref="ElectionIdentifier" minOccurs="0"/>
                        <xs:element ref="ContestIdentifier" minOccurs="0"/>
                        <xs:element name="Messages" type="MessagesStructure" 
minOccurs="0"/>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="MessagesStructure">
                <xs:sequence>
                        <xs:element name="Message" maxOccurs="unbounded">
                                <xs:complexType mixed="true">
                                        <xs:sequence>
                                                <xs:any namespace="##other" 
processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
                                        </xs:sequence>
                                        <xs:attribute name="Format" type="xs:NMTOKEN" 
use="optional"/>
                                        <xs:attribute name="Type" type="xs:token" 
use="optional"/>
                                        <xs:attribute name="Lang" type="LanguageType" 
use="optional"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
        </xs:complexType>
        <xs:complexType name="PollingDistrictStructure">
                <xs:sequence>
                        <xs:element name="Name" minOccurs="0"/>
                        <xs:element name="Association" minOccurs="0" 
maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:attribute name="Type" type="xs:token" 
use="required"/>
                                        <xs:attributeGroup ref="DisplayIdOpt"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attributeGroup ref="DisplayIdOpt"/>
        </xs:complexType>
        <xs:complexType name="PollingPlaceStructure">
                <xs:sequence>
                        <xs:choice>
                                <xs:element name="PhysicalLocation">
                                        <xs:complexType>
                                                <xs:sequence>
                                                        <xs:element name="Address" 
type="temp1"/>
                                                        <xs:element 
name="PollingStation" minOccurs="0" maxOccurs="unbounded">
                                                                <xs:complexType>
                                                                        
<xs:simpleContent>
                                                                                
<xs:extension base="xs:token">
                                                                                       
 <xs:attribute name="Id" type="xs:NMTOKEN" use="optional"/>
                                                                                
</xs:extension>
                                                                        
</xs:simpleContent>
                                                                </xs:complexType>
                                                        </xs:element>
                                                </xs:sequence>
                                                <xs:attribute name="Id" 
type="xs:NMTOKEN" use="optional"/>
                                        </xs:complexType>
                                </xs:element>
                                <xs:element name="PostalLocation">
                                        <xs:complexType>
                                                <xs:complexContent>
                                                        <xs:extension base="temp1">
                                                                <xs:attributeGroup 
ref="DisplayIdOpt"/>
                                                        </xs:extension>
                                                </xs:complexContent>
                                        </xs:complexType>
                                </xs:element>
                                <xs:element name="ElectronicLocation">
                                        <xs:complexType>
                                                <xs:simpleContent>
                                                        <xs:extension base="xs:token">
                                                                <xs:attributeGroup 
ref="DisplayIdOpt"/>
                                                        </xs:extension>
                                                </xs:simpleContent>
                                        </xs:complexType>
                                </xs:element>
                                <xs:element name="OtherLocation">
                                        <xs:complexType>
                                                <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                                <xs:attributeGroup 
ref="DisplayIdOpt"/>
                                                        </xs:extension>
                                                </xs:simpleContent>
                                        </xs:complexType>
                                </xs:element>
                        </xs:choice>
                        <xs:element name="TimeAvailable" minOccurs="0" 
maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:sequence>
                                                <xs:element name="Start" 
type="xs:dateTime"/>
                                                <xs:element name="End" 
type="xs:dateTime"/>
                                        </xs:sequence>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute name="Channel" type="VotingChannelType" use="required"/>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
        </xs:complexType>
        <xs:complexType name="ResponsibleOfficerStructure">
                <xs:sequence>
                        <xs:choice>
                                <xs:sequence>
                                        <xs:element name="Responsibility" 
type="xs:token"/>
                                        <xs:element name="Name" type="xs:string" 
minOccurs="0"/>
                                </xs:sequence>
                                <xs:element name="Name" type="xs:string"/>
                        </xs:choice>
                        <xs:element name="Contact" type="ContactDetailsStructure" 
minOccurs="0"/>
                </xs:sequence>
                <xs:attribute name="Id" type="xs:NMTOKEN" use="optional"/>
        </xs:complexType>
        <xs:complexType name="TelephoneStructure">
                <xs:sequence>
                        <xs:element name="Number" type="TelephoneNumberType"/>
                        <xs:element name="Extension" minOccurs="0">
                                <xs:simpleType>
                                        <xs:restriction base="xs:token">
                                                <xs:maxLength value="6"/>
                                                <xs:minLength value="1"/>
                                                <xs:pattern value="[0-9]{1,6}"/>
                                        </xs:restriction>
                                </xs:simpleType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute name="Preferred" type="YesNoType" use="optional"/>
                <xs:attribute name="Mobile" type="YesNoType" use="optional"/>
        </xs:complexType>
        <xs:complexType name="VoterIdentificationStructure">
                <xs:sequence>
                        <xs:element ref="VoterName" minOccurs="0"/>
                        <xs:element name="ElectoralAddress" type="temp1" minOccurs="0">
                                <xs:annotation>
                                        <xs:documentation>This is the address that 
gives the voter the right to vote</xs:documentation>
                                </xs:annotation>
                        </xs:element>
                        <xs:element name="PreviousElectoralAddress" type="temp1" 
minOccurs="0"/>
                        <xs:choice minOccurs="0">
                                <xs:element ref="VToken"/>
                                <xs:element ref="VTokenQualified"/>
                        </xs:choice>
                        <xs:element name="Id" minOccurs="0" maxOccurs="unbounded">
                                <xs:complexType>
                                        <xs:simpleContent>
                                                <xs:extension base="xs:token">
                                                        <xs:attribute name="Type" 
type="xs:token" use="required"/>
                                                </xs:extension>
                                        </xs:simpleContent>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
                <xs:attribute name="Id" type="xs:NMTOKEN" use="optional"/>
        </xs:complexType>
        <xs:complexType name="VTokenStructure">
                <xs:sequence>
                        <xs:element name="Component" maxOccurs="unbounded">
                                <xs:complexType mixed="true">
                                        <xs:sequence>
                                                <xs:any namespace="##other" 
minOccurs="0"/>
                                        </xs:sequence>
                                        <xs:attribute name="Type" type="xs:NMTOKEN" 
use="required"/>
                                </xs:complexType>
                        </xs:element>
                </xs:sequence>
        </xs:complexType>
        <xs:complexType name="VTokenQualifiedStructure">
                <xs:complexContent>
                        <xs:extension base="VTokenStructure">
                                <xs:sequence>
                                        <xs:element name="Reason">
                                                <xs:complexType>
                                                        <xs:simpleContent>
                                                                <xs:extension 
base="xs:token">
                                                                        <xs:attribute 
name="Type" type="xs:token" use="required"/>
                                                                </xs:extension>
                                                        </xs:simpleContent>
                                                </xs:complexType>
                                        </xs:element>
                                        <xs:element ref="VToken" minOccurs="0"/>
                                </xs:sequence>
                        </xs:extension>
                </xs:complexContent>
        </xs:complexType>
        <xs:simpleType name="DateType">
                <xs:union memberTypes="xs:date xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType name="EmailType">
                <xs:restriction base="xs:token">
                        <xs:maxLength value="129"/>
                        <xs:pattern value="[EMAIL PROTECTED]@[EMAIL PROTECTED]"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="GenderType">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="male"/>
                        <xs:enumeration value="female"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="LanguageType">
                <xs:restriction base="xs:language"/>
        </xs:simpleType>
        <xs:simpleType name="MessageTypeType">
                <xs:restriction base="xs:NMTOKEN"/>
        </xs:simpleType>
        <xs:simpleType name="ShortCodeType">
                <xs:restriction base="xs:NMTOKEN"/>
        </xs:simpleType>
        <xs:simpleType name="TelephoneNumberType">
                <xs:restriction base="xs:token">
                        <xs:maxLength value="35"/>
                        <xs:minLength value="1"/>
                        <xs:pattern value="\+?[0-9\(\)\-\s]{1,35}"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="VotingChannelType">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="SMS"/>
                        <xs:enumeration value="WAP"/>
                        <xs:enumeration value="digitalTV"/>
                        <xs:enumeration value="internet"/>
                        <xs:enumeration value="kiosk"/>
                        <xs:enumeration value="polling"/>
                        <xs:enumeration value="postal"/>
                        <xs:enumeration value="telephone"/>
                        <xs:enumeration value="other"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="VotingMethodType">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="AMS"/>
                        <xs:enumeration value="FPP"/>
                        <xs:enumeration value="OPV"/>
                        <xs:enumeration value="SPV"/>
                        <xs:enumeration value="STV"/>
                        <xs:enumeration value="approval"/>
                        <xs:enumeration value="block"/>
                        <xs:enumeration value="partylist"/>
                        <xs:enumeration value="supplementaryvote"/>
                        <xs:enumeration value="other"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:simpleType name="VotingValueType">
                <xs:annotation>
                        <xs:documentation>The weight or preference applied to a 
selection</xs:documentation>
                </xs:annotation>
                <xs:restriction base="xs:positiveInteger"/>
        </xs:simpleType>
        <xs:simpleType name="YesNoType">
                <xs:restriction base="xs:token">
                        <xs:enumeration value="no"/>
                        <xs:enumeration value="yes"/>
                </xs:restriction>
        </xs:simpleType>
        <xs:attributeGroup name="DisplayIdMand">
                <xs:attribute name="Id" type="xs:NMTOKEN" use="required"/>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
        </xs:attributeGroup>
        <xs:attributeGroup name="DisplayIdOpt">
                <xs:attribute name="Id" type="xs:NMTOKEN" use="optional"/>
                <xs:attribute name="DisplayOrder" type="xs:positiveInteger" 
use="optional"/>
        </xs:attributeGroup>
</xs:schema>




---------------------------------------------------------------------
JIRA INFORMATION:
This message is automatically generated by JIRA.

If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa

If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to