Author: mukulg
Date: Sun Apr 11 04:07:58 2010
New Revision: 932835
URL: http://svn.apache.org/viewvc?rev=932835&view=rev
Log:
patch for JIRA issue, XERCESJ-1441
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/SchemaSymbols.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.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/apache/xerces/impl/msg/XMLSchemaMessages.properties?rev=932835&r1=932834&r2=932835&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
Sun Apr 11 04:07:58 2010
@@ -107,6 +107,7 @@
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.
cvc-assertion.4.3.15.3 = cvc-assertion.4.3.15.3: Assertion evaluation
(''{1}'') for element ''{0}'' with type ''{2}'' did not succeed (undefined
context).
+ cvc-assertion.failure = cvc-assertion.failure: Assertion failure. {0}
cvc-xpath.3.13.4.2 = cvc-xpath.3.13.4.2: Assertion XPath expression,
(''{0}'') on the Schema type ''{1}'' couldn''t compile successfully.
#schema valid (3.X.3)
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java?rev=932835&r1=932834&r2=932835&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
Sun Apr 11 04:07:58 2010
@@ -47,6 +47,9 @@ public final class SchemaSymbols {
// schema version namespace
public static final String URI_SCHEMAVERSION =
"http://www.w3.org/2007/XMLSchema-versioning".intern();
+
+ // xerces extensions namespace
+ public static final String URI_XERCES_EXTENSIONS =
"http://xerces.apache.org".intern();
// all possible schema element names
public static final String ELT_ALL = "all".intern();
@@ -147,6 +150,7 @@ public final class SchemaSymbols {
public static final String ATT_MINVERSION =
"minVersion".intern();
public static final String ATT_MAXVERSION =
"maxVersion".intern();
public static final String ATT_INHERITABLE =
"inheritable".intern();
+ public static final String ATT_ASSERT_MESSAGE = "message".intern();
// all possible schema attribute values
public static final String ATTVAL_TWOPOUNDANY = "##any";
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathImpl.java?rev=932835&r1=932834&r2=932835&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLAssertPsychopathImpl.java
Sun Apr 11 04:07:58 2010
@@ -303,12 +303,7 @@ public class XMLAssertPsychopathImpl ext
if (!result) {
// assertion evaluation is false
- if (assertImpl.getAttrName() == null) {
- reportError("cvc-assertion.3.13.4.1", element, assertImpl);
- }
- else {
- reportError("cvc-assertion.3.13.4.1", element, assertImpl);
- }
+ reportError("cvc-assertion.3.13.4.1", element, assertImpl);
}
}
catch (DynamicError ex) {
@@ -347,9 +342,19 @@ public class XMLAssertPsychopathImpl ext
assertImpl.getAttrName()+ ")";
}
- validator.reportSchemaError(key, new Object[] { elemErrorAnnotation,
+ String message = assertImpl.getMessage();
+ if (message != null) {
+ if (!message.endsWith(".")) {
+ message = message + ".";
+ }
+ validator.reportSchemaError("cvc-assertion.failure",
+ new Object[] { message } );
+ }
+ else {
+ validator.reportSchemaError(key, new Object[] { elemErrorAnnotation,
assertImpl.getTest().getXPath().toString(),
typeString } );
+ }
}
/*
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java?rev=932835&r1=932834&r2=932835&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/assertion/XSAssertImpl.java
Sun Apr 11 04:07:58 2010
@@ -70,6 +70,9 @@ public class XSAssertImpl extends Abstra
// XSDHandler object, passed on from the traversers
protected XSDHandler fSchemaHandler = null;
+
+ // user-defined message, to display, during assertion failures
+ protected String message = null;
/** Constructor */
public XSAssertImpl(XSTypeDefinition type,
@@ -218,4 +221,16 @@ public class XSAssertImpl extends Abstra
return returnVal;
}
+
+ /*
+ * Set error message, for assertions failures
+ */
+ public void setMessage(String message) {
+ this.message = message;
+ }
+
+ // Get the error message string
+ public String getMessage() {
+ return message;
+ }
}
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java?rev=932835&r1=932834&r2=932835&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDAbstractTraverser.java
Sun Apr 11 04:07:58 2010
@@ -515,6 +515,12 @@ abstract class XSDAbstractTraverser {
assertImpl.setTest(testExpr);
assertImpl.setXPathDefaultNamespace(xpathDefaultNamespace);
assertImpl.setXPath2NamespaceContext(schemaDoc.fNamespaceSupport);
+ String assertMessage = content.getAttributeNS(
+
SchemaSymbols.URI_XERCES_EXTENSIONS,
+
SchemaSymbols.ATT_ASSERT_MESSAGE);
+ if (!"".equals(assertMessage.trim())) {
+ assertImpl.setMessage(assertMessage.trim());
+ }
if (assertData == null) {
assertData = new Vector();
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java?rev=932835&r1=932834&r2=932835&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
Sun Apr 11 04:07:58 2010
@@ -1354,8 +1354,8 @@ class XSDComplexTypeTraverser extends X
}
/*
- * Method to find all assertions up in the type hierarchy, and add them to
- * the list of assertions to be processed.
+ * Find all assertions up in the type hierarchy, and add them to the list
+ * of assertions to be processed.
*/
private void addAssertsFromBaseTypes(XSTypeDefinition baseValidator) {
if (baseValidator != null) {
@@ -1627,7 +1627,7 @@ class XSDComplexTypeTraverser extends X
XSComplexTypeDecl enclosingCT) throws ComplexTypeRecoverableError {
Object[] attrValues = fAttrChecker.checkAttributes(assertElement,
- false, schemaDoc);
+ false, schemaDoc);
String test = (String) attrValues[XSAttributeChecker.ATTIDX_XPATH];
String xpathDefaultNamespace = (String)
attrValues[XSAttributeChecker.ATTIDX_XPATHDEFAULTNS];
if (xpathDefaultNamespace == null) {
@@ -1671,7 +1671,7 @@ class XSDComplexTypeTraverser extends X
annotations = XSObjectListImpl.EMPTY_LIST;
}
- // create an assertion object
+ // create an assertion object
XSAssertImpl assertImpl = new XSAssertImpl(enclosingCT,
annotations,
fSchemaHandler);
@@ -1680,7 +1680,13 @@ class XSDComplexTypeTraverser extends X
assertImpl.setTest(testExpr);
assertImpl.setXPathDefaultNamespace(xpathDefaultNamespace);
assertImpl.setXPath2NamespaceContext(schemaDoc.fNamespaceSupport);
-
+ String assertMessage = assertElement.getAttributeNS(
+ SchemaSymbols.URI_XERCES_EXTENSIONS,
+ SchemaSymbols.ATT_ASSERT_MESSAGE);
+ if (!"".equals(assertMessage.trim())) {
+ assertImpl.setMessage(assertMessage.trim());
+ }
+
// add assertion object, to the list of assertions to be processed
addAssertion(assertImpl);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]