2013-04-15 27 views
0

我有这个类设置为空字符串作为XSI:无=真

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; 
    } 

} 

如果我想设置userMessage变量设置为null,在显示时间,只是表示该

<userMessage /> 

我需要显示

<userMessage xsi:nil="true" /> 

我该怎么做?

+0

如果您希望所有元素都可用,您可以从WSDL/XSD生成JAXB对象,那么您可以告诉生成器为您添加'XmlElement(nillable = true)'。 –

+0

告诉发电机是什么意思?我怎么做? – Nacho321

回答

1

使用以下编组

@XmlElement(nillable = true) 
protected String userMessage; 

如果WSDL/XSD具有元件defind作为的nillable当将治疗null作为一个零,则代码生成将生成下列

protected JaxbElement<String> userMessage; 

我可以从你的javadoc知道,生成的代码不是你今天使用的。如果你击中他人的web服务,我建议从他们的wsdl生成正确的dto对象。您可以查看在jdk/bin目录中找到的xjc.exe和wsdl.exe的文档。