[ 
https://issues.apache.org/jira/browse/XERCESJ-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jorge L. Williams reopened XERCESJ-1559:
----------------------------------------


Please reconsider the latest fix and instead enforce assertion on an undeclared 
element.

I don't believe that the element must be explicitly declared if xsi:type is 
used.

I'm not an expert, but please see: http://www.w3.org/TR/xmlschema-1/

In particular: see Validation Rule: Schema-Validity Assessment (Element). 

Note that there are two clauses.

1.1 (http://www.w3.org/TR/xmlschema-1/#c-ed) and
1.2 (http://www.w3.org/TR/xmlschema-1/#c-td) 

Note that:

" In general if clause 1.1 above holds clause 1.2 does not, and vice versa. 
When an xsi:type [attribute] is involved, however, clause 1.2 takes precedence"

A "non-·absent· element declaration" is part of the 1.1 clause".  And, I 
beleive therefore that an element declaration may be absent if 1.2 holds.

Also note that the SaxonEE implementation (we're using 9.3)  ignores the fact 
that the root element hasn't been declared in both XSD 1.0 and 1.1 modes. 

Also, your older implementations ignored the fact that the element hasn't been 
declared as well.

We've come to rely on this behavior.
                
> absence of XML root element declaration is ignored, to determine XSD validity 
> when xsi:type is used on an root XML element instance
> -----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: XERCESJ-1559
>                 URL: https://issues.apache.org/jira/browse/XERCESJ-1559
>             Project: Xerces2-J
>          Issue Type: Bug
>          Components: XML Schema 1.0 Datatypes, XML Schema 1.1 Datatypes
>    Affects Versions: 2.11.0
>            Reporter: Jorge L. Williams
>            Assignee: Mukul Gandhi
>
> In the latest XSD 1.1 branch,  it looks like simple type assertions are not 
> being enforced when the type is specified via the xsi:type attribute.  I'm 
> attaching a schema and instance documents as a reference.
> If I do
> java -cp $CLASSPATH jaxp.SourceValidator  -fx -xsd11 -a  assertion.xsd -i 
> even_bad.xml 
> I get a correct error, but if I do
> java -cp $CLASSPATH jaxp.SourceValidator  -fx -xsd11 -a  assertion.xsd -i 
> number_bad.xml 
> I don't get an error at all.
> assertion.xsd:
> ---------------------
> <schema
>     elementFormDefault="qualified"
>     attributeFormDefault="unqualified"
>     xmlns="http://www.w3.org/2001/XMLSchema";
>     xmlns:xsd="http://www.w3.org/2001/XMLSchema";
>     xmlns:tst="http://www.rackspace.com/test/assertion";
>     targetNamespace="http://www.rackspace.com/test/assertion";>
>     <element name="even" type="tst:Even"/>
>     <!-- Simple Types -->
>     <simpleType name="Even">
>         <restriction base="xsd:int">
>             <minInclusive value="0"/>
>             <maxInclusive value="100"/>
>             <assertion test="$value mod 2 = 0"/>
>         </restriction>
>     </simpleType>
> </schema>
> -------------
> even_bad.xml
> -----------
> <even xmlns="http://www.rackspace.com/test/assertion";>13</even>
> -----------
> number_bad.xml
> ------------
> <number xmlns:tst="http://www.rackspace.com/test/assertion";
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>         xsi:type="tst:Even"
>         >13</number>
> ------------

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to