users@jaxb.java.net

Re: Cast JAXB2 generated object to JAXBElement?

From: wuntee <mathew_rowley_at_cable.comcast.com>
Date: Wed, 25 Aug 2010 12:27:03 -0700 (PDT)

Ok, so, the whole RPC part of this is based on the NETCONF protocol; the XSD
is specified here:

http://www.iana.org/assignments/xml-registry/schema/netconf.xsd

The concept is that you have:
<xml>
<!-- defined in netconf.xsd -->
<rpc>
<!-- -->
<!-- defined by external xsd -->
<get-user-status></get-user-status>
<!-- -->
</rpc>
</xml>

Does that make sense? The RFC defines how netconf works in more detail:

http://tools.ietf.org/html/rfc4741




Wolfgang Laun-2 wrote:
>
> This get-user-stats is not the root of the problem. From where results
> RpcType?
> RpcType.setRpcOperation(JAXBElement<? extends RpcOperationType>)
>
> I should warn you that if this is embedded in the internal workings of
> http://xml.juniper.net/dmi, you may have to ask elsewhere. At least to me,
> this is very white space on my map.
>
> JAXBElement is sort of a container for wrapping POJOs where unmarshalling
> applications need to see the XML tag in addition to the POJO in order to
> determine what is what. The other imporant field therein is "name", giving
> you the XML tag. So, for instance, in a sequence of elements of identical
> types, you can still distiguish foos from bars even though they all are
> typed
> alike and the unmarshaller returns them all in a List<JAXBElement<?>>.
>
> -W
>
> On 25 August 2010 20:08, wuntee <mathew_rowley_at_cable.comcast.com> wrote:
>>
>> I am not very familiar with XSD creation - my experience has been more of
>> implementing clients, could you explain what you mean by :
>>
>> Prabably the XML schema could be tweaked to have a more general base
>> type (Object) as JAXBElement's generic parameter.
>>
>> This is the XSD (truncated to the single method):
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
>> xmlns:dmi="http://xml.juniper.net/dmi">
>>
>> <!-- get-user-stats -->
>> <xs:complexType name="get-user-stats">
>>  <xs:annotation>
>>    <xs:appinfo>
>>      <dmi:rpc-info>
>>        <name>Get user statistics</name>
>>        <description>
>>          This command returns AllocatedUserCount CurrentUserCount
>> MaxUsersin24Hrs MinUsersin24Hrs
>>        </description>
>>        <rpc-reply-tag>user-stats</rpc-reply-tag>
>>      </dmi:rpc-info>
>>    </xs:appinfo>
>>  </xs:annotation>
>>  <xs:sequence>
>>    <xs:element name="reset" type="xs:boolean" minOccurs="0">
>>      <xs:annotation>
>>        <xs:appinfo>
>>          <dmi:param-info>
>>            <name>Reset Stats</name>
>>            <description>
>>              This will govern the reseting of this statistics data. By
>> default, the data is not reset.
>>            </description>
>>          </dmi:param-info>
>>        </xs:appinfo>
>>      </xs:annotation>
>>    </xs:element>
>>  </xs:sequence>
>> </xs:complexType>
>>
>> </xs:schema>
>>
>>
>>
>>
>> Wolfgang Laun-2 wrote:
>>>
>>> A JAXBElement<? extends RpcOperationType> can contain (as its "value"
>>> field)
>>> anything that is or extends RpcOperationType. GetUserStat(u)s doesn't
>>> fit.
>>>
>>> So: the answer is "no".
>>>
>>> Prabably the XML schema could be tweaked to have a more general base
>>> type (Object) as JAXBElement's generic parameter.
>>>
>>> -W
>>>
>>> On 25 August 2010 19:31, wuntee <mathew_rowley_at_cable.comcast.com> wrote:
>>>>
>>>> I have 2 sets of XSD's, one that generates RPC based calls, and another
>>>> that
>>>> defines the product specific methods.  The RpcType object (generated by
>>>> JAXB2) has a 'setRpcOperation' method defined by:
>>>>
>>>>    RpcType.setRpcOperation(JAXBElement<? extends RpcOperationType>)
>>>>
>>>> That 'RpcOperation' object should be the 'specific product method'
>>>> described
>>>> above.  One example is (also generated by JAXB2):
>>>>
>>>>
>>>>    @XmlAccessorType(XmlAccessType.FIELD)
>>>>    @XmlType(name = "get-user-stats", propOrder = {
>>>>        "reset"
>>>>    })
>>>>    public class GetUserStats {
>>>>
>>>>        protected Boolean reset;
>>>>
>>>>        /**
>>>>         * Gets the value of the reset property.
>>>>         *
>>>>         * @return
>>>>         *     possible object is
>>>>         *     {_at_link Boolean }
>>>>         *
>>>>         */
>>>>        public Boolean isReset() {
>>>>            return reset;
>>>>        }
>>>>
>>>>        /**
>>>>         * Sets the value of the reset property.
>>>>         *
>>>>         * @param value
>>>>         *     allowed object is
>>>>         *     {_at_link Boolean }
>>>>         *
>>>>         */
>>>>        public void setReset(Boolean value) {
>>>>            this.reset = value;
>>>>        }
>>>>
>>>>    }
>>>>
>>>>
>>>> Now, is it possible to create an instance of 'GetUserStatus' and add it
>>>> to
>>>> the RpcType object via setRpcOperation?
>>>> --
>>>> View this message in context:
>>>> http://old.nabble.com/Cast-JAXB2-generated-object-to-JAXBElement--tp29534757p29534757.html
>>>> Sent from the java.net - jaxb users mailing list archive at Nabble.com.
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>>>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>>
>>>
>>>
>>
>> --
>> View this message in context:
>> http://old.nabble.com/Cast-JAXB2-generated-object-to-JAXBElement--tp29534757p29535064.html
>> Sent from the java.net - jaxb users mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>
>
>

-- 
View this message in context: http://old.nabble.com/Cast-JAXB2-generated-object-to-JAXBElement--tp29534757p29535763.html
Sent from the java.net - jaxb users mailing list archive at Nabble.com.