2014-10-01 49 views
0

我有一個XML,其中一些元素具有屬性。以下是例子;嘗試使用JIBX獲取XML元素屬性

<RATES> 
<DATE>09/30/2014</DATE> 
<TIME>06:35:00</TIME> 
<STATE CODE="AK"> 
    <PRODUCT/> 
    <PRODUCT/> 
</STATE> 
<STATE CODE="AL"> 
    <PRODUCT/> 
    <PRODUCT/> 
</STATE> 
</RATES> 

我已經定義了XML模式定義如下:

<xsd:element name="RATES" type="RATES_REF" /> 

<xsd:complexType name="RATES_REF"> 
    <xsd:sequence> 
     <xsd:element name="DATE" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     <xsd:element name="TIME" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     <xsd:element name="STATE" type ="STATE_REF" minOccurs="0" maxOccurs="100"> 
      <xsd:complexType> 
       <xsd:attribute name="CODE" type="xsd:string" use="required"></xsd:attribute> 
      </xsd:complexType> 
     </xsd:element> 
    </xsd:sequence> 
</xsd:complexType> 

請忽略STATE_REF詳細的我覺得這是這裏的問題無關。

現在我正在使用JIBX來生成映射Java對象。我正在使用Maven並使用JIBX插件來生成Java對象。生成的Java對象如下:

public class RATESREF 
{ 
    private String DATE; 
    private String TIME; 
    private List<STATEREF> STATEList = new ArrayList<STATEREF>(); 
    //Ignore Getters/Setters 
} 

public class STATEREF 
{ 
    private List<PRODUCTREF> PRODUCTList = new ArrayList<PRODUCTREF>(); 
    //Ignore Getters/Setters 
} 

我的問題給大家就是爲什麼在那裏沒有了代號爲國家屬性創建的變量?

感謝 拉吉

回答

0

我得到了它以下列方式工作:

<xsd:element name="RATES" type="RATES_REF" /> 

<xsd:complexType name="RATES_REF"> 
    <xsd:sequence> 
     <xsd:element name="DATE" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     <xsd:element name="TIME" type="xsd:string" minOccurs="0" maxOccurs="1"/> 
     <xsd:element name="STATE" type ="STATE_REF" minOccurs="0" maxOccurs="unbounded"/> 
    </xsd:sequence> 
</xsd:complexType> 

<xsd:complexType name="STATE_REF"> 
    <xsd:sequence> 
     <xsd:element name="PRODUCT" type="PRODUCT_REF" minOccurs="0" maxOccurs="unbounded" /> 
    </xsd:sequence> 
    <xsd:attribute type="xsd:string" name="CODE"/> 
</xsd:complexType>