用Jpa编写XML文件

时间:2012-06-28 22:52:57

标签: java xml jpa jaxb

我使用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文件。有解决方案吗?谢谢你的帮助:)

0 个答案:

没有答案