有什么程序可以根据一个xml生成java代码,最好java代码是基于dom4j或者jdom的?有这样的程序吗?
例如,一个简单的xml文件model.xml<?xml version="1.0" encoding="UTF-8"?>
<DSExport>
<Header CharacterSet="CP936"  Date="2013-08-06" Time="14.05.21" ServerVersion="8.1"/>
<Job Identifier="core_to_file_bcd_p" DateModified="2012-12-19" TimeModified="09.22.16">
<Record Identifier="ROOT" Type="JobDefn" Readonly="0">
<!--作业环境变量定义-->
<Property Name="Name">core_to_file_bcd_p</Property>
<Property Name="NextID">1</Property>
<Property Name="Container">V0</Property>
<Property Name="JobVersion">50.0.0</Property>
<Property Name="ControlAfterSubr">0</Property>
                </Record>        
       </Job>
</DSDxport>有没有什么程序,能够自动导入上述model.xml,从而生成有CreateXmlFile函数的java代码。         JavaXMLDOM编码UTF-8

解决方案 »

  1.   

    根据xml写一个xsd,使用jaxb(xjc)生成 Java文件
      

  2.   

    <xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="DSExport">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Header">
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute type="xs:string" name="CharacterSet"/>
                    <xs:attribute type="xs:date" name="Date"/>
                    <xs:attribute type="xs:string" name="Time"/>
                    <xs:attribute type="xs:float" name="ServerVersion"/>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
            <xs:element name="Job">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Record">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Property" maxOccurs="unbounded" minOccurs="0">
                          <xs:annotation>
                            <xs:documentation>作业环境变量定义</xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <xs:simpleContent>
                              <xs:extension base="xs:string">
                                <xs:attribute type="xs:string" name="Name" use="optional"/>
                              </xs:extension>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                      <xs:attribute type="xs:string" name="Identifier"/>
                      <xs:attribute type="xs:string" name="Type"/>
                      <xs:attribute type="xs:byte" name="Readonly"/>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
                <xs:attribute type="xs:string" name="Identifier"/>
                <xs:attribute type="xs:date" name="DateModified"/>
                <xs:attribute type="xs:string" name="TimeModified"/>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
    http://www.freeformatter.com/xsd-generator.html
      

  3.   

    为什么不直接生成class,而要生成代码再编译一次?
      

  4.   

    根据xml写一个xsd,使用jaxb(xjc)生成 Java文件。
    定义 Web Service 的入口,出口的时候经常用。