[prev in list] [next in list] [prev in thread] [next in thread]
List: xerces-cvs
Subject: svn commit: r1084065 - in
From: mukulg () apache ! org
Date: 2011-03-22 4:24:36
Message-ID: 20110322042436.CBD6A238890D () eris ! apache ! org
[Download RAW message or body]
Author: mukulg
Date: Tue Mar 22 04:24:36 2011
New Revision: 1084065
URL: http://svn.apache.org/viewvc?rev=1084065&view=rev
Log:
committing few improvements to schema 1.1 assertion evaluations.
the changes in this commit are following,
1) considering assertions from base type of a complexType (with extension \
derivation), where the base type has variety simpleType->list. 2) few minor \
improvements to error messages for assertions.
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties
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/XSDAssertionValidator.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/util/XSTypeHelper.java
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apac \
he/xerces/impl/msg/XMLSchemaMessages.properties?rev=1084065&r1=1084064&r2=1084065&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties \
(original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties \
Tue Mar 22 04:24:36 2011 @@ -105,9 +105,9 @@
cvc-type.3.1.1 = cvc-type.3.1.1: Element ''{0}'' is a simple type, so it \
cannot have attributes, excepting those whose namespace name is identical to \
''http://www.w3.org/2001/XMLSchema-instance'' and whose [local name] is one of \
''type'', ''nil'', ''schemaLocation'' or ''noNamespaceSchemaLocation''. However, the \
attribute, ''{1}'' was found.
cvc-type.3.1.2 = cvc-type.3.1.2: Element ''{0}'' is a simple type, so it \
must have no element information item [children].
cvc-type.3.1.3 = cvc-type.3.1.3: The value ''{1}'' of element ''{0}'' is not \
valid.
- cvc-assertion.3.13.4.1 = cvc-assertion.3.13.4.1: Assertion evaluation \
(''{1}'') for element ''{0}'' with type ''{2}'' did not succeed. {3} + \
cvc-assertion.3.13.4.1 = cvc-assertion.3.13.4.1: Assertion evaluation (''{1}'') for \
element ''{0}'' on schema type ''{2}'' did not succeed. {3}
cvc-assertion.3.13.4.1-failure-mesg = cvc-assertion.3.13.4.1-failure-mesg: \
{0} {1}
- cvc-assertions-valid-context = cvc-assertions-valid-context: Assertion \
evaluation (''{1}'') for element ''{0}'' with type ''{2}'' did not succeed (undefined \
context). {3} + cvc-assertions-valid-context = cvc-assertions-valid-context: \
Assertion evaluation (''{1}'') for element ''{0}'' on schema type ''{2}'' did not \
succeed (undefined context). {3} cvc-assertions-valid-union-elem = \
cvc-assertions-valid-union-elem: Value ''{0}'' is not facet-valid with respect to the \
specified assertions, on type ''{2}'' on element ''{1}''. \
cvc-assertions-valid-union-attr = cvc-assertions-valid-union-attr: Value ''{0}'' is \
not facet-valid with respect to the specified assertions, on type ''{3}'' on \
attribute ''{2}'/@'{1}''.
cvc-xpath.3.13.4.2a = cvc-xpath.3.13.4.2a: Assertion XPath expression \
(''{0}'') on the schema type ''{1}'' couldn''t compile successfully.
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/apac \
he/xerces/impl/xs/XMLAssertPsychopathXPath2Impl.java?rev=1084065&r1=1084064&r2=1084065&view=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 \
Tue Mar 22 04:24:36 2011 @@ -384,6 +384,12 @@ public class \
XMLAssertPsychopathXPath2Im else {
simpleTypeDefn = (XSSimpleTypeDefinition) xsTypeDefn;
}
+ ElementPSVI elemPSVI = (ElementPSVI) \
augs.getItem(Constants.ELEMENT_PSVI); + XSComplexTypeDefinition \
complexTypeDef = (XSComplexTypeDefinition)elemPSVI.getTypeDefinition(); + \
if (XSTypeHelper.isComplexTypeDerivedFromSTListByExt(complexTypeDef)) { + \
// reassign value to simple type instance + simpleTypeDefn = \
(XSSimpleTypeDefinition)complexTypeDef.getBaseType(); + }
final boolean isTypeDerivedFromList = ((XSSimpleType) \
simpleTypeDefn.getBaseType()).getVariety() == \
XSSimpleType.VARIETY_LIST;
final boolean isTypeDerivedFromUnion = ((XSSimpleType) \
simpleTypeDefn.getBaseType()).getVariety() == \
XSSimpleType.VARIETY_UNION;
if (simpleTypeDefn.getVariety() == \
XSSimpleTypeDefinition.VARIETY_ATOMIC) { @@ -396,7 +402,7 @@ public class \
XMLAssertPsychopathXPath2Im }
else if (simpleTypeDefn.getVariety() == \
XSSimpleTypeDefinition.VARIETY_LIST) {
// evaluating assertions for "simpleType -> list" \
- evaluateAssertionOnSTListValue(element, value, assertImpl, \
false, simpleTypeDefn, isTypeDerivedFromList); + \
evaluateAssertionOnSTListValue(element, value, assertImpl, false, \
simpleTypeDefn.getItemType(), isTypeDerivedFromList); }
else if (((Boolean) \
augs.getItem("ASSERT_PROC_NEEDED_FOR_UNION")).booleanValue()) { // evaluating \
assertions for "simpleType -> union" @@ -406,9 +412,9 @@ public class \
XMLAssertPsychopathXPath2Im }
}
// evaluate assertions on itemType of xs:list
- XSSimpleTypeDefinition attrItemType = simpleTypeDefn.getItemType();
- if (isTypeDerivedFromList && attrItemType != null) {
- evaluateAssertsFromItemTypeOfSTList(element, attrItemType, \
value); + XSSimpleTypeDefinition listItemType = \
simpleTypeDefn.getItemType(); + if (isTypeDerivedFromList && \
listItemType != null) { + \
evaluateAssertsFromItemTypeOfSTList(element, listItemType, value); }
}
}
@@ -944,12 +950,12 @@ public class XMLAssertPsychopathXPath2Im
String value = assertError.getValue();
XSTypeDefinition typeDef = assertImpl.getTypeDefinition();
- String typeNameStrAnnotation = "";
- if (typeDef != null) {
- typeNameStrAnnotation = (typeDef.getName() != null) ? typeDef.getName() \
: "#anonymous"; + String typeNameStr = "";
+ if (typeDef instanceof XSSimpleTypeDefinition) {
+ typeNameStr = ((XSSimpleTypeDecl)typeDef).getTypeName();
}
else {
- typeNameStrAnnotation = "#anonymous";
+ typeNameStr = ((XSComplexTypeDecl)typeDef).getTypeName();
}
String elemErrorAnnotation = element.rawname;
@@ -978,15 +984,15 @@ public class XMLAssertPsychopathXPath2Im
message = message + ".";
}
if (key.equals("cvc-assertions-valid-context")) {
- message = "Assertion failed (undefined context) for schema type '" + \
typeNameStrAnnotation + "'. " + message; + message = "Assertion \
failed (undefined context) for schema type '" + typeNameStr + "'. " + message; }
else {
- message = "Assertion failed for schema type '" + \
typeNameStrAnnotation + "'. " + message; + message = "Assertion failed \
for schema type '" + typeNameStr + "'. " + message; }
fXmlSchemaValidator.reportSchemaError("cvc-assertion.3.13.4.1-failure-mesg", \
new Object[] {message, listAssertErrMessage}); }
else {
- fXmlSchemaValidator.reportSchemaError(key, new Object[] \
{elemErrorAnnotation, assertImpl.getTest().getXPath().toString(), \
typeNameStrAnnotation, listAssertErrMessage}); + \
fXmlSchemaValidator.reportSchemaError(key, new Object[] {elemErrorAnnotation, \
assertImpl.getTest().getXPath().toString(), typeNameStr, listAssertErrMessage}); }
} // reportAssertionsError
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDAssertionValidator.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apac \
he/xerces/impl/xs/XSDAssertionValidator.java?rev=1084065&r1=1084064&r2=1084065&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDAssertionValidator.java \
(original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDAssertionValidator.java \
Tue Mar 22 04:24:36 2011 @@ -182,14 +182,24 @@ public class XSDAssertionValidator {
}
}
- // add assertion facets from "complexType -> simpleContent -> restriction"
+ // add assertion facets from complexType -> simpleContent. few assertions \
are already available in complexType model object, + // and few others are \
retrieved here.
XSSimpleTypeDefinition simpleContentType = complexTypeDef.getSimpleType();
- if (simpleContentType != null && complexTypeDef.getDerivationMethod() == \
XSConstants.DERIVATION_RESTRICTION) {
- Vector simpleContentAsserts = \
XSTypeHelper.getAssertsFromSimpleType(simpleContentType);
- for (int assertIdx = 0; assertIdx < simpleContentAsserts.size(); \
assertIdx++) {
- XSAssert simpleContentAssert = (XSAssert) \
simpleContentAsserts.get(assertIdx);
- complexTypeAsserts.addXSObject(simpleContentAssert);
- }
+ if (simpleContentType != null) {
+ if (complexTypeDef.getDerivationMethod() == \
XSConstants.DERIVATION_RESTRICTION) { + // add assertions for \
complexType -> simpleContent -> restriction cases + Vector \
simpleContentAsserts = XSTypeHelper.getAssertsFromSimpleType(simpleContentType); + \
for (int assertIdx = 0; assertIdx < simpleContentAsserts.size(); assertIdx++) { + \
complexTypeAsserts.addXSObject((XSAssert) simpleContentAsserts.get(assertIdx)); + \
} + }
+ else if \
(XSTypeHelper.isComplexTypeDerivedFromSTListByExt(complexTypeDef)) { + \
// add assertions from the list->itemType of base schema simple type + \
Vector baseItemTypeAsserts = \
XSTypeHelper.getAssertsFromSimpleType(((XSSimpleTypeDefinition)complexTypeDef.getBaseType()).getItemType());
+ for (int assertIdx = 0; assertIdx < baseItemTypeAsserts.size(); \
assertIdx++) { + complexTypeAsserts.addXSObject((XSAssert) \
baseItemTypeAsserts.get(assertIdx)); + }
+ }
}
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/util/XSTypeHelper.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apac \
he/xerces/impl/xs/util/XSTypeHelper.java?rev=1084065&r1=1084064&r2=1084065&view=diff \
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/util/XSTypeHelper.java \
(original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/util/XSTypeHelper.java \
Tue Mar 22 04:24:36 2011 @@ -31,6 +31,8 @@ import org.apache.xerces.impl.xs.SchemaS
import org.apache.xerces.impl.xs.XSMessageFormatter;
import org.apache.xerces.util.XMLChar;
import org.apache.xerces.xni.NamespaceContext;
+import org.apache.xerces.xs.XSComplexTypeDefinition;
+import org.apache.xerces.xs.XSConstants;
import org.apache.xerces.xs.XSMultiValueFacet;
import org.apache.xerces.xs.XSObjectList;
import org.apache.xerces.xs.XSSimpleTypeDefinition;
@@ -206,4 +208,16 @@ public class XSTypeHelper {
} // isListContainsType
+
+ /*
+ * Find if a complexType is derived by extension from a simpleType->list \
component. + */
+ public static boolean \
isComplexTypeDerivedFromSTListByExt(XSComplexTypeDefinition complexTypeDef) { + \
+ return complexTypeDef.getDerivationMethod() == \
XSConstants.DERIVATION_EXTENSION && + complexTypeDef.getBaseType() \
instanceof XSSimpleTypeDefinition && + \
((XSSimpleTypeDefinition)complexTypeDef.getBaseType()).getVariety() == \
XSSimpleTypeDefinition.VARIETY_LIST; +
+ } // isComplexTypeDerivedFromSTListByExt
+
} // class XSTypeHelper
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic