Author: mukulg
Date: Fri Sep 7 12:03:52 2012
New Revision: 1381986
URL: http://svn.apache.org/viewvc?rev=1381986&view=rev
Log:
committing fix for jira issue, XERCESJ-1577
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java?rev=1381986&r1=1381985&r2=1381986&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
Fri Sep 7 12:03:52 2012
@@ -1611,21 +1611,20 @@ public class XSAttributeChecker {
StringTokenizer st = new
StringTokenizer(attrVal, " \n\t\r");
while (st.hasMoreTokens()) {
Object avalue =
dv.validate(st.nextToken(), schemaDoc.fValidationContext, null);
+
modifyQNameForChameleonProcessing(schemaDoc, avalue);
((Vector)attrValues[ATTIDX_SUBSGROUP]).addElement(avalue);
}
}
else {
Object avalue = dv.validate(attrVal,
schemaDoc.fValidationContext, null);
+ modifyQNameForChameleonProcessing(schemaDoc,
avalue);
((Vector)attrValues[ATTIDX_SUBSGROUP]).addElement(avalue);
}
}
else {
- Object avalue = dv.validate(attrVal,
schemaDoc.fValidationContext, null);
- // kludge to handle chameleon includes/redefines...
+ Object avalue = dv.validate(attrVal,
schemaDoc.fValidationContext, null);
if (oneAttr.dvIndex == DT_QNAME) {
- QName qname = (QName)avalue;
- if(qname.prefix == XMLSymbols.EMPTY_STRING &&
qname.uri == null && schemaDoc.fIsChameleonSchema)
- qname.uri = schemaDoc.fTargetNamespace;
+ modifyQNameForChameleonProcessing(schemaDoc,
avalue);
}
attrValues[oneAttr.valueIndex] = avalue;
}
@@ -1687,6 +1686,21 @@ public class XSAttributeChecker {
return attrValues;
}
+ /*
+ * If chameleon pre-processing is required, then this method would modify
the QName value appropriately.
+ *
+ * @param schemaDoc metadata about the schema document
+ * @param qnameVal validated QName value
+ *
+ */
+ private void modifyQNameForChameleonProcessing(XSDocumentInfo schemaDoc,
Object qnameVal) {
+ // kludge to handle chameleon includes/redefines...
+ QName qname = (QName)qnameVal;
+ if(qname.prefix == XMLSymbols.EMPTY_STRING && qname.uri == null &&
schemaDoc.fIsChameleonSchema) {
+ qname.uri = schemaDoc.fTargetNamespace;
+ }
+ }
+
private Object validate(Object[] attrValues, String attr, String ivalue,
int dvIndex,
XSDocumentInfo schemaDoc) throws
InvalidDatatypeValueException {
if (ivalue == null)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]