在一个项目用到了JAXB1.0,用来解析复杂的XSD文件,
其中我们采用过N多方案处理XSD,包括XMLBeans,当然JDOM,DOM,SAX也都考虑使用,不过,由于后面几种会手写巨多的代码,当然没有被受我这个比较偷懒的人青睐了哟,呵。另外JDK我们用的1.4,迫使我用JAXB1.0,要是用JAXB2.0以上,我们处理XSD就更加如鱼得水了。
不过在项目中采用JAXB1.0,遇到了很多问题,其中:
jaxb1.0解析xsd时,是将xsd的层级结构处理成内部类的形式,
这样,就出现了一个问题,如果xsd层级结构深,复杂的话,内部类的名字会非常的冗长
因为内部类的命名是按层次累加过来的
经过测试,得到一下数据:
windows文件系统, 路径+文件名的长度不能大于255(最大为254)
java虚拟机对class名字的限制是,class名不能超过248(248+".class" = 254)
如果文件名过长,会导致class不能加载的错误 不过我们最后的解决方案:是手工改的名。不知道网友们有没有更好的办法,让我采纳下,十分感谢众多网友共现探讨研究。
附:xjc命令行接口的一些选项列如下:
-nv 对于输入的模式不执行严格的XML验证
-b <file> 指定外部的绑定文件
-d <dir> 指定生成的文件的存放路径
-p <pkg> 指定目标包
-classpath <arg> 指定classpath
-use-runtime <pkg> impl.runtime包不被生成
-xmlschema 输入的模式是一个W3C XML模式(默认)
分享到:
相关推荐
在给定的压缩包文件中,包含了一些核心的JAXB组件以及相关的依赖库,如`jaxb-impl.jar`、`jaxb-api.jar`和`jsr173_1.0_api.jar`,这些都是解决在Maven项目中这些特定jar包缺失问题的关键。 首先,`jaxb-impl.jar`是...
6. **jsr173_1.0_api.jar**:这是JSR 173(Streaming API for XML,StAX)的API,它提供了一种更高效的方式处理XML文档,允许程序以迭代或事件驱动的方式读写XML,而不是传统的DOM模型,这样可以显著减少内存占用和...
总之,JAXB是一个强大的Java技术,结合了activation.jar、jaxb1-impl.jar、jaxb-api.jar、jaxb-impl.jar、jaxb-xjc.jar以及jsr173_1.0_api.jar等组件,为XML和Java对象间的交互提供了便利。无论是开发新项目还是维护...
5. **图形化界面设计**:一些高级插件甚至提供了图形化的XML Schema设计工具,帮助开发者直观地构建和修改XML Schema。 6. **调试支持**:在开发过程中,插件可以提供XML和Java对象之间的调试工具,帮助定位和解决...
maven-jaxb-schemagen-plugin-1.0.jar
离线安装包,亲测可用
对于IntelliJ IDEA,虽然内置了一些基本的JAXB支持,但也可以安装如"Java2WSDL"这样的插件来增强功能。 **JAXB的基本用法** - **生成Java类**:JAXB提供了一个工具`xjc`,可以将XML Schema文档转换为对应的Java类...
JAXB2,全称为Java Architecture for XML Binding 2,是Java平台上的一个标准技术,用于在XML和Java对象之间进行绑定。它允许开发者通过简单的API将XML文档转换为Java对象,反之亦然,大大简化了XML数据处理。JAXB2...
标题中的"jaxb-impl-2.3.0、jaxb-core-2.3.0、jaxb-api-2.3.0"是JAXB的不同组件版本号,它们在处理XML到Java对象之间的转换时起到关键作用。在描述中提到的“Maven项目中缺少jaxb-api的异常报错”,通常指的是在运行...
`jaxb-api`和`jaxb-impl`是JAXB框架的核心组成部分。这两个JAR文件在处理XML到Java对象的绑定过程中扮演着关键角色。 1. **jaxb-api.jar**: 这个库包含了JAXB API,即Java接口和抽象类,定义了JAXB的工作方式。它...
`jaxb-api-2.1.jar` 和 `jaxb-impl-2.1.8.jar` 是Java应用程序中用于XML绑定(Java Architecture for XML Binding,简称JAXB)的重要库文件。JAXB是Java SE和Java EE平台的标准部分,它提供了一种将XML文档与Java...
maven-jaxb-schemagen-plugin-1.0-sources.jar
JAXB 2.3.0引入了一些新的特性和改进,包括: 1. **Java SE 9+支持**:JAXB 2.3.0开始支持Java 9及其后续版本,这包括模块化系统(Jigsaw)的集成。 2. **API增强**:可能包含了新的API接口或方法,以提供更丰富的...
可能需要一些额外的适配工作,例如使用第三方库如RetroLambda来支持Java 8的特性,或者使用其他XML处理库如Gson或Jackson作为替代方案。 总的来说,虽然Android原生不支持JAXB,但通过引入相应的jar包,开发者仍然...
JAXB 2.1.9 版本修复了一些已知问题,提高了性能,并提供了新的特性。 使用JAXB,开发者首先需要定义Java类来表示XML结构,然后通过JAXB的`@XmlRootElement`和`@XmlElement`等注解来标注这些类,以便JAXB能够理解...
当我们需要处理XML文件,比如从XML中提取数据时,JAXB(Java Architecture for XML Binding)是一个强大的工具。本教程将详细解释如何在Idea中利用JAXB来读取XML文件中的数据。 JAXB是Java标准API,它提供了将Java...
在Java开发中,JAXB(Java Architecture for XML Binding)是一个用于将XML文档和Java对象之间进行绑定的技术。在处理XML文件时,特别是涉及到序列化和反序列化时,可能会遇到字符编码问题,即所谓的“乱码”。这个...
JAXB (Java Architecture for XML Binding) 是 Java 中用于对象到XML以及XML到对象转换的API。它使得开发者能够轻松地将Java对象模型映射到XML文档,并反之亦然。在给定的例子中,我们将深入理解如何使用JAXB注解来...
**JAXB 2.2.7** 版本是JAXB的一个特定发行版,可能包含了对之前版本的一些错误修复、性能优化和新功能。由于没有提供具体的描述,我们可以推测这个版本可能专注于增强稳定性,提高兼容性,以及对Java 6和7的支持。...