svn commit: r1427171 - in /xerces/java/branches/xml-schema-1.1-dev: src/org/apache/xerces/impl/xs/ src/org/apache/xerces/impl/xs/assertion/ tools/

2012-12-31 Thread mukulg
Author: mukulg
Date: Mon Dec 31 16:41:17 2012
New Revision: 1427171

URL: http://svn.apache.org/viewvc?rev=1427171view=rev
Log:
schema 1.1 commit: 1) committing few fixes to assertions implementation. 
assertion xpath2 context variable $value now handles better the case, when it 
represents a value for simpleType which is a union of an atomic type and a list.
2) a new psychopath xpath2 jar is also provided, with corresponding 
improvements to computing typed value of a node (the codebase at Eclipse 
repository was also updated).

Modified:

xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java

xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2Value.java

xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2ValueImpl.java

xerces/java/branches/xml-schema-1.1-dev/tools/org.eclipse.wst.xml.xpath2.processor_1.2.0.jar

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java?rev=1427171r1=1427170r2=1427171view=diff
==
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java
 Mon Dec 31 16:41:17 2012
@@ -466,7 +466,7 @@ public class XMLAssertPsychopathXPath2Im
 /*
  * Evaluate assertion on a simpleType with variety xs:union.
  */
-private boolean evaluateAssertionOnSTUnion(QName element, 
XSSimpleTypeDefinition simpleTypeDefn, boolean isTypeDerivedFromUnion, 
XSAssertImpl assertImpl, String value, Augmentations augs) {
+private boolean evaluateAssertionOnSTUnion(QName element, 
XSSimpleTypeDefinition simpleTypeDefn, boolean isTypeDerivedFromUnion, 
XSAssertImpl assertImpl, String value, Augmentations augs) throws Exception {
 
 boolean isValueValid = true;
 
@@ -509,7 +509,7 @@ public class XMLAssertPsychopathXPath2Im
 if (value != null) {
 // complex type with simple content
 restorePsviInfoForXPathContext(elemPsvi);
-setXDMTypedValueOf$value(fCurrentAssertDomNode, value, null, null, 
false, fXpath2DynamicContext);
+setXDMValueOf$valueForCTWithSimpleContent(value, 
(XSComplexTypeDefinition)elemPsvi.getTypeDefinition(), fXpath2DynamicContext);
 savePsviInfoWithUntypingOfAssertRoot(elemPsvi, true);
 } else {
 // complex type with complex content. set xpath context variable 
$value to an empty sequence.
@@ -618,12 +618,13 @@ public class XMLAssertPsychopathXPath2Im
 
 boolean isValidationFailedForUnion = true;
 final int memberTypesLength = memberTypes.getLength();
+int memberTypesHavingAsserts = 0;
 
 for (int memberTypeIdx = 0; memberTypeIdx  memberTypesLength; 
memberTypeIdx++) {
 XSSimpleTypeDefinition memType = (XSSimpleTypeDefinition) 
memberTypes.item(memberTypeIdx);
-
 // check for assertions on types in an non-schema namespace
 if 
(!SchemaSymbols.URI_SCHEMAFORSCHEMA.equals(memType.getNamespace())  
XS11TypeHelper.simpleTypeHasAsserts(memType)) {
+memberTypesHavingAsserts++;
 XSObjectList memberTypeFacets = memType.getMultiValueFacets();
 final int memberTypeFacetsLength = 
memberTypeFacets.getLength();
 for (int memberTypeFacetIdx = 0; memberTypeFacetIdx  
memberTypeFacetsLength; memberTypeFacetIdx++) {
@@ -659,13 +660,22 @@ public class XMLAssertPsychopathXPath2Im
 else {
 ((AttributePSVImpl) 
attrPSVI).fValue.memberType = (XSSimpleType) memType;
 }
-return false;  
+isValidationFailedForUnion = false;
+break; 
 }
 }
 }
+if (!isValidationFailedForUnion) {
+break;  
+}
 }
 }
 
+if (memberTypesHavingAsserts == 0) {
+   // none of the member types have asserts. therefore, validation 
cannot fail due to checks from this method.
+   isValidationFailedForUnion = false;
+}
+
 return isValidationFailedForUnion;
 
 } // isValidationFailedForSTUnion

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertionXPath2Value.java
URL: 

svn commit: r1427173 - in /xerces/java/branches/xs-1.1-tests: data/assertions/list_union/ src/org/apache/xerces/tests/

2012-12-31 Thread mukulg
Author: mukulg
Date: Mon Dec 31 16:44:46 2012
New Revision: 1427173

URL: http://svn.apache.org/viewvc?rev=1427173view=rev
Log:
schema 1.1 commit: committing few new test cases for the implementation 
improvement done in a commit few minutes ago.

Added:

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xml

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xsd

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xml

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xsd

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_3.xsd

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_4.xsd

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion15_1.xml

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion15_1.xsd

xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion15_2.xml
Modified:

xerces/java/branches/xs-1.1-tests/src/org/apache/xerces/tests/AssertionTests.java

Added: 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xml
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xml?rev=1427173view=auto
==
--- 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xml 
(added)
+++ 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xml 
Mon Dec 31 16:44:46 2012
@@ -0,0 +1 @@
+X2005-10-09 2007-05-07 2007-05-03/X
\ No newline at end of file

Added: 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xsd
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xsd?rev=1427173view=auto
==
--- 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xsd 
(added)
+++ 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_1.xsd 
Mon Dec 31 16:44:46 2012
@@ -0,0 +1,20 @@
+xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema;
+
+xs:element name=X
+  xs:simpleType
+ xs:restriction base=union_of_DtList_and_integer
+xs:assertion test=$value instance of xs:date+/
+xs:assertion test=count($value) eq 3/
+ /xs:restriction
+  /xs:simpleType
+   /xs:element
+   
+   xs:simpleType name=union_of_DtList_and_integer
+  xs:union memberTypes=xs:integer
+ xs:simpleType
+xs:list itemType=xs:date/
+ /xs:simpleType
+  /xs:union
+   /xs:simpleType
+   
+/xs:schema
\ No newline at end of file

Added: 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xml
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xml?rev=1427173view=auto
==
--- 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xml 
(added)
+++ 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xml 
Mon Dec 31 16:44:46 2012
@@ -0,0 +1 @@
+X100/X
\ No newline at end of file

Added: 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xsd
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xsd?rev=1427173view=auto
==
--- 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xsd 
(added)
+++ 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_2.xsd 
Mon Dec 31 16:44:46 2012
@@ -0,0 +1,19 @@
+xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema;
+
+xs:element name=X
+  xs:simpleType
+ xs:restriction base=union_of_DtList_and_integer
+xs:assertion test=$value instance of xs:integer/
+ /xs:restriction
+  /xs:simpleType
+   /xs:element
+   
+   xs:simpleType name=union_of_DtList_and_integer
+  xs:union memberTypes=xs:integer
+ xs:simpleType
+xs:list itemType=xs:date/
+ /xs:simpleType
+  /xs:union
+   /xs:simpleType
+   
+/xs:schema
\ No newline at end of file

Added: 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_3.xsd
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_3.xsd?rev=1427173view=auto
==
--- 
xerces/java/branches/xs-1.1-tests/data/assertions/list_union/listunion14_3.xsd 
(added)