Question

I have this class

package com.ni.schemas.provider_framework._1.providers;

import java.math.BigInteger;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;


/**
 * 
 *                 This is the top-level for a Request. 
 *                 Providers may extend this type if needed, but may not restrict it by blocking the pre-defined elements
 *             
 * 
 * <p>Clase Java para RequestErrorType complex type.
 * 
 * <p>El siguiente fragmento de esquema especifica el contenido que se espera que haya en esta clase.
 * 
 * <pre>
 * &lt;complexType name="RequestErrorType">
 *   &lt;complexContent>
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
 *       &lt;sequence>
 *         &lt;element name="httpResponseCode" type="{http://www.w3.org/2001/XMLSchema}integer"/>
 *         &lt;group ref="{http://www.ni.com/schemas/provider-framework/1/providers}ErrorElementGroup"/>
 *       &lt;/sequence>
 *     &lt;/restriction>
 *   &lt;/complexContent>
 * &lt;/complexType>
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "RequestErrorType", propOrder = {
    "httpResponseCode",
    "summary",
    "userMessage",
    "detail"
})
public class RequestErrorType {

    @XmlElement(required = true)
    protected BigInteger httpResponseCode;
    protected String summary;
    protected String userMessage;
    protected String detail;

    /**
     * Obtiene el valor de la propiedad httpResponseCode.
     * 
     * @return
     *     possible object is
     *     {@link BigInteger }
     *     
     */
    public BigInteger getHttpResponseCode() {
        return httpResponseCode;
    }

    /**
     * Define el valor de la propiedad httpResponseCode.
     * 
     * @param value
     *     allowed object is
     *     {@link BigInteger }
     *     
     */
    public void setHttpResponseCode(BigInteger value) {
        this.httpResponseCode = value;
    }

    /**
     * Obtiene el valor de la propiedad summary.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getSummary() {
        return summary;
    }

    /**
     * Define el valor de la propiedad summary.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setSummary(String value) {
        this.summary = value;
    }

    /**
     * Obtiene el valor de la propiedad userMessage.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getUserMessage() {
        return userMessage;
    }

    /**
     * Define el valor de la propiedad userMessage.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setUserMessage(String value) {
        this.userMessage = value;
    }

    /**
     * Obtiene el valor de la propiedad detail.
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getDetail() {
        return detail;
    }

    /**
     * Define el valor de la propiedad detail.
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setDetail(String value) {
        this.detail = value;
    }

}

If I want to set the userMessage variable to null, on display-time, is just shows this

<userMessage />

and I need to display

<userMessage xsi:nil="true" />

How can I do this?

Was it helpful?

Solution

Using the following will treat a null as a nil when marshalled

@XmlElement(nillable = true)
protected String userMessage;

If the WSDL/XSD has the element defind as nillable, then code generation will generate the following

protected JaxbElement<String> userMessage;

I can tell from your javadoc that the code generated is not what you are using today. If you are hitting against another's webservice I suggest generating the correct dto objects from their wsdl. You can look at documentation for xjc.exe and wsdl.exe that are found in your jdk/bin directory.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top