通过jaxb解析对swing UI定义xml的文件,自动构建图形界面
(2014-06-08 19:01:09)
标签:
swing
jaxb
xml
xmlbean
schema
分类:
技术
目的: 通过xml来配置UI的布局和关系,然后自动生成UI界面
描述:
对于一些固定类型的界面,如果每个都需要手动去组合比较麻烦,通过xml的定义可以从语义上将他们关系描述清楚,然后再通过对xml的解析,来完成自动构建。
1.定义出xml schema文件
https://onedrive.live.com/?cid=1CEBCD6F07092197&id=1CEBCD6F07092197!1081
2. 定义出xml 配置文件
https://onedrive.live.com/?cid=1CEBCD6F07092197&id=1CEBCD6F07092197!1083
3.用jdk自带的xjc命令来编译出对应schema的java源文件
@rem xml schema binding compile
@SET JAVA_HOME=F:\Oracle\Java\jdk1.7.0
%JAVA_HOME%\bin\xjc.exe -p king.flow.view -d ..\src\main\java
-verbose .\WindowXmlSchema.xsd
%JAVA_HOME%\bin\xjc.exe -p king.flow.data -d ..\src\main\java
-verbose .\commandSchema.xsd
通过jaxb的调用就可以很方便解析和构建xml结构了
解析方式:
this.context = JAXBContext.newInstance("king.flow.view");
Unmarshaller unmarshaller =
this.context.createUnmarshaller();
如果schma文件中只存在一个根node
T node = (T) unmarshaller.unmarshal(new File(this.xmlPath));
否则存在多个根节点就不能直接cast到jaxb编译出的对象了,会抛出异常
JAXBElement element = (JAXBElement) unmarshaller.unmarshal(new
File(this.xmlPath));
return element.getValue();
构建方式:
Marshaller marshaller = this.context.createMarshaller();
marshaller.marshal(node, StringWriter);
分享:
喜欢
0
赠金笔
加载中,请稍候......
评论加载中,请稍候...
发评论
登录名: 密码: 找回密码 注册记住登录状态
昵 称:
评论并转载此博文
发评论
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。