Author: amassari
Date: Fri Aug 14 13:44:26 2009
New Revision: 804226
URL: http://svn.apache.org/viewvc?rev=804226&view=rev
Log:
Ignore the lax directive if an element has an xsi:type directive (XERCESC-1707)
Added:
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xml
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xsd
Modified:
xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp
xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
xerces/c/trunk/src/xercesc/internal/XSAXMLScanner.cpp
xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
Modified: xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp?rev=804226&r1=804225&r2=804226&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/IGXMLScanner.cpp Fri Aug 14 13:44:26
2009
@@ -2406,7 +2406,7 @@
bool bXsiTypeSet= (fValidator && fGrammarType ==
Grammar::SchemaGrammarType)?((SchemaValidator*)fValidator)->getIsXsiTypeSet():false;
if (wasAdded)
{
- if (laxThisOne) {
+ if (laxThisOne && !bXsiTypeSet) {
fValidate = false;
fElemStack.setValidationFlag(fValidate);
}
Modified: xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp?rev=804226&r1=804225&r2=804226&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp Fri Aug 14 13:44:26
2009
@@ -1427,7 +1427,7 @@
bool bXsiTypeSet=
(fValidator)?((SchemaValidator*)fValidator)->getIsXsiTypeSet():false;
if (wasAdded)
{
- if (laxThisOne) {
+ if (laxThisOne && !bXsiTypeSet) {
fValidate = false;
fElemStack.setValidationFlag(fValidate);
}
Modified: xerces/c/trunk/src/xercesc/internal/XSAXMLScanner.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/internal/XSAXMLScanner.cpp?rev=804226&r1=804225&r2=804226&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/XSAXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/XSAXMLScanner.cpp Fri Aug 14 13:44:26
2009
@@ -346,7 +346,7 @@
bool bXsiTypeSet=
(fValidator)?((SchemaValidator*)fValidator)->getIsXsiTypeSet():false;
if (wasAdded || !elemDecl->isDeclared())
{
- if (laxThisOne) {
+ if (laxThisOne && !bXsiTypeSet) {
fValidate = false;
fElemStack.setValidationFlag(fValidate);
}
Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xml
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xml?rev=804226&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xml
(added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xml Fri
Aug 14 13:44:26 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<purchaseOrder xmlns="http://www.openuri.org/mySchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.openuri.org/mySchema test.xsd">
+ <shipTo>
+ <name>ship-to-name</name>
+ <element_of_any_type>
+ <unknown_element xsi:type="USState">AK</unknown_element>
+ </element_of_any_type>
+ </shipTo>
+ <billTo>
+ <name>bill-to-name</name>
+ <element_of_any_type/>
+ </billTo>
+</purchaseOrder>
\ No newline at end of file
Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xsd
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xsd?rev=804226&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xsd
(added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1707/test.xsd Fri
Aug 14 13:44:26 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns="http://www.openuri.org/mySchema"
elementFormDefault="qualified"
targetNamespace="http://www.openuri.org/mySchema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
+ <xsd:complexType name="PurchaseOrderType">
+ <xsd:sequence>
+ <xsd:element name="shipTo" type="USAddress"/>
+ <xsd:element name="billTo" type="USAddress"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="USAddress">
+ <xsd:sequence>
+ <xsd:element name="name" type="xsd:string"/>
+ <xsd:element name="element_of_any_type"/>
+ </xsd:sequence>
+ <!-- declaration of this attribute is necessary to reproduce -->
+ <xsd:attribute fixed="US" name="country" type="xsd:NMTOKEN"/>
+ </xsd:complexType>
+ <xsd:simpleType name="USState">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="AK"/>
+ <xsd:enumeration value="AL"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+</xsd:schema>
\ No newline at end of file
Modified: xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet?rev=804226&r1=804225&r2=804226&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Fri Aug 14
13:44:26 2009
@@ -433,6 +433,22 @@
<current status="accepted" date="2008-02-13"/>
</instanceTest>
</testGroup>
+ <testGroup name="XERCESC-1707">
+ <annotation>
+ <documentation>Processing of not-declared-element with
"xsi:type" under anyType element does not clear
SchemaValidator::fXsiType</documentation>
+ </annotation>
+ <documentationReference
xlink:href="https://issues.apache.org/jira/browse/XERCESC-1707"/>
+ <schemaTest name="XERCESC-1707">
+ <schemaDocument xlink:href="./XERCESC-1707/test.xsd"/>
+ <expected validity="valid"/>
+ <current status="accepted" date="2009-08-14"/>
+ </schemaTest>
+ <instanceTest name="XERCESC-1707-1">
+ <instanceDocument xlink:href="./XERCESC-1707/test.xml"/>
+ <expected validity="valid"/>
+ <current status="accepted" date="2009-08-14"/>
+ </instanceTest>
+ </testGroup>
<testGroup name="XERCESC-1714">
<annotation>
<documentation>xerces-c reports "Base type definition
does not have any attributes" for a valid complex type
restriction</documentation>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]