Maven jaxb/jaxb2 插件未检测到重复元素
我正在使用 maven-jaxb-plugin 和 maven-jaxb2-plugin 编译一个包含两个同名元素的 xsd 文件,但代码编译时不会引发错误。生成的类没有相关的属性。查看生成的类:
...
* <element name="elementName" type="{http://namespace}typeElementName"/>
* <element name="elementName" type="{http://namespace}typeElementName"/>
public class TypeNameType {
@XmlElementRefs({
@XmlElementRef(name = "elementName", namespace = "http://namespace", type = JAXBElement.class)
})
protected List<JAXBElement<? extends Serializable>> content;
public List<JAXBElement<? extends Serializable>> getContent() {
if (content == null) {
content = new ArrayList<JAXBElement<? extends Serializable>>();
}
return this.content;
}
}
和 XSD:
<schema elementFormDefault="qualified"
targetNamespace="http://namespace"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://namespace">
<complexType name="typeNameType">
<sequence>
<element minOccurs="1" maxOccurs="1" name="elementName" type="string" />
<element minOccurs="1" maxOccurs="1" name="elementName" type="string" />
</sequence>
</complexType>
</schema>
有人可以帮我解决这个问题吗?
谢了!
马塞洛
I'm using maven-jaxb-plugin and maven-jaxb2-plugin to compile a xsd file that has two elements with same name, but the code compiles without throws an error. The generated class don't have the co-related properties. See the generated class:
...
* <element name="elementName" type="{http://namespace}typeElementName"/>
* <element name="elementName" type="{http://namespace}typeElementName"/>
public class TypeNameType {
@XmlElementRefs({
@XmlElementRef(name = "elementName", namespace = "http://namespace", type = JAXBElement.class)
})
protected List<JAXBElement<? extends Serializable>> content;
public List<JAXBElement<? extends Serializable>> getContent() {
if (content == null) {
content = new ArrayList<JAXBElement<? extends Serializable>>();
}
return this.content;
}
}
and XSD:
<schema elementFormDefault="qualified"
targetNamespace="http://namespace"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://namespace">
<complexType name="typeNameType">
<sequence>
<element minOccurs="1" maxOccurs="1" name="elementName" type="string" />
<element minOccurs="1" maxOccurs="1" name="elementName" type="string" />
</sequence>
</complexType>
</schema>
Can anybody help me with this issue?
Tks!
Marcelo
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
验证一堆 xml 文件和 xsd 文件也可以通过 xml-maven-plugin 来完成:
将所有 xsd 文件放在
src/main/xsd
下,插件将对其进行验证通过运行mvn xml:validate
来http://www.w3.org/2001/XMLSchema.xsd
。您应该将XMLSchema.xsd
下载到您的项目中,以加快验证速度并跳过对 w3.org 的请求。Validating a bunch of xml files and xsd files as well, can be done by the xml-maven-plugin:
Havin all your xsd files below
src/main/xsd
the plugin will validate them againsthttp://www.w3.org/2001/XMLSchema.xsd
by runingmvn xml:validate
. You should download theXMLSchema.xsd
to your project to make validation faster and to skip the request to w3.org.