0

我正在为 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 对象不包含元素名称“valuationRules”的定义,其中包含一些值,我需要访问它们。

我手动修改了returnLegValuationPrice的定义如下,生成的java对象有valuationRules的定义。

**<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 对象是否正确并且还有其他方法可以获取数据?

4

1 回答 1

0

看起来我们在栅栏的两边都有同样的问题;-) TRS GUI 你好!

试着把它放在你的 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 方面也有帮助 :) - 请让我知道它是否有效

于 2015-06-17T16:46:14.847 回答