2012-07-16 85 views
0

我有一个使用默认值的WSDL文件,我想生成使用CXF创建具有这些默认值的方法的ObjectFactory类。例如,我曾这样定义如何用使用默认值的方法生成ObjectFactory类?

<xsd:complexType name="Smoker"> 
      <xsd:sequence>   
        <xsd:element default="0" minOccurs="0" name="numCigarettesPerDay" nillable="false" type="xsd:integer"/>   
        <xsd:element default="0" minOccurs="0" name="numYearsSmoking" nillable="false" type="xsd:integer"/> 
      </xsd:sequence> 
    </xsd:complexType> 

一个对象,我想这样的

public Smoker createSmoker() { 
      Smoker smoker = new Smoker(); 
      smoker.setNumCigarettesPerDay(0); 
      smoker.setNumYearsSmoking(0); 
      return smoker; 
    } 

而是这一个

public Smoker createSmoker() { 
      return new Smoker(); 
    } 

回答

1

的CXF XJC默认值插件的方法提供了一个XJC插件,用于更新生成的bean,以返回架构中定义的默认值,用于实例中未设置的字段。

有链接是你能找到你需要做的更多信息:

希望这有助于。

+0

我已经使用过CXF XJC插件,但是这个插件只为每个类生成代码,而不是为'ObjectFactory'类生成代码。例如,使用CXF XJC插件,我会得到以下两种方法: public Integer getNumCigarettesPerDay(){ if(numCigarettesPerDay == 0){ return 0; } return numCigarettesPerDay; } public Integer getNumYearsSmoking(){ if(numYearsSmoking == 0){ return 0; } return numYearsSmoking; } – Gorayni 2012-07-17 14:33:26