我正在使用xmlbeans-maven-plugin从xsd和wsdl文档的结构生成许多java bean
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
<version>2.3.3</version>
</plugin>
我有许多类似命名的元素。来自两个不同文件的以下xsd片段包含complexTypes IpType和IPType等。
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:nmspc1="http://some.system.dk"
targetNamespace="http://some.system.dk"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" > <import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/addressing"/>
<complexType name="IPType" abstract="true">
<sequence>
...
</sequence>
</complexType>
<complexType name="ExternalType" abstract="true">
<sequence>
...
</sequence>
和
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
elementFormDefault = "qualified" targetNamespace = "http://www.some.dk"
version = "20070320"
xmlns:tns = "http://www.some.dk"
xmlns:xs = "http://www.w3.org/2001/XMLSchema">
<xs:element name = "ipHeader" type = "tns:ipHeaderType"/>
<xs:complexType name = "ipType">
<xs:sequence>
...
</xs:sequence>
</xs:complexType>
<xs:complexType name = "externalType">
<xs:sequence>
...
</xs:sequence>
</xs:complexType>
...
由于某种原因,这会创建类文件IpType和IPType2。该插件枚举类型,就好像它不区分大小写。对于共享名称的文件中定义的所有complexType元素都是这种情况,但是用大写字母区分。
现在,这通常不是问题,因为我可以使用正确的类并完成它,但在这里它变得有趣: 生成的文件在不同的操作系统上不同。在Windows(和redhat 6.3)上,类名为
IpType.java
IPType2.java
和debian:
IPType.java
IpType2.java
(注意p是不同类别的资本)
这意味着当我在某些系统上构建项目时,java代码中的import语句不匹配。
我开发并使用Jenkins在几个不同的操作系统上构建,所以这是一个主要问题。
所以我有三个问题: 1.有没有办法让插件以不同的方式命名文件? 2.有没有办法使这些文件独立于操作系统 3.有没有一个能够更好地处理这个问题的插件?