On 11/22/05, Eran Chinthaka <[EMAIL PROTECTED]> wrote:
> Until I read the "loooooong" email,
>
> did u read the javadoc comment, I wrote carefully for the method :
> public static XMLStreamReader createPullParser(QName adbBeansQName,
> Object[] properties, Object[] attributes) ?

Yep I did... unfortunately my IDE doesn't render that perticulart
javadoc (wired indentation:-( ) properly...

>
> Ruchith Fernando wrote:
>
> >Hi Devs,
> >
> >I'm playing with the Axis2 ABD stuff and I hope to use it in
> >implementing the WS-Trust stuff.
> >I ran into a couple of issues trying to use ADB.
> >
> >1.) ADB Beans doesn't seem to properly set unqualified attributes
> >2.) ADB Beans cannot serialize qualified simple (containing a text
> >value) child elements.
> >
> >Explanation:
> >
> >Please have a look at this piece of code [1]. This produced the
> >following output:
> >
> ><wst:RequestSecurityToken
> >xmlns:wst="http://ws.apache.org/namespaces/axis2/trust";
> >wst:Context="test"><TokenType>test</TokenType></wst:RequestSecurityToken>
> >
> >Here comes the problems :-)
> >
> >First I want to make the wst:Context attribute unqualified. Simply
> >remove the 'wst' prefix. Therefore I tried changing line number 27 as
> >follows :
> >
> > attributes[0] = new String("Context");
> >
> >But this produced the following output which is missing the 'Context' 
> >attribute:
> >
> ><wst:RequestSecurityToken
> >xmlns:wst="http://ws.apache.org/namespaces/axis2/trust";><TokenType>test</TokenType></wst:RequestSecurityToken>
> >
> >Q1: Is this behaviour correct? Or am I doing somethign wrong?
> >
> >When I tried changing line 27 to:
> >
> >  attributes[0] = new QName("Context");
> >
> >It produced:
> >
> ><wst:RequestSecurityToken
> >xmlns:wst="http://ws.apache.org/namespaces/axis2/trust"; xmlns=""
> >Context="test"><TokenType
> >xmlns="">test</TokenType></wst:RequestSecurityToken>
> >
> >but this has xmlns="", which I think should not be there.
> >
> >
> >
> >Then I wanted to make the 'TokenType' element a qualified element
> >bound to 'http://ws.apache.org/namespaces/axis2/trust' namespace.
> >Since this is a simple element with only a child text node, I changed
> >line 22 to
> >
> >  properties.add(new
> >QName("http://ws.apache.org/namespaces/axis2/trust";, "TokenType",
> >"wst"));
> >
> >It produced:
> >
> ><wst:RequestSecurityToken
> >xmlns:wst="http://ws.apache.org/namespaces/axis2/trust"; xmlns=""
> >Context="test"><wst:TokenType><bytes
> >xmlns=""></bytes></wst:TokenType></wst:RequestSecurityToken>
> >
> >But here the value of the wst:TokenType element is missing :-( Instead
> >we have '<bytes xmlns=""></bytes>'
> >
> >But ... going through the ADBPullParserTest revealed that our ADB can
> >hanle setting OMElements... I got the required output by replacing
> >line 21-23 with
> >
> >                   OMFactory fac = OMAbstractFactory.getOMFactory();
> >                   OMElement elem = fac.createOMElement("TokenType",
> >"http://ws.apache.org/namespaces/axis2/trust";, "wst");
> >                   elem.setText("test");
> >
> >                   ArrayList properties = new ArrayList();
> >                   properties.add(elem.getQName());
> >                   properties.add(elem);
> >
> >This is quite useful but if I wanted to allow an ADBBean to accept an
> >unknown xml element from a user ... But for this situation, IMHO this
> >looks like a hack to me.
> >
> >Q2: How can I correct this to produce
> >'<wst:TokenType>test</wst:TokenType>' WITHOUT inserting the OMElement?
> >Should I code another ADB Bean for the <wst:TokenType> element and if
> >so how can I simply set just a text value of that bean?
> >
> >Thanks
> >Ruchith
> >
> >[1] http://rafb.net/paste/results/Xp9bVP56.html
> >
> >
> >
>


--
Ruchith

Reply via email to