编组双列表和 class 转换异常

Marshaling a double list and class cast exception

我想在java中写一段代码,编组的结果是这样的:

<pointset>
//defining a point with x, y, and z values
<point>
  <XYZ> 1.0 2.5 4.6> </XYZ>
</point>
<point>
//defining a point with x, y, and z values
  <XYZ> 0.0 3.6 8.6> </XYZ>
</point>
</pointset>

XYZ 元素是双精度值列表。这可能吗?

P.S。我使用 JAXB。

我发现最简单的方法是为 XML 文件创建 XML 架构,然后从架构生成 Java 类 .

您的架构 (myxml.xsd) 将是:

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <xsd:element name="pointset" type="PointSet" />

  <xsd:complexType name="PointSet" final="extension restriction">
    <xsd:sequence>
      <xsd:element name="point" type="Point" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="Point" final="extension restriction">
    <xsd:sequence>
      <xsd:element name="XYZ" type="XYZ" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:simpleType name="XYZ">
    <xsd:list itemType="xsd:double" />
  </xsd:simpleType>

</xsd:schema>

使用Java自带的xjc命令生成类.

xjc myxml.xsd -p myxml