- 浏览: 70974 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
george.gu:
lqjacklee 写道怎么解决。。 First: Conf ...
Bad version number in .class file -
lqjacklee:
怎么解决。。
Bad version number in .class file -
flyqantas:
would you pleade left more mate ...
UML Extension
1.1.1 JAXB 2.0: ObjectàXML
Using JAXB 2.0 embedded in JDK 1.6.
Marshal Object to XML bytes:
public byte[] marshalToBytes(Object o) throws Exception { JAXBContext context = JAXBContext.newInstance(o.getClass());
ByteArrayOutputStream bos = new ByteArrayOutputStream(); Marshaller m = context.createMarshaller(); m.setProperty(Marshaller.JAXB_ENCODING, "UTF-8"); //set XML encoding. m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); //output formatted xml. m.setProperty(Marshaller.JAXB_FRAGMENT, false);// ignore XML header or not. m.marshal(o, bos);
return bos.toByteArray(); } |
If you want to output XML to specific file, please udpate "ByteArrayOutputStream bos" to write XML into external file.
1.1.2 Object class should have empty constructor
1.1.3 @XmlTransient to ignore some properties
Some temporary data or some cycle reference relation.
For example, DDFNode.parentDDFNode.
1.1.4 @XmlJavaTypeAdapter
@XmlJavaTypeAdapter is used to adapter complex Object which is not recognized by JAXB into a simple or customized Object.
1) XmlAdapter.marshal(BoundType):
a. Convert Object to another ValueType which is recognized by JAXB. Or Which is customized rather than JAXB.
b. Used when ObjectàXml
2) XmlAdapter.unmarshal(ValueType):
a. Convert ValueType Object to java Object requested by business logical.
b. Used when XmlàObject
“List<String> tacs” instead of “Set tacs”
@XmlJavaTypeAdapter on field will lead to additional container tag. For example:
@XmlJavaTypeAdapter(FileNamesAdapter.class)
Map<String, String> profileMappings;
Will lead to XML like following:
…
< profileMappings >
<profile-mapping …/>
<!--your wrapper xml element-->;
</ profileMappings >
But not:
<profile-mapping …/>
It’s better to use List<> as collection implementation. And all the Object use simple type.
There should be dedicated Xml Java adapter for DDFNode, because:
1) DFPropterties is dedicated complex element
2) Some elements have empty tag
3) List of child Nodes
4) …
1.1.5 @XmlType: Order of the Element: @XmlType(propOrder = {“parameterNames”})
Use field name but not element name.
All the fields should be specified, even some of them are ignored by @XmlTransient.
1.1.6 Do not set CYCLE reference on Objects.
Normally, JAXB can detect the cycle reference problem.
1.1.7 @XmlSeeAlso: used to bind related InteriorDDFNode and LeafDDFNode
@XmlSeeAlso({InteriorDDFNode.class, LeafDDFNode.class})
public abstract class DDFNode extends IdClass {
…
}
@XmlSeeAlso can be used to link the bund to its related subclasses. It will be used to define InteriorDDFNode and LeafDDFNode. Because DDFTree use following definition:
@XmlElement(name = "Node") private List<DDFNode> ddfNodes; |
1.1.8 @XmlElementWrapper or not
@XmlElementWrapper is used to add a container tag for list,
For model/ddf, model/profile-mapping, there is no @XmlElementWrapper.
But for ddf*.xml, @XmlElementWrapper is used to define container, such as Node/DFProperties/AccessType(Get?, Add?, …).
1.1.9 @XmlSeeAlso + @XmlJavaTypeAdapter = what will happen????
1.1.10 @XmlElements + @XmlJavaTypeAdapter to generate DDFNode/DFProperties
There is no dedicated DFProperties bean object inside DDFNode.java.
Information for DFProperties are dynamic and has different value types.
Use XmlJavaTypeAdapter convert String value list to AccessType Object List:
List<AccessTypeBase> accessTypes = new ArrayList<AccessTypeBase>(); for (String access : b.accessTypes) { if (access.equalsIgnoreCase(AccessTypeAdd.ACCESS)) { accessTypes.add(new AccessTypeAdd()); } else if (access.equalsIgnoreCase(AccessTypeCopy.ACCESS)) { accessTypes.add(new AccessTypeCopy()); } else if (access.equalsIgnoreCase(AccessTypeDelete.ACCESS)) { accessTypes.add(new AccessTypeDelete()); } else if (access.equalsIgnoreCase(AccessTypeExec.ACCESS)) { accessTypes.add(new AccessTypeExec()); } else if (access.equalsIgnoreCase(AccessTypeReplace.ACCESS)) { accessTypes.add(new AccessTypeReplace()); } else { accessTypes.add(new AccessTypeGet()); } } |
We can also use Map<accessTyeString, classNameString> to ignore many if...else....
Define XmlElements according to different Access Type class instance:
@XmlElementWrapper(name = "AccessType") @XmlElements( { @XmlElement(name="Add",type=AccessTypeAdd.class), @XmlElement(name="Copy",type=AccessTypeCopy.class), @XmlElement(name="Delete",type=AccessTypeDelete.class), @XmlElement(name="Exec",type=AccessTypeExec.class), @XmlElement(name="Get",type=AccessTypeGet.class), @XmlElement(name="Replace",type=AccessTypeReplace.class) }) public List<AccessTypeBase> accessTypes; |
Then it will generate the XML format like following:
<AccessType> <Get/> <Add/> <Replace/> </AccessType> |
发表评论
文章已被作者锁定,不允许评论。
-
javax.naming.CommunicationException: remote side declared peer gone on this JVM.
2012-07-11 09:44 2329javax.naming.ServiceUnavailable ... -
Generate special format numbers
2012-04-27 00:06 867DecimalFormat df = new DecimalF ... -
Singleton Service in Weblogic Cluster
2012-03-21 00:12 653http://blog.csdn.net/mobicents/ ... -
Scheduled ThreadPool Executor suppressed or stopped after error happen
2012-03-20 16:54 1004ScheduledThreadPoolExecutor ... -
Bad version number in .class file
2012-01-27 00:35 845Bad version number in .class fi ... -
User Data Header in SMPP SUBMIT_SM
2012-01-25 22:30 2298SMPP optional Parameters for ... -
jQuery study
2011-12-28 00:44 0to be study -
Java is Pass-by-Value or Pass-by-Reference?
2011-12-19 19:18 653What's saved in Object Referenc ... -
java.util.Properties: a subclass of java.util.Hashtable
2011-12-13 06:57 735I met a problem this afternoon ... -
Jmock usage
2011-12-02 05:37 0Discuss how Jmock working. -
Oracle Index Usage
2011-12-15 05:26 570Like a hash mapping for record' ... -
AOP(2):AOP与动态代理JDK Proxy and Cglib Proxy
2011-05-12 16:20 967使用动态代理(JDK Proxy 或者Cglib Proxy) ... -
AOP(1):应用中的几个小故事
2011-05-09 21:49 937I had heared about AOP almost 7 ... -
异步系统设计:push vs pull
2011-05-02 23:59 1109今天讨论问题时,有个同事说系统A是主动去系统B里“拿”消息,我 ... -
Velocity Usage
2011-04-28 22:52 963You can find velocity mannua ... -
Java Regular Expression (Java正则表达式)
2011-04-23 06:58 892In current Project, we need to ... -
XML Parser:DOM + XPath
2011-04-23 06:30 1158There are many kinds of XML Par ... -
File upload and download in Java Web Application.
2011-04-21 21:08 1671最近在项目中遇到一个下载文件的老问题。之所以说是老问题,因为在 ... -
Manage zip content using Java APIs
2011-04-21 18:14 985JDK provide a set of utils to c ... -
Beanshell: how and where to use beanshell
2011-04-21 00:33 2049How to use beanshell beansh ...
相关推荐
春毒Spring3 JAXB编组和反编组。 #先决条件:-您应该拥有jdk1.7.x,apache tomcat7.x,apache-maven-3.2.3-bin和Git-1.9.4客户端工具。 #step1:-从回购中克隆项目。 #step2:-运行项目中已经存在的pom.xml Maven...
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换; spring-oxm是操作XML文件:生成,修改节点的完美第三方库
oxm:oxm是用于* NIX兼容系统的基于源的软件包管理器
赠送jar包:spring-oxm-5.3.10.jar; 赠送原API文档:spring-oxm-5.3.10-javadoc.jar; 赠送源代码:spring-oxm-5.3.10-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.10.pom; 包含翻译后的API文档:spring...
赠送jar包:spring-oxm-5.3.15.jar; 赠送原API文档:spring-oxm-5.3.15-javadoc.jar; 赠送源代码:spring-oxm-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.15.pom; 包含翻译后的API文档:spring...
赠送jar包:spring-oxm-5.3.15.jar; 赠送原API文档:spring-oxm-5.3.15-javadoc.jar; 赠送源代码:spring-oxm-5.3.15-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.15.pom; 包含翻译后的API文档:spring...
赠送jar包:spring-oxm-5.0.8.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.8.RELEASE.pom;...
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换; spring-oxm是操作XML文件:生成,修改节点的完美第三方库
赠送jar包:spring-oxm-5.0.5.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.5.RELEASE.pom;...
赠送jar包:spring-oxm-5.2.15.RELEASE.jar; 赠送原API文档:spring-oxm-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.2.15.RELEASE....
赠送jar包:spring-oxm-4.2.2.RELEASE.jar; 赠送原API文档:spring-oxm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-4.2.2.RELEASE.pom;...
赠送jar包:spring-oxm-5.0.8.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.8.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.8.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.8.RELEASE.pom;...
赠送jar包:spring-oxm-5.2.15.RELEASE.jar; 赠送原API文档:spring-oxm-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.2.15.RELEASE....
赠送jar包:spring-oxm-5.0.5.RELEASE.jar; 赠送原API文档:spring-oxm-5.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-5.0.5.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.0.5.RELEASE.pom;...
赠送jar包:spring-oxm-4.2.2.RELEASE.jar; 赠送原API文档:spring-oxm-4.2.2.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-4.2.2.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-oxm-4.2.2.RELEASE.pom;...
没有上传doc文档,只有jar包
php100视频教程全部ppt(1-112)合集整理
执行gradlew :spring-oxm:compileTestJava,导入idea等在依赖下载完即可使用
赠送jar包:spring-oxm-4.2.8.RELEASE.jar; 赠送原API文档:spring-oxm-4.2.8.RELEASE-javadoc.jar; 赠送源代码:spring-oxm-4.2.8.RELEASE-sources.jar; 包含翻译后的API文档:spring-oxm-4.2.8.RELEASE-...
赠送jar包:spring-oxm-5.3.10.jar; 赠送原API文档:spring-oxm-5.3.10-javadoc.jar; 赠送源代码:spring-oxm-5.3.10-sources.jar; 赠送Maven依赖信息文件:spring-oxm-5.3.10.pom; 包含翻译后的API文档:spring...