32.3. Object Factory


概述

JAXB 使用对象工厂提供用于实例化 JAXB 生成的构造实例的机制。对象工厂包含实例化软件包范围中定义的所有 XML 模式构造的方法。唯一的例外是枚举不会获取对象工厂中的创建方法。

复杂类型工厂方法

对于为实现 XML 模式复杂类型生成的每个 Java 类,对象工厂包含创建类实例的方法。这个方法的格式如下:

typeName createtypeName();

例如,如果您的模式包含了一个名为 widgetType 的复杂类型,Apache CXF 会生成名为 WidgetType 的类来实现它。例 32.5 “复杂类型对象工厂条目” 在对象工厂中显示生成的创建方法。

例 32.5. 复杂类型对象工厂条目

public class ObjectFactory
{
  ...
  WidgetType createWidgetType()
  {
    return new WidgetType();
  }
  ...
}

元素工厂方法

对于模式全局范围内声明的元素,Apache CXF 将工厂方法插入到对象工厂中。如 第 33 章 使用 XML 元素 所述,XML Schema 元素映射到 JAXBElement<T> 对象。创建方法的格式如下:

public JAXBElement<elementType> createelementName(elementType value);

例如,如果您有一个类型为 xsd:string 的项,则 Apache CXF 会生成对象工厂方法。 例 32.6 “元素工厂条目”

例 32.6. 元素工厂条目

public class ObjectFactory
{
    ...
    @XmlElementDecl(namespace = "...", name = "comment")
    public JAXBElement<String> createComment(String value) {
        return new JAXBElement<String>(_Comment_QNAME, String.class, null, value);
    }
    ...
}
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.