我正在使用Java 6,JaxB 2和SpringSource Tool Suite(与Eclipse相同).我有几个我编写的Java类,我从中使用JaxB生成XML模式.但是,我注意到为了使用JaxB从Java对象生成XML文档的能力,我需要一个ObjectFactory.
final Marshaller marshaller = jaxbContext.createMarshaller();
// Here is where I don't have an ObjectFactory defined
final JAXBElement<WebLeads> webLeadsElement
= (new ObjectFactory()).createWebLeads(webLeadsJavaObj);
Run Code Online (Sandbox Code Playgroud)
如何在不吹走现有类的情况下生成ObjectFactory?
bdo*_*han 11
UPDATE
这个问题可能是指ObjectFactory创建一个人的角色JAXBContext.如果您JAXBContext在上下文路径上引导a ,那么它将检查该位置中的ObjectFactory以确定该包中的类:
如果您没有ObjectFactory但仍希望JAXBContext在上下文路径上创建您,则可以包含一个文件jaxb.index,该文件包含在该包列表文件中JAXBContext(引用的类将自动拉入):
或者,您可以JAXBContext在类数组而不是上下文路径上引导您:
ObjectFactory是否必需
一个ObjectFactory不是必需的,虽然从Java类开始,即使有使用的情况下,你可以利用带注释的相似课程@XmlRegistry,以使用@XmlElementDecl注释.
创建JAXBElement实例
您可以随时JAXBElement直接创建:
final JAXBElement<WebLeads> webLeadsElement = new JAXBElement<WebLeads>(
new QName("root-element-name"),
WebLeads.class,
webLeadsJavaObj);
Run Code Online (Sandbox Code Playgroud)
JAXBElement的替代品
或者由于JAXBElement仅用于提供根元素信息,因此您可以使用以下命令为您的WebLeads类添加注释@XmlRootElement:
@XmlRootElement(name="root-element-name")
public class WebLeads {
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33893 次 |
| 最近记录: |