【问题标题】:Trying to get the XML element attributes using JIBX尝试使用 JIBX 获取 XML 元素属性
【发布时间】:2014-10-01 17:26:22
【问题描述】:

我有一个 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
}

我的问题是为什么没有为名为 Code 的 State 属性创建变量?

谢谢 拉杰

【问题讨论】:

    标签: java xml maven xsd jibx


    【解决方案1】:

    我让它以下列方式工作:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多