Author: ajith
Date: Sun Jul 9 05:10:03 2006
New Revision: 420283
URL: http://svn.apache.org/viewvc?rev=420283&view=rev
Log:
1. Changed the implementation of the ADBDatabindingTemplate.xsl to generate the
OMElement from the pull parser (rather than using the getOMElement method) for
the unwrapped case. The getOMElement method needs work to make this case right.
2. Modified the ADBDataSource.java to keep a parent QName reference.
Now unwrapping works for the *client side* with ADB!
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
URL:
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
---
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
(original)
+++
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBBeanTemplate.xsl
Sun Jul 9 05:10:03 2006
@@ -254,9 +254,11 @@
final javax.xml.namespace.QName parentQName,
final org.apache.axiom.om.OMFactory factory){
+
org.apache.axiom.om.OMDataSource dataSource =
- new org.apache.axis2.databinding.ADBDataSource(this){
- public void serialize(
+ new
org.apache.axis2.databinding.ADBDataSource(this,parentQName){
+
+ public void serialize(
javax.xml.stream.XMLStreamWriter xmlWriter)
throws javax.xml.stream.XMLStreamException {
<xsl:choose>
<xsl:when test="@type or @anon">
Modified:
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
URL:
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
---
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
(original)
+++
webservices/axis2/trunk/java/modules/adb-codegen/src/org/apache/axis2/schema/template/ADBDatabindingTemplate.xsl
Sun Jul 9 05:10:03 2006
@@ -49,9 +49,22 @@
elt.setText(org.apache.axis2.databinding.utils.ConverterUtil.convertToString(param<xsl:value-of
select="position()"/>));
</xsl:when>
<xsl:otherwise>
- elt = param<xsl:value-of
select="position()"/>.getOMElement(
+ <!-- elt = param<xsl:value-of
select="position()"/>.getOMElement(
new
javax.xml.namespace.QName("","<xsl:value-of select="@partname"/>"),
-
org.apache.axiom.om.OMAbstractFactory.getOMFactory());
+
org.apache.axiom.om.OMAbstractFactory.getOMFactory()); -->
+ <xsl:variable
name="paramname">param<xsl:value-of select="position()"/></xsl:variable>
+ <xsl:variable
name="buildername">builder<xsl:value-of select="position()"/></xsl:variable>
+ <xsl:variable
name="docEltName">docElt<xsl:value-of select="position()"/></xsl:variable>
+ elt = fac.createOMElement("<xsl:value-of
select="@partname"/>","",null);
+
+ org.apache.axiom.om.impl.builder.StAXOMBuilder
<xsl:value-of select="$buildername"/> = new
org.apache.axiom.om.impl.builder.StAXOMBuilder(factory,
+ <xsl:value-of
select="$paramname"/>.getPullParser(elt.getQName()));
+
+ org.apache.axiom.om.OMElement <xsl:value-of
select="$docEltName"/> = <xsl:value-of
select="$buildername"/>.getDocumentElement();
+ (( org.apache.axiom.om.impl.OMNodeEx)
<xsl:value-of select="$docEltName"/>).setParent(null);
+ <xsl:value-of select="$docEltName"/>.build();
+ elt.addChild(<xsl:value-of
select="$docEltName"/>);
+
</xsl:otherwise>
</xsl:choose>
wrapperElt.addChild(elt);
Modified:
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
URL:
http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java?rev=420283&r1=420282&r2=420283&view=diff
==============================================================================
---
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
(original)
+++
webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/ADBDataSource.java
Sun Jul 9 05:10:03 2006
@@ -8,6 +8,7 @@
import javax.xml.stream.XMLStreamWriter;
import javax.xml.stream.XMLStreamReader;
import javax.xml.stream.XMLOutputFactory;
+import javax.xml.namespace.QName;
import java.io.OutputStream;
import java.io.Writer;
/*
@@ -27,15 +28,16 @@
*/
public abstract class ADBDataSource implements OMDataSource {
-
+ protected QName parentQName;
private ADBBean bean;
/**
* Constructor taking in an ADBBean
* @param bean
*/
- protected ADBDataSource(ADBBean bean) {
+ protected ADBDataSource(ADBBean bean,QName parentQName) {
this.bean = bean;
+ this.parentQName = parentQName;
}
@@ -77,7 +79,7 @@
public XMLStreamReader getReader() throws XMLStreamException {
// since only ADBBeans related to elements can be serialized
// we are safe in passing null here.
- return bean.getPullParser(null);
+ return bean.getPullParser(parentQName);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]