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/
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/
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)