我想在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。
答案 0 :(得分:0)
我发现最简单的方法是为XML文件创建XML Schema,然后从Schema生成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