That's just an org.w3c.dom.Element.

On Wed, Oct 13, 2010 at 5:33 PM, Jeffrey Rodgers <[email protected]> wrote:
> Right, that gives me a:
> "com.sun.org.apache.xerces.internal.dom.ElementNSImpl" class
>
> Which eclipse lists as a forbidden reference. I can lift the restriction and
> toy with that I suppose.  I definitely expected something similar to what
> you described, but that threw me for a loop.  There are some hits on Google
> to at least further investigate.
>
> Jeffrey
>
> On Wed, Oct 13, 2010 at 5:07 PM, Daniel Kulp <[email protected]> wrote:
>
>>
>> My suggestion is to do a System.out.pritnln(_any.getClass().getName())
>> to see what the real class is for the object and then go from there.  It's
>> likely one of:
>>
>> some subclass of org.w3c.dom.Element
>> or
>> JAXBElement  (grab the object/value out of it)
>> or
>> SubjectsDS
>>
>>
>> Dan
>>
>>
>>
>> On Wednesday 13 October 2010 4:28:03 pm Jeffrey Rodgers wrote:
>> > I have one @XmlSeeAlso in the SrvSoap SEI, the block as follows:
>> >
>> > @WebService(targetNamespace = "http://foo/moo/";, name = "SrvSoap")
>> > @XmlSeeAlso({ObjectFactory.class})
>> > public interface SrvSoap {
>> >     @WebResult(name = "GetLatestSubjectsDSResult", targetNamespace = "
>> > http://foo/moo/";)
>> >     @RequestWrapper(localName = "GetLatestSubjectsDS", targetNamespace =
>> "
>> > http://foo/moo/";, className = "com.srv.GetLatestSubjectsDS")
>> >     @WebMethod(operationName = "GetLatestSubjectsDS", action = "
>> > http://foo/moo/GetLatestSubjectsDS";)
>> >     @ResponseWrapper(localName = "GetLatestSubjectsDSResponse",
>> > targetNamespace = "http://foo/moo/";, className =
>> > "com.srv.GetLatestSubjectsDSResponse")
>> >     public com.srv.GetLatestSubjectsDSResponse.GetLatestSubjectsDSResult
>> > getLatestSubjectsDS(
>> >         @WebParam(name = "numSubjects", targetNamespace =
>> > "http://foo/moo/";) int numSubjects,
>> >         @WebParam(name = "lastId", targetNamespace = "http://foo/moo/";)
>> >         int lastId
>> >     );
>> >
>> > The JAXB unmarshaller was the first place I went to earlier, but since
>> _any
>> > is an Object and doesn't want to accept an obvious cast from me, I have
>> not
>> > been able to properly pass it to unmarshall method (maybe I am missing
>> > something very obvious with accessing the innards of that any property).
>> >
>> > Thanks,
>> > Jeff
>> >
>> > On Wed, Oct 13, 2010 at 4:08 PM, Daniel Kulp <[email protected]> wrote:
>> > > If CXF generated the code for that schema, there should also be an
>> > > @XmlSeeAlso
>> > > annotation on the SEI that points to the OjbectFactory for that schema.
>> > > That SHOULD make it more or less just work.   Can you check to see if
>> the
>> > > XmlSeeAlso is there?
>> > >
>> > > If it IS a DOM, you can always do something along the lines of:
>> > >
>> > >
>> > >
>> JAXBContext.newContext(SubjectsDS.class).createUnmarshaller().unmarshall(
>> > > dom, SubjectsDS.class);
>> > >
>> > >
>> > >
>> > > Dan
>> > >
>> > > On Wednesday 13 October 2010 4:02:56 pm Jeffrey Rodgers wrote:
>> > > > Benson,
>> > > >
>> > > > Thanks for the help and back/forth-
>> > > >
>> > > > I'm pretty sure CXF does know the schema though, no?  Part of the
>> WSDL
>> > >
>> > > has
>> > >
>> > > > a schema import for that particular s:any namespace in the form of:
>> > > >       <s:import namespace="http://tempuri.org/SubjectsDS.xsd"/>
>> > > >       <s:import schemaLocation="
>> > > >
>> > > > http://localhost:9999/Srv.asmx?schema=SubjectsDS"; namespace="
>> > > > http://tempuri.org/SubjectsDS.xsd"/>
>> > > >
>> > > > The schema for that particular object is gigantic, since the owners
>> of
>> > >
>> > > that
>> > >
>> > > > web service decided to put everything into a single table back on the
>> > > > DS. It's essentially dozens of ints, strings, a couple timestamps,
>> and
>> > > > some binary data.  CXF's wsdl2java code generation did in fact
>> > > > generate a
>> > >
>> > > fully
>> > >
>> > > > featured SubjectsDS to at least contain the schema (equally bloated
>> but
>> > >
>> > > it
>> > >
>> > > > is what it is) too.
>> > > >
>> > > > I guess at the most basic level, what's the preferred way to actually
>> > > > access the XML inside that any?  I can likely make the translation
>> and
>> > > > mapping myself, but I can't seem to bust into that abstract object.
>> > > >
>> > > > Jeff
>> > > >
>> > > > On Wed, Oct 13, 2010 at 3:52 PM, Benson Margulies
>> > >
>> > > <[email protected]>wrote:
>> > > > > The 'any' means that Microsoft knows the structure of this data but
>> > > > > isn't telling us. Since it isn't telling us, we can't do anything
>> > > > > about it. You could ask them what's up with the 'any':-)
>> > > > >
>> > > > > If you could come up with your own XML schema for what shows up in
>> > > > > there, I could offer some suggestions for how to use it.
>> > > > >
>> > > > > On Wed, Oct 13, 2010 at 3:50 PM, Jeffrey Rodgers
>> > > > > <[email protected]>
>> > > > >
>> > > > > wrote:
>> > > > > > Benson,
>> > > > > >
>> > > > > > Yes, that was my suspicion - the xs:any is in fact part of the
>> > > > > > WSDL.
>> > >
>> > >  I
>> > >
>> > > > > > can't seem to crack the nut on how to use that any property or
>> the
>> > > > > > getAny accessor to unmarshall back to the generated java
>> equivalent
>> > >
>> > > of
>> > >
>> > > > > > my .NET
>> > > > >
>> > > > > DS
>> > > > >
>> > > > > > (essentially a couple pages of public properties in
>> > > > > > SubjectsDS.java)
>> > > > > >
>> > > > > > The WSDL for that particular section:
>> > > > > >      <s:element name="GetLatestSubjectsDSResponse">
>> > > > > >
>> > > > > >        <s:complexType>
>> > > > > >
>> > > > > >          <s:sequence>
>> > > > > >
>> > > > > >            <s:element minOccurs="0" maxOccurs="1"
>> > > > > >
>> > > > > > name="GetLatestSubjectsDSResult">
>> > > > > >
>> > > > > >              <s:complexType>
>> > > > > >
>> > > > > >                <s:sequence>
>> > > > > >
>> > > > > >                  <s:any
>> > > > > >                  namespace="http://tempuri.org/SubjectsDS.xsd
>> > >
>> > > "/>
>> > >
>> > > > > >                </s:sequence>
>> > > > > >
>> > > > > >              </s:complexType>
>> > > > > >
>> > > > > >            </s:element>
>> > > > > >
>> > > > > >          </s:sequence>
>> > > > > >
>> > > > > >        </s:complexType>
>> > > > > >
>> > > > > >      </s:element>
>> > > > > >
>> > > > > > Thanks,
>> > > > > > Jeffrey
>> > > > > >
>> > > > > > On Wed, Oct 13, 2010 at 3:41 PM, Benson Margulies
>> > > > > > <[email protected]
>> > > > > >
>> > > > > >wrote:
>> > > > > >> Jefferson,
>> > > > > >>
>> > > > > >> It sounds as if the XML Schema in the WSDL uses an xs:any
>> > > > > >> particle, and that .NET has magic ways of turning this into a
>> DS.
>> > > > > >>
>> > > > > >> All CXF can do with an 'any', by default, is give you the XML
>> DOM
>> > >
>> > > for
>> > >
>> > > > > >> whatever arrives.
>> > > > > >>
>> > > > > >> In the data bindings, you can add custom handling, or you can
>> work
>> > > > > >> with the DOM object.
>> > > > > >>
>> > > > > >> Please have a look at the schema and see if I'm right about the
>> > >
>> > > 'any'.
>> > >
>> > > > > >> --benson
>> > > > > >>
>> > > > > >>
>> > > > > >> On Wed, Oct 13, 2010 at 2:29 PM, Jeffrey Rodgers <
>> > >
>> > > [email protected]>
>> > >
>> > > > > >> wrote:
>> > > > > >> > Hello,
>> > > > > >> >
>> > > > > >> > I've used the wsdl2java application to generate the following
>> > > > > >> > classes
>> > > > >
>> > > > > for
>> > > > >
>> > > > > >> my
>> > > > > >>
>> > > > > >> > particular WSDL:
>> > > > > >> >
>> > > > > >> > GetLatestSubjectsDS.java
>> > > > > >> > GetLatestSubjectsDSResponse.java
>> > > > > >> > Init.java
>> > > > > >> > InitResponse.java
>> > > > > >> > ObjectFactory.java
>> > > > > >> > package-info.java
>> > > > > >> > SaveSubject.java
>> > > > > >> > SaveSubjectResponse.java
>> > > > > >> > SrvSoap.java
>> > > > > >> > Srv.java
>> > > > > >> > SrvSoap_SrvSoap_Client.java
>> > > > > >> > SrvSoap_SrvSoap12_Client.java
>> > > > > >> > SubjectsDS.java
>> > > > > >> >
>> > > > > >> > Which I then pulled into Eclipse for usage.  The most basic
>> > > > > >> > basic web service calls are working as expected, but I am
>> > > > > >> > having difficulties
>> > > > >
>> > > > > using
>> > > > >
>> > > > > >> > our GetLatestSubjects web service call which should a set of
>> > > > >
>> > > > > "Subjects"
>> > > > >
>> > > > > >> data
>> > > > > >>
>> > > > > >> > to the client, in which I would ideally unmarshalling into a
>> > > > >
>> > > > > SubjectsDS
>> > > > >
>> > > > > >> > object.  We treat this as a dataset in .NET but I understand
>> > > > > >> > that
>> > > > >
>> > > > > won't
>> > > > >
>> > > > > >> be
>> > > > > >>
>> > > > > >> > happening here.  Within SubjectsDS is a multitude of
>> properties
>> > > > > >> > (more
>> > > > > >>
>> > > > > >> than a
>> > > > > >>
>> > > > > >> > dozen).
>> > > > > >> >
>> > > > > >> > As far as I can tell, the only accessors that I can play with
>> in
>> > >
>> > > the
>> > >
>> > > > > >> > GetLatestSubjectsDSResponse is an "any" property which looks
>> > > > > >> > like
>> > >
>> > > a
>> > >
>> > > > > >> > DOM-esque object in the debugger (as expected given the web
>> > > > > >> > service's origin).  I'm unsure what to do with this from here,
>> > > > > >> > but more
>> > > > >
>> > > > > importantly
>> > > > >
>> > > > > >> > may fear that I'm going about this in a wrong way given my
>> > > > >
>> > > > > inexperience
>> > > > >
>> > > > > >> with
>> > > > > >>
>> > > > > >> > CXF.
>> > > > > >> >
>> > > > > >> > Thanks in advance,
>> > > > > >> > Jefferson
>> > >
>> > > --
>> > > Daniel Kulp
>> > > [email protected]
>> > > http://dankulp.com/blog
>>
>> --
>> Daniel Kulp
>> [email protected]
>> http://dankulp.com/blog
>>
>

Reply via email to