XSD - 如何从JAXB处理中删除一些生成的多余的类?

问题描述 投票:0回答:1

有一段时间我不得不接触XML和Schema文件,我已经从一些样本payload中创建了一个XSD模式,然后使用maven-jaxp从中生成Java类。XML包含的元素列表形式为

<Root>
   <Subs>
      <Sub />
      <Sub />
      [...]
   </Subs>
</Root>

而派生的xsd为这个例子定义了一个RootType、一个SubsType和一个SubType。我想把 "Subs "作为一个ArrayList来实现,而不是作为一个生成的类来实现,我应该如何修改XSD?

干杯,Kai

java xml xsd jaxb
1个回答
0
投票

我发现解决方案是在jaxb2-maven-plugin中添加一个扩展。

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>2.5.0</version>
            <executions>
                <execution>
                    <id>xjc</id>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <packageName>my.model</packageName>
                <extension>true</extension>
                <arguments>
                    <argument>-no-header</argument>
                    <argument>-Xxew</argument>
                    <argument>-Xxew:instantiate lazy</argument>
                   </arguments>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>com.github.jaxb-xew-plugin</groupId>
                    <artifactId>jaxb-xew-plugin</artifactId>
                    <version>1.10</version>
                </dependency>
                <dependency>
                    <groupId>javax.xml.bind</groupId>
                    <artifactId>jaxb-api</artifactId>
                    <version>2.3.1</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
© www.soinside.com 2019 - 2024. All rights reserved.