我使用JAXB.marshal(list,file.xml)来编写XML文件。它工作得很好,我可以将数据导入excel或访问。但所有列都以字符串形式导入,但有些列是双精度或日期。对于日期字段,我使用了@Temporal(javax.persistence.TemporalType.DATE)注释。如何将数据类型保存在xml文件中? 或者我必须将其保存在XML Schema中吗?如果是这样,我可以用jpa自动生成它吗?
编辑:我设法生成了一个xml和xsd文件:
XSD:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="eintragListe">
<xs:sequence>
<xs:element name="Eintrag" type="eintrag" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="eintrag">
<xs:sequence>
<xs:element name="art" type="xs:string" minOccurs="0"/>
<xs:element name="betrag" type="xs:double"/>
<xs:element name="datum" type="xs:dateTime" minOccurs="0"/>
<xs:element name="id" type="xs:int"/>
<xs:element name="pa" type="xs:int"/>
<xs:element name="typ" type="xs:string" minOccurs="0"/>
<xs:element name="verwendung" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
XML:
<?xml version="1.0" encoding="UTF-8"?>
<ns2:eintragListe xmlns:ns2="www">
<Eintrag>
<art>Einmalig</art>
<betrag>27.0</betrag>
<datum>2012-06-01T00:00:00+02:00</datum>
<id>601</id>
<pa>-1</pa>
<typ>Ausgabe</typ>
<verwendung>Irgendswas</verwendung>
</Eintrag>
<Eintrag>
<art>Einmalig</art>
<betrag>17.0</betrag>
<datum>2012-06-01T00:00:00+02:00</datum>
<id>502</id>
<pa>-1</pa>
<typ>Ausgabe</typ>
<verwendung>Irgendwasanderes</verwendung>
</Eintrag>
</ns2:eintragListe>
我现在想将这些文件导入excel,但我总是收到一个错误,即架构不适合xml文件。有解决方案吗?谢谢你的帮助:)