You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Martin Thomson (JIRA)" <xe...@xml.apache.org> on 2006/02/24 06:53:38 UTC

[jira] Created: (XERCESJ-1139) Validation of an optional substituted element in a restriction fails

Validation of an optional substituted element in a restriction fails
--------------------------------------------------------------------

         Key: XERCESJ-1139
         URL: http://issues.apache.org/jira/browse/XERCESJ-1139
     Project: Xerces2-J
        Type: Bug
  Components: XML Schema Structures  
    Versions: 2.7.1    
 Environment: Java [1.]5
    Reporter: Martin Thomson


Xerces fails to validate when an optional element is replaced by one in its substitution group in a restriction.  With a standalone element, this fails with the claim that there is not a complete mapping between particles.

That is, where X2 is a restriction of X1 and Y2 is substitutable for Y1, the following results in the rcase-RecurseLax.2 error:

X1 = (Y1?)
X2 = (Y2?)

The following also causes a rcase-Recurse.2 error:

X1 = (Y1?, Z)
X2 = (Y2?, Z)

The following are accepted:

X2 = (Y1?)
X2 = (Y2)

However, if I add Y3 (substitutable for Y2), the last also fails.

XSV (http://www.w3.org/2001/03/webdata/xsv) validates the schema successfully.

The only related issues I could find were XERCESJ-1066 (yes, mine) and XERCESJ-922, but I think that those are different.  Although, like these issues, I think that this is related to the way that choices are introduced and subsequently collapsed.


-- Test Schema
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="urn:subs" xmlns="urn:subs"
            xmlns:subs="urn:subs"
            elementFormDefault="qualified">

  <xsd:element name="Y1" type="xsd:anyType"/>
  <xsd:element name="Y2" type="xsd:anyType" substitutionGroup="Y1"/>
  <xsd:element name="Y3" type="xsd:anyType" substitutionGroup="Y2"/>

  <xsd:element name="X1" type="x1"/>
  <xsd:complexType name="x1">
    <xsd:complexContent>
      <xsd:restriction base="xsd:anyType">
        <xsd:sequence>
          <xsd:element ref="Y1" minOccurs="0"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <!-- Xerces Error -->
  <xsd:element name="X2-a" type="x2-a"/>
  <xsd:complexType name="x2-a">
    <xsd:complexContent>
      <xsd:restriction base="x1">
        <xsd:sequence>
          <xsd:element ref="Y2" minOccurs="0"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:element name="X2-b" type="x2-b"/>
  <xsd:complexType name="x2-b">
    <xsd:complexContent>
      <xsd:restriction base="x1">
        <xsd:sequence>
          <xsd:element ref="Y1" minOccurs="0"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <!-- Xerces Error -->
  <xsd:element name="X2-c" type="x2-c"/>
  <xsd:complexType name="x2-c">
    <xsd:complexContent>
      <xsd:restriction base="x1">
        <xsd:sequence>
          <xsd:element ref="Y2"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:element name="X2-d" type="x2-d"/>
  <xsd:complexType name="x2-d">
    <xsd:complexContent>
      <xsd:restriction base="x1">
        <xsd:sequence>
          <xsd:element ref="Y3"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>

</xsd:schema>


-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org


[jira] Assigned: (XERCESJ-1139) Validation of an optional substituted element in a restriction fails

Posted by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org>.
     [ http://issues.apache.org/jira/browse/XERCESJ-1139?page=all ]

Michael Glavassevich reassigned XERCESJ-1139:
---------------------------------------------

    Assign To: Sandy Gao

> Validation of an optional substituted element in a restriction fails
> --------------------------------------------------------------------
>
>          Key: XERCESJ-1139
>          URL: http://issues.apache.org/jira/browse/XERCESJ-1139
>      Project: Xerces2-J
>         Type: Bug
>   Components: XML Schema Structures
>     Versions: 2.7.1
>  Environment: Java [1.]5
>     Reporter: Martin Thomson
>     Assignee: Sandy Gao

>
> Xerces fails to validate when an optional element is replaced by one in its substitution group in a restriction.  With a standalone element, this fails with the claim that there is not a complete mapping between particles.
> That is, where X2 is a restriction of X1 and Y2 is substitutable for Y1, the following results in the rcase-RecurseLax.2 error:
> X1 = (Y1?)
> X2 = (Y2?)
> The following also causes a rcase-Recurse.2 error:
> X1 = (Y1?, Z)
> X2 = (Y2?, Z)
> The following are accepted:
> X2 = (Y1?)
> X2 = (Y2)
> However, if I add Y3 (substitutable for Y2), the last also fails.
> XSV (http://www.w3.org/2001/03/webdata/xsv) validates the schema successfully.
> The only related issues I could find were XERCESJ-1066 (yes, mine) and XERCESJ-922, but I think that those are different.  Although, like these issues, I think that this is related to the way that choices are introduced and subsequently collapsed.
> -- Test Schema
> <?xml version="1.0"?>
> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>             targetNamespace="urn:subs" xmlns="urn:subs"
>             xmlns:subs="urn:subs"
>             elementFormDefault="qualified">
>   <xsd:element name="Y1" type="xsd:anyType"/>
>   <xsd:element name="Y2" type="xsd:anyType" substitutionGroup="Y1"/>
>   <xsd:element name="Y3" type="xsd:anyType" substitutionGroup="Y2"/>
>   <xsd:element name="X1" type="x1"/>
>   <xsd:complexType name="x1">
>     <xsd:complexContent>
>       <xsd:restriction base="xsd:anyType">
>         <xsd:sequence>
>           <xsd:element ref="Y1" minOccurs="0"/>
>         </xsd:sequence>
>       </xsd:restriction>
>     </xsd:complexContent>
>   </xsd:complexType>
>   <!-- Xerces Error -->
>   <xsd:element name="X2-a" type="x2-a"/>
>   <xsd:complexType name="x2-a">
>     <xsd:complexContent>
>       <xsd:restriction base="x1">
>         <xsd:sequence>
>           <xsd:element ref="Y2" minOccurs="0"/>
>         </xsd:sequence>
>       </xsd:restriction>
>     </xsd:complexContent>
>   </xsd:complexType>
>   <xsd:element name="X2-b" type="x2-b"/>
>   <xsd:complexType name="x2-b">
>     <xsd:complexContent>
>       <xsd:restriction base="x1">
>         <xsd:sequence>
>           <xsd:element ref="Y1" minOccurs="0"/>
>         </xsd:sequence>
>       </xsd:restriction>
>     </xsd:complexContent>
>   </xsd:complexType>
>   <!-- Xerces Error -->
>   <xsd:element name="X2-c" type="x2-c"/>
>   <xsd:complexType name="x2-c">
>     <xsd:complexContent>
>       <xsd:restriction base="x1">
>         <xsd:sequence>
>           <xsd:element ref="Y2"/>
>         </xsd:sequence>
>       </xsd:restriction>
>     </xsd:complexContent>
>   </xsd:complexType>
>   <xsd:element name="X2-d" type="x2-d"/>
>   <xsd:complexType name="x2-d">
>     <xsd:complexContent>
>       <xsd:restriction base="x1">
>         <xsd:sequence>
>           <xsd:element ref="Y3"/>
>         </xsd:sequence>
>       </xsd:restriction>
>     </xsd:complexContent>
>   </xsd:complexType>
> </xsd:schema>

-- 
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
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org