Good to know about @XmlElement(required = false, nillable = false), although it doesn't appear to be causing the empty elements to be removed from the class I am mapping. Will keep fiddling though.
Still wish there was an easy way to have CXF filter out fields on user request. I figured it would already exist in the framework, since it is a fairly common requirement. Every tool can't do everything though =) Currently working on a way to manipulate the resultant XML document that CXF generates (through JAXB). I'll contribute it when I am done if anyone is interested. Thanks for the help On Thu, Mar 5, 2009 at 6:18 PM, Daniel Kulp <[email protected]> wrote: > On Thu March 5 2009 8:42:50 pm Benson Margulies wrote: > > Isn't this for what minOccurs='0' was invented? In JAXB, I think > > that's required=false, nillable=true or some such. > > Right. It's actually required=false, nillable=false. With nillable > true, > if it's null, you get the element with xsi:nil="true" set. > > > Dan > > > > > > On Thu, Mar 5, 2009 at 6:00 PM, David Castro <[email protected]> > wrote: > > > Hrmm, how about dynamically? Really what I am going for is something > > > like: > > > > > > http://myapiserver.com/api/contacts?fields=id > > > > > > So this: > > > > > > <contact> > > > <id>0</id> > > > <firstName>A</firstName> > > > <lastName>B</lastName> > > > </contact> > > > > > > turns into this: > > > > > > <contact> > > > <id>0</id> > > > </contact> > > > > > > Although, in my particular case, I wouldn't just mind stripping out all > > > XML elements with empty content. I've already got a filter/interceptor > > > to empty fields I want to remove from the result XML...but those tags > > > still get included, which I want to avoid. Want to compress the XML to > > > only fields that have data. > > > > > > Would still be great if there were simply a way of telling CXF on the > fly > > > that only certain fields should make their way into the XML. If you > are > > > aware of a better way...I'm all ears =) > > > > > > Thanks, > > > David > > > > > > On Thu, Mar 5, 2009 at 2:50 PM, Ian Roberts > <[email protected]>wrote: > > >> David Castro wrote: > > >> > Is anyone is aware of how I can dynamically tell CXF (and thus JAXB) > > >> > that there are some fields I want excluded from the resultant XML > > >> > being > > >> > > >> returned? > > >> > > >> > I don't want to reinvent the wheel if I don't have to, but I can't > > >> > find information on how to do what I want using the CXF framework > > >> > rather than having to parse the XML outbound and remove what needs > > >> > removing. Ideas? > > >> > > >> @XmlTransient tells JAXB to exclude particular fields. You might need > > >> to annotate either the field directly or its get/set methods, > depending > > >> on the @XmlAccessorType of the containing class. > > >> > > >> Ian > > >> > > >> -- > > >> Ian Roberts | Department of Computer Science > > >> [email protected] | University of Sheffield, UK > > -- > Daniel Kulp > [email protected] > http://www.dankulp.com/blog >
