下载xmlbeans
假如解压路径为:
E:/tools/xmlbeans-2.5.0/
要生成的定义文件及javabean对象路径为:
E:/tools/xmlbeans-2.5.0/temp
把要解析的xml文件offer_example.xml 放到E:/tools/xmlbeans-2.5.0/temp目录下。
接下来执行以下步骤
1:
E:/tools/xmlbeans-2.5.0/bin>
2:
inst2xsd -design ss -simple-content-types smart -enumerations never -outDir E:/tools/xmlbeans-2.5.0/temp E:/tools/xmlbeans-2.5.0/temp/offer_example.xml
3:在E:/tools/xmlbeans-2.5.0/temp目录下生成三个xsd定义文件,接下来会以xsd定义文件生成javabean,如果要改变某些具体字段的类型,请在xsd中找到对应的结点,将类型进行相对的修改即可。
有需要生成包路径需求的情况下,需要
添加一个config.xsdconfig文件
<?xmlversion="1.0" encoding="UTF-8"?>
<xb:configxmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config">
<xb:namespace>
<xb:package>com.ace.carinfo</xb:package>
</xb:namespace>
</xb:config>
4:
scomp -src e:/tools/xmlbeans-2.5.0/temp -javasource 1.5 e:/tools/xmlbeans-2.5.0/temp/schema0.xsd e:/tools/xmlbeans-2.5.0/temp/schema1.xsd e:/tools/xmlbeans-2.5.0/temp/schema2.xsd e:/tools/xmlbeans-2.5.0/temp/schema3.xsd
config.xsdconfig 需要生成包路径的话,结尾加上。
注:schema0 ,schema1, schema2 ,schema3.xsd 是根据xml文件的层级自动生成的定义文件,如果有多个依次类推。
最后会在E:/tools/xmlbeans-2.5.0/bin目录下生成一个xmltype.jar
拷贝到项目中即可引用
import de.volkswagen.star.server.schnittstellen.stab.part.PartDocument;
具体路径参考生成的javabean文件。
注:
实际应用中,步骤2以smart方式自动生成的节点类型可能会不正确,所以我建议将所有类型全设置为string
将第2步改为如下:
inst2xsd -enumerations never -design rd -simple-content-types string -verbose -validate -outDir E:/tools/xmlbeans-2.5.0/temp E:/tools/xmlbeans-2.5.0/temp/offer_example.xml
上述第4步的时候,有时会产生以下错误:
D:\xmlbeans-2.6.0\bin>scomp -src D:/xmlbeans-2.6.0/temp -javasource -compiler %JAVA_HOME%\bin\javac D:/xmlbeans-2.6.0/temp/schema0.xsd
Time to build schema type system: 0.397 seconds
Time to generate code: 0.064 seconds
java.io.IOException: Cannot run program "D:\xmlbeans-2.6.0\bin\javac": CreateProcess error=2, ?????????
java.io.IOException: CreateProcess error=2, ?????????
java.io.IOException: Cannot run program "D:\xmlbeans-2.6.0\bin\javac": CreateProcess error=2, ?????????
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at org.apache.xmlbeans.impl.tool.CodeGenUtil.externalCompile(CodeGenUtil.java:231)
at org.apache.xmlbeans.impl.tool.SchemaCompiler.compile(SchemaCompiler.java:1154)
at org.apache.xmlbeans.impl.tool.SchemaCompiler.main(SchemaCompiler.java:373)
Caused by: java.io.IOException: CreateProcess error=2, ?????????
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(Unknown Source)
at java.lang.ProcessImpl.start(Unknown Source)
... 6 more
BUILD FAILED
解决办法:
配置XMLBean环境变量,JAVA_HOME改由以下命令执行即可。
D:\xmlbeans-2.6.0\bin>scomp -src D:/xmlbeans-2.6.0/temp -compiler %JAVA_HOME%\bin\javac D:/xmlbeans-2.6.0/temp/schema0.xsd
------------------------------------------------------------------------------------------------------------
XMLBeans 最新版本2.6.0
最近在项目中使用了一下,非常方便。下载解压之后,
1. 配置环境变量:
XMLBEANS_HOME:E:\Download\Production Development\xmlbeans-2.6.0\xmlbeans-2.6.0
添加到Path: %XMLBEANS_HOME%\bin;
2. 在E:\Download\Production Development\xmlbeans-2.6.0\xmlbeans-2.6.0目录下创建temp文件夹,方便管理操作。
把XSD 定义文件放到temp夹下,比如:xmldefine.xsd
3. CMD
E:
cd E:\Download\Production Development\xmlbeans-2.6.0\xmlbeans-2.6.0\temp
scomp -out xmlportletfactory.jar xmldefine.xsd
OK 了,在temp文件夹下会生成一个叫xmldefine.jar
4. 在java项目中引入 xbean.jar以及xmldefine.jar
假如XML中父节点是ace 那么在java中就可以像下面这样使用
AceDocument ad = AceDocument.Factory.newInstance();
创建子节点ad.addNewXXX();
以上就是新版本的应用,暂时写这么多,继续使用研究中...
不知道大连现在各IT公司的形势如何呀+—-+