Maven jaxb/jaxb2 插件未检测到重复元素

发布于 2024-11-14 19:00:48 字数 1367 浏览 4 评论 0原文

我正在使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

甜味拾荒者 2024-11-21 19:00:48

验证一堆 xml 文件和 xsd 文件也可以通过 xml-maven-plugin 来完成

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>xml-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
      <execution>
        <goals>
          <goal>validate</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <validationSets>
        <validationSet>
          <dir>src/main/xsd</dir>
          <systemId>http://www.w3.org/2001/XMLSchema.xsd</systemId>
        </validationSet>
      </validationSets>
    </configuration>
  <plugin>

将所有 xsd 文件放在 src/main/xsd 下,插件将对其进行验证通过运行mvn xml:validatehttp://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:

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>xml-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
      <execution>
        <goals>
          <goal>validate</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <validationSets>
        <validationSet>
          <dir>src/main/xsd</dir>
          <systemId>http://www.w3.org/2001/XMLSchema.xsd</systemId>
        </validationSet>
      </validationSets>
    </configuration>
  <plugin>

Havin all your xsd files below src/main/xsd the plugin will validate them against http://www.w3.org/2001/XMLSchema.xsd by runing mvn xml:validate. You should download the XMLSchema.xsd to your project to make validation faster and to skip the request to w3.org.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文