Author: mukulg
Date: Fri Mar 25 09:34:07 2011
New Revision: 1085298
URL: http://svn.apache.org/viewvc?rev=1085298&view=rev
Log:
committing a slight improvement for type alternatives failure messages. The
earlier codebase for this was returning an error message something like, "Type
alternative 'null' is not xs:error ...". This commit fixes this problem (i.e
'null' is now shown as an existing type name's string value).
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDTypeAlternativeTraverser.java
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDTypeAlternativeTraverser.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDTypeAlternativeTraverser.java?rev=1085298&r1=1085297&r2=1085298&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDTypeAlternativeTraverser.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDTypeAlternativeTraverser.java
Fri Mar 25 09:34:07 2011
@@ -29,6 +29,7 @@ import org.apache.xerces.impl.xs.XSEleme
import org.apache.xerces.impl.xs.alternative.Test;
import org.apache.xerces.impl.xs.alternative.XSTypeAlternativeImpl;
import org.apache.xerces.impl.xs.util.XSObjectListImpl;
+import org.apache.xerces.impl.xs.util.XSTypeHelper;
import org.apache.xerces.util.DOMUtil;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xs.XSObjectList;
@@ -79,7 +80,7 @@ class XSDTypeAlternativeTraverser extend
Object[] attrValues = fAttrChecker.checkAttributes(altElement, false,
schemaDoc);
QName typeAtt = (QName) attrValues[XSAttributeChecker.ATTIDX_TYPE];
- String test = (String) attrValues[XSAttributeChecker.ATTIDX_XPATH];
+ String testStr = (String) attrValues[XSAttributeChecker.ATTIDX_XPATH];
String xpathNS = (String)
attrValues[XSAttributeChecker.ATTIDX_XPATHDEFAULTNS];
// get 'annotation'
@@ -167,7 +168,7 @@ class XSDTypeAlternativeTraverser extend
if
(!fSchemaHandler.fXSConstraints.checkTypeDerivationOk(alternativeType,
element.fType, block)) {
reportSchemaError(
"e-props-correct.7",
- new Object[] { element.getName(),
alternativeType.getName(), element.fType.getName()},
+ new Object[] {element.getName(),
XSTypeHelper.getSchemaTypeName(alternativeType),
XSTypeHelper.getSchemaTypeName(element.fType)},
altElement);
// fall back to element declaration's type
alternativeType = element.fType;
@@ -184,11 +185,11 @@ class XSDTypeAlternativeTraverser extend
XSTypeAlternativeImpl typeAlternative = new
XSTypeAlternativeImpl(element.fName, alternativeType, annotations);
// now look for other optional attributes like test and
xpathDefaultNamespace
- if (test != null) {
+ if (testStr != null) {
Test testExpr = null;
//set the test attribute value
try {
- testExpr = new Test(new XPath20(test, fSymbolTable,
schemaDoc.fNamespaceSupport),
+ testExpr = new Test(new XPath20(testStr, fSymbolTable,
schemaDoc.fNamespaceSupport),
typeAlternative,
schemaDoc.fNamespaceSupport);
}
@@ -196,10 +197,10 @@ class XSDTypeAlternativeTraverser extend
// fall back to full XPath 2.0 support, with PsychoPath engine
try {
XPathParser xpp = new JFlexCupParser();
- XPath xp = xpp.parse("boolean(" + test + ")");
+ XPath xp = xpp.parse("boolean(" + testStr + ")");
testExpr = new Test(xp, typeAlternative,
schemaDoc.fNamespaceSupport);
} catch(XPathParserException ex) {
- reportSchemaError("c-cta-xpath", new Object[] { test },
altElement);
+ reportSchemaError("c-cta-xpath", new Object[] { testStr },
altElement);
//if the XPath is invalid, create a Test without an
expression
testExpr = new Test((XPath20) null, typeAlternative,
schemaDoc.fNamespaceSupport);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]