In my Response.xsd i have many elements like:
...
<xs:element type="xs:string" name="carModel" minOccurs="0">
</xs:element>
...
I have generated JAXBClasses from .xsd. Result:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
//...
"carModel"
//...
})
public static class Car{
//...
protected String carModel;
//...getter and setters.
}
Building my WebService response:
Car car = new Car();
//other params
car.setCarModel(null);
In generated response im getting:
<ax23:carModel xsi:nil="true"/>
But i have expected completly no carModel tag at all. I want to skip it completly
What im doing wrong? Why null becomes nil when nillable = false by default.
Im not sure, is that what you were asking for @Xstian:
Part of my web.xml:
<servlet>
<servlet-name>AxisServlet</servlet-name>
<servlet-class>
org.apache.axis2.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
My WEB-INF/services/CarService/META-INF/services.xml:
<service name="CarService" >
<Description>
Please Type your service description here
</Description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass" locked="false">com.foo.ws.CarService</parameter>
</service>
Use this annotation
@XmlElement(nillable=false)