gpt4 book ai didi

java - 评估 JAXB

转载 作者:数据小太阳 更新时间:2023-10-29 02:09:02 25 4
gpt4 key购买 nike

我有几个关于 JAXB 的问题:

  1. 解析有哪些选项?我可以轻松实现/插入我自己的解析器吗?

  2. 有效性如何?假设我有一个宽松的解析器,它对模式有点宽松。我还能创建(无效的)对象结构吗?

  3. JAXB 是否提供特殊的方法来做,例如对对象的验证?我想解析一个“无效”的对象结构,用一些算法修复它,然后验证(在 Java 中)。

  4. JAXB 是否提供了其他方法来对对象执行奇特的操作(例如访问者模式)。

  5. 内存占用情况如何?对于 10-100MB 的 XML 文件,对象表示(忽略解析)是否可行?

感谢涵盖此类问题的优秀教程,Google 仅显示粗略的概述。

最佳答案

以下是我对您问题的回答:

What options are there for parsing? Can I implement / plugin my own parser easily?

JAXB ( JSR-222 ) 实现可以从许多不同的输入类型中解码:InputStreamInputSource'、NodeXMLStreamReader ,XMLEventReader,File,Source`。如果您的 XML 表示与其中任何一个相匹配,那么一切就绪。

What about validity? Suppose I have a relaxed parser that is somewhat relaxed regarding the schema. Can I still create an (invalid) object-structure?

JAXB 实现要求 XML 格式正确,但不要求它对 XML 模式有效。它旨在处理范围广泛的文档。如果你想确保“有效性”,那么你可以设置一个 XML 模式(参见 JAXB and Marshal/Unmarshal Schema Validation )。

Does JAXB provide special means to do e.g. validation on the objects? I'd like to parse to an "invalid" object structure, have some algorithm repair it, then validate (in Java).

您可以使用 javax.xml.validation API 对对象模型进行验证。有关完整示例,请参阅:

Does JAXB provide other means to do fancy things on the objects (e.g. visitor pattern).

JAXB 模型是 POJO,因此您可以根据需要设计它们。您可能对以下类(class)感兴趣:

What about the memory footprint? Is the object representation (disregarding the parsing) feasible for XML files of 10-100MB?

是的,JAXB 可用于处理该大小的文档。如果您担心大小,可以使用 XMLStreamReader 解析 XML 文件,然后从 XMLStreamReader 中解码对象。

关于java - 评估 JAXB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10917968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com