Author: jeff.yuchang
Date: 2010-11-23 23:14:27 -0500 (Tue, 23 Nov 2010)
New Revision: 1139
Modified:
branches/RiftSaw-ODE-2.1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
Log:
* RIFTSAW-312, return boolean value for xsd:boolean data type.
Modified:
branches/RiftSaw-ODE-2.1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
===================================================================
---
branches/RiftSaw-ODE-2.1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2010-11-23
13:58:05 UTC (rev 1138)
+++
branches/RiftSaw-ODE-2.1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2010-11-24
04:14:27 UTC (rev 1139)
@@ -68,6 +68,8 @@
/** Static, thread-safe singleton implementing default XPath functions */
private static final FunctionContext __defaultXPathFunctions =
XPathFunctionContext.getInstance();
+
+ private static final QName BOOLEAN = new
QName("http://www.w3.org/2001/XMLSchema", "boolean");
private OXPath10Expression _oxpath;
private EvaluationContext _xpathEvalCtx;
@@ -186,7 +188,13 @@
}
if (_xpathEvalCtx.narrowTypes() && type instanceof
OXsdTypeVarType && ((OXsdTypeVarType)type).simple) {
- return variableNode.getTextContent();
+ String value = variableNode.getTextContent();
+ OXsdTypeVarType theType = (OXsdTypeVarType)type;
+
+ if (BOOLEAN.equals(theType.xsdType)) {
+ return new Boolean(value) ;
+ }
+ return value;
} else {
return variableNode;
}