次のパターンを持つ JAXB によって生成された XML を期待しています。
<payload>
<parameters>
<paramName>clientAssocIds</paramName>
<paramVal>0207</paramVal>
<paramName>quoteType</paramName>
<paramVal>NTB</paramVal>
<paramName>quoteDateLimitDays</paramName>
<paramVal>365</paramVal>
<paramName>externalIndicator</paramName>
<paramVal>1</paramVal>
</parameters>
</payload>
<paramName>
とは<paramVal>
、名前と値のペアであり<paramVal>
、従わなければならないことを意味します<paramName>
。
XML スキーマを作成し、JAXB を使用してこのスキーマに基づいて Java クラスを生成し、すべての値を設定してクラスをマーシャリングしましたが、上記で期待した xml パターンを生成しませんでした。
ここに私のスキーマがあります:
<xsd:complexType name="sgrpCommonMessage">
<xsd:sequence>
<xsd:element name="payload" type="payload" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="payload">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element name="parameters" type="parameter" />
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="parameter">
<xsd:sequence>
<xsd:element minOccurs="0" name="paramName" type="xsd:string" />
<xsd:element minOccurs="0" name="paramVal" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
生成された xml にはいくつか<parameters>
の が含まれていますが、これは私が期待するものではありません。<paramName>
すべてのand<paramVal>
ペアを1つにラップしたい<parameters>
:
<payload>
<parameters>
<paramName>quoteDateLimitDays</paramName>
<paramVal>NTB</paramVal>
</parameters>
<parameters>
<paramName>clientAssocIds</paramName>
<paramVal>0207</paramVal>
</parameters>
<parameters>
<paramName>quoteType</paramName>
<paramVal>NTB</paramVal>
</parameters>
<parameters>
<paramName>externalIndicator</paramName>
<paramVal>NTB</paramVal>
</parameters>
</payload>
JAXB がそのような XML 構造を実現できるかどうか疑問に思っています。そうでない場合は、どの API を使用すればよいですか?