首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB schemagen不引用剧集文件中的类

JAXB schemagen不引用剧集文件中的类
EN

Stack Overflow用户
提问于 2016-04-19 17:24:23
回答 1查看 590关注 0票数 6

我实际上使用的是模式优先的方法,但是我遇到了“不祥”的JAXB Map problem!并通过切换到代码优先的方法来解决这个问题。现在,我想在其他模块中重用此类型,并继续我的模式优先方法,从生成的模式创建一个事件文件。不幸的是,生成的剧集文件是空的。这是我尝试过的:

代码语言:javascript
复制
<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>jaxb2-maven-plugin</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
            <id>schemagen</id>
            <goals>
                <goal>schemagen</goal>
            </goals>
            <phase>generate-sources</phase>
        </execution>
    </executions>
    <configuration>
        <outputDirectory>${project.build.outputDirectory}</outputDirectory>
        <generateEpisode>true</generateEpisode>
        <transformSchemas>
            <transformSchema>
                <uri>http://some/schema/types</uri>
                <toPrefix>core</toPrefix>
                <toFile>core-types.xsd</toFile>
            </transformSchema>
        </transformSchemas>
    </configuration>
</plugin>

这为我生成了以下模式:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:core="http://some/schema/types" targetNamespace="http://some/schema/types" version="1.0">
  <xs:element name="Map" type="core:MapType"/>

  <xs:complexType name="MapType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="entries" nillable="true" type="core:EntryType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="EntryType">
    <xs:sequence>
      <xs:element name="key" type="xs:anyType"/>
      <xs:element name="value" type="xs:anyType"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

和一个包含以下内容的插曲文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:bindings version="2.1" xmlns:ns1="http://java.sun.com/xml/ns/jaxb"/>

我尝试使用schemagen (版本2.2.11),得到了类似的结果。https://jaxb.java.net/2.2.4/docs/schemagen.htmlhttp://www.mojohaus.org/jaxb2-maven-plugin/Documentation/v2.2/schemagen-mojo.html的文档指出这应该是它,但我不知道我做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2017-02-25 00:09:49

我解决了问题..。按照上面的步骤操作:

代码语言:javascript
复制
    <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>1.6</version>
                    <executions>
                        <execution>
                            <id>schemagen</id>
                            <goals>
                                <goal>schemagen</goal>
                            </goals>
                            **<phase>generate-sources</phase>**
                        </execution>
                    </executions>

                    <configuration>             

                    **<xsdPathWithinArtifact>generated/xsds</xsdPathWithinArtifact>**

</configuration>


    </plugin>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36714142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档