我正在使用FPML 5.0 xsd的xjc命令生成JAXB对象,但是没有正确创建returnLegValuationPrice生成的java对象。
returnLegValuationPrice在fpml-eq-shared-5-0.xsd中定义,具有以下定义:
**<xsd:complexType name="ReturnLegValuationPrice">
<xsd:complexContent>
<xsd:extension base="Price">
<xsd:sequence>
<xsd:element name="valuationRules" type="EquityValuation" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">Specifies valuation.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>**
生成的java对象不包含元素名称“valuRules”的定义,其中包含一些值,我需要访问它们。
我手动修改了returnLegValuationPrice的定义,如下所示,生成的java对象具有valuRules的定义。
**<xsd:complexType name="ReturnLegValuationPrice">
<xsd:complexContent>
<xsd:extension base="DirectionalLegUnderlyer">
<xsd:sequence>
<xsd:element name="valuationRules" type="EquityValuation" minOccurs="0">
<xsd:annotation>
<xsd:documentation xml:lang="en">Specifies valuation.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>**
有人可以帮助解决这种奇怪行为的可能原因,或者生成的java对象是否正确以及是否有其他方法来获取数据?
答案 0 :(得分:0)
看起来我们在围栏的两边都有同样的问题;-)来自TRS GUI的Hello!
尝试将它放在bindings.jxb文件中,xjc:simple就是答案......
<jxb:globalBindings >
<xjc:simple/>
</jxb:globalBindings>
您将需要手动解决一些名称冲突,因此也要添加它并自定义参数名称:
<jxb:bindings schemaLocation="../xsd/fpml-com-5-0.xsd">
<jxb:bindings node="//xsd:complexType[@name='CommodityMarketDisruption']//xsd:element[@name='marketDisruptionEvents']">
<jxb:property name="mde"/>
</jxb:bindings>
<jxb:bindings node="//xsd:complexType[@name='CommodityMarketDisruption']//xsd:element[@name='disruptionFallbacks']">
<jxb:property name="df"/>
</jxb:bindings>
</jxb:bindings>
希望在Calypso方面也有帮助:) - 请告诉我是否有效