Jaxb 绑定学习探索(一.基础篇)

本文介绍了如何使用Maven插件和JAXB进行XML到Java Bean的转换,重点在于处理DTD文件,配置pom.xml,以及解决转换过程中可能出现的属性冲突问题。通过编写binding.xjb文件来定制生成的Java类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Jaxb 绑定学习探索(一.基础篇)

  • 前言
  • 简介
  • 步骤

前言

在我们的开发过程总,往往会使用到一些xml标准,利用这些标准我们可以使用xml生成html,javabean等。xml生成javabean之后会使得开发更加便捷以及实用,通常的xml转javabean的方法十分简单,使用开发工具eclipse,新建jaxb的project再选择需要转换的xml文件,即可生成相应java类。而这篇文章主要介绍怎么使用maven插件以及编写配置文件生成java bean,并且通过编写绑定的方式对所需要使用的属性进行编辑。

简介

xsd和dtd都是xml的实现方式,这三个东西的概念类似于xml是实现类,xsd,dtd定义了接口,实现类去实现了接口里的方法,去填入相应属性的值。对于xsd和dtd概念模糊的童靴可以自行百度,相关语法简介,此处不再赘述。明白了这三个东西的概念,就等于是xml转java bean 只是一部分的java bean可以被转化,如果在xml里缺失了一些xsd定义的属性,转化的java bean也会缺少该属性,由于xml生成的多样性,所以我们在使用maven插件进行开发的时候必须使用.xsd或者.dtd文件。这里以nmap.dtd为例。

步骤

1. 下载相应标准定义文件: [nmap.dtd] (https://svn.nmap.org/nmap/docs/nmap.dtd)
2. 编辑pom文件,配置jaxb maven 插件
  <build>
        <pluginManagement>
            <plugins>
                <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jaxb2-maven-plugin</artifactId>
                <version>2.3.1</version>
                <executions>
                    <execution>
                        <id>generate-jaxb-classes</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>xjc</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <!-- The package of your generated sources -->
                    <packageName>com.example.myschema</packageName>
                    <!-- <sourceType>dtd</sourceType> -->
                    <sources>
                        <source>src/main/resources/nmap.xsd</source>
                    </sources>
                    <xjbSources>
                        <xjbSource>src/main/resources/nmap.xjb</xjbSource>
                    </xjbSources>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
说明:‘sources’标签是所要转化的xsd文件的路径,‘xjbSources’则是绑定配置的文件路径。
3. 将nmap.dtd转为nmap.xsd(dtd文件一般不存在冲突问题,修改属性暂时不能用绑定的方式,如果使用dtd,则只需要加上sourceType标签)并复制到相应文件夹下,此时可暂时不写xjbSources。

这里写图片描述

4. 如果项目不报错,则右键项目run as maven clean 再maven install。可以看见生成的java bean 在target里有相应的包。
5. 如果报错,尝试run maven install 查看错误,如果出现重复的属性错误,则证明出现冲突,这个时候就需要编写jaxb binding 解决冲突。

这里写图片描述

6. 编写bingding.xjb,解决冲突,写入相应标签内容。再次运行maven install 冲突解决。

这里写图片描述

7.结果:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值