当前位置: 首页 > 知识库问答 >
问题:

我们所说的JAXB默认行为是什么意思?

姜志行
2023-03-14

我对JAXB非常陌生,我对JAXB的默认行为感到困惑,我所理解的是:

如果可能的话,JAXB尝试通过自动检测相关类来创建JAXBContext。例如,JAXB可以读取与预期不完全匹配的XML文档。这是JAXB解组器的默认行为。例如,如果我们有一个Foo类:

@XmlRootElement
class Foo{
  @XmlAttribute
  String name;
  @XmlElement
  String title;
}

Foo类是以下文档的代表性Java类:

<foo name=” element-value”>
    <title>some title</title>
</foo>

然后,如果我们有以下文档的XML实例,其中元素的内容由Foo类表示。

<anotherTagName  name=”element-value”>
    <title>some title</title>
</anotherTagName>

我们可以将其解组到一个Foo类中,使用采用'expectedType'参数的解组方法版本,如下所示:

JAXBElement<Foo> root = um.unmarshal(new StreamSource(new File(“output.xml”)),   
                                     Foo.class);
 Foo foo = root.getVlaue();

这是否是JAXB的默认行为?我明白了还是我迷路了?

共有1个答案

百里京
2023-03-14

这是否是JAXB的默认行为?

是的,这是预期的JAXB行为。如果指定要解组的类,则将收到该类型的实例,该实例包装在保存根元素信息的JAXBElement实例中。

更多信息

  • http://blog.bdoughan.com/2012/07/jaxb-no-annotations-required.html
 类似资料:
  • 本文向大家介绍阻止事件的默认行为有哪些?说说它们之间的区别是什么?相关面试题,主要包含被问及阻止事件的默认行为有哪些?说说它们之间的区别是什么?时的应答技巧和注意事项,需要的朋友参考一下 事件冒泡和事件捕获。 事件冒泡:事件按照从最精确的目标对象到最不特定的事件目标的顺序触发。 事件捕获:事件从最不精确的对象开始触发,然后到最精确的目标对象。

  • 问题内容: 我正在尝试解析MySQL 文档。他们可能会更清楚。他们似乎在说的是,有五种可能性:SET NULL,NO ACTION,RESTRICT,CASCADE和SET DEFAULT。 NO ACTION和RESTRICT会执行相同的操作(防止破坏FK的任何数据库更改),并且该操作是默认操作,因此,如果省略ON DELETE子句,则表示NO ACTION(或RESTRICT -是相同的操作)

  • 问题内容: 我正在研究Java for Web,它提到http是无状态的。这是什么意思,以及它如何影响编程 我也在研究spring框架,它提到了一些Bean,因为它们的状态发生了变化,它们必须声明为内部Bean。那是什么意思 问题答案: HTTP(服务器与客户端之间的实际传输协议)是“无状态的”,因为它在调用之间不记忆任何内容。 通过HTTP访问的 每个 资源都是单个请求,它们之间没有线程连接。如

  • 我看了一下Java8与7相比的新闻,除了lambdas或新的时间框架等非常有趣的东西之外,我发现一个新特性(?)介绍了:默认方法。 我在这篇文章中发现了以下示例: 在我看来很奇怪。上面的代码看起来像一个具有已实现方法的类。那么,为什么要在一个接口中引入默认方法呢?这种做法的实际好处是什么? 在同一篇文章中,我读到了这样的解释: 为什么要在接口中添加方法?这是因为接口与它们的实现类耦合得太紧了。即在

  • 我正在使用JAXP XSLT API(javax.xml.transform)来转换xml文件。 TransformerFactory的javadoc表示:它使用以下有序查找过程来确定要加载的TransformerFactory实现类: 使用javax。xml。使改变TransformerFactory系统属性 使用JRE目录中的属性文件“lib/jaxp.properties”。此配置文件采用标

  • 问题内容: 我刚开始读一本Java书籍,就纳闷了。如果未指定,则哪个访问说明符是默认的? 问题答案: 默认可见性称为“ package-private”(尽管您不能显式使用此属性),这意味着可以从该类所属的同一包内部访问该字段。 正如mdma指出的那样,接口成员的情况并非如此,其默认值为“ public”。