为什么 Jaxb2 插件 (Java11) 无法生成基类 - Spring Boot

Why is Jaxb2 pluggin (Java11) failing to generate base class - Spring Boot

提问人:Moon Wolf 提问时间:2/27/2023 更新时间:2/27/2023 访问量:11

问:

这是一个干净的项目,我有一个简单的 xsd 来生成它的类。一切顺利,直到我尝试设置 tns 类型,然后解析错误 apperars:(无法解析输入模式)

xs:element name="cufdRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="codeBehaviour" type="xs:int" />
                <xs:element name="codeSystem" type="xs:string" />
                <xs:element name="codeMode" type="xs:int" />
        <xs:element name="codePlace" type="xs:int" />
        <xs:element name="codePos" type="xs:int" />
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="cufdRequest">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="cufdCode" type="tns:cufdCode" />              
            </xs:sequence>
        </xs:complexType>
    </xs:element>
  
    <xs:complexType name="cufdCode">            
        <xs:sequence>
            <xs:element name="code" type="xs:string" />                         
        </xs:sequence>
    </xs:complexType>

这是我的插件配置

<plugin>
                <groupId>org.jvnet.jaxb2.maven2</groupId>
                <artifactId>maven-jaxb2-plugin</artifactId>
                <version>0.15.2</version>
                <executions>
                        <execution>
                                <id>xmls</id>
                                <goals>
                                        <goal>generate</goal>
                                </goals>
                                <configuration>
                                        <generateDirectory>target/generated-sources/xjc/</generateDirectory>
                                        <schemaDirectory>${basedir}/src/main/resources/schemas/</schemaDirectory>
                                        <schemaIncludes>
                                                <include>**/*.xsd</include>
                                        </schemaIncludes>
                                        <bindingDirectory>${basedir}/src/main/resources/schemas/xjb</bindingDirectory>
                                        <bindingIncludes>
                                                <include>**/*.xjb</include>
                                        </bindingIncludes>
                                </configuration>
                        </execution>
                </executions>
                <dependencies>
                        <dependency>
                                <groupId>org.glassfish.jaxb</groupId>
                                <artifactId>jaxb-runtime</artifactId>
                                <version>2.3.3</version>
                        </dependency>
                        <dependency>
                <groupId>com.sun.xml.bind</groupId>
                <artifactId>jaxb-impl</artifactId>
                <version>2.3.3</version>
                </dependency>
                </dependencies>
            </plugin>

要注意的是,类已经生成,而我没有使用对另一个复杂类型的引用

spring-boot xml 解析 jaxb java-11 xsd-validation

评论


答:

0赞 Moon Wolf 2/27/2023 #1

问题出在 xml 标头或任何格式的标记上生成了 tns 定义。解决方案我还不清楚,但问题不在于插入。如果您正在寻找对 Java 11 的正确调用,那么该 pom 配置正在工作