添加xercesImpl依赖项后出现错误:可以从多个模块访问包javax.xml:<;未命名>;,xmlJava(8390063)

添加xercesImpl依赖项后出现错误:可以从多个模块访问包javax.xml:<;未命名>;,xmlJava(8390063),java,xml,spring-boot,xsd,xml-validation,Java,Xml,Spring Boot,Xsd,Xml Validation,目标是使用XSD 1.1验证生成的XML。要验证的已实现代码: import javax.xml.XMLConstants; import javax.xml.transform.stream.StreamSource; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import javax.xml.validation.Validator; private boolean vali

目标是使用XSD 1.1验证生成的XML。要验证的已实现代码:

import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;

private boolean validateAgainstXSD(InputStream xml, InputStream xsd) {
    try {
        SchemaFactory factory = 
            SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Schema schema = factory.newSchema(new StreamSource(xsd));
        Validator validator = schema.newValidator();
        validator.validate(new StreamSource(xml));
        return true;
    } catch(Exception ex){
        ex.printStackTrace();
        return false;
    }
}
实现代码后,出现以下错误:元素“assert”无效、放置错误或出现频率过高,因为要验证的XSD是1.1版本,而不是1.0版本。然后,找到了支持XSD1.1的开源依赖项Xerces。实现的依赖项是:

<dependency>
        <groupId>xerces</groupId>
        <artifactId>xercesImpl</artifactId>
        <version>2.12.1</version>
</dependency>

薛西斯
干细胞移植
2.12.1
然后,pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>id.fintax.espt</groupId>
    <artifactId>preparer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>pajakio-backend-espt-preparer</name>
    <description>Backend service Preparer e-SPT Pajak.io</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.3.1</version> 
        </dependency>
        <dependency>
            <groupId>org.glassfish.jaxb</groupId>
            <artifactId>jaxb-runtime</artifactId>
            <version>2.3.1</version> 
        </dependency>
        <dependency>
            <groupId>com.google.cloud</groupId>
            <artifactId>google-cloud-storage</artifactId>
            <version>1.113.9</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>1.11</version>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk15on</artifactId>
            <version>1.68</version>
        </dependency>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.11.0</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
org.springframework.boot
spring启动程序父级
2.4.4
id.fintax.espt
准备人
0.0.1-快照
pajakio后端espt制备程序
后端服务准备程序e-SPT Pajak.io
11
org.springframework.boot
弹簧启动机amqp
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.projectlombok
龙目
真的
org.springframework.boot
弹簧起动试验
测试
org.springframework.amqp
春兔试验
测试
javax.xml.bind
jaxb api
2.3.1 
org.glassfish.jaxb
jaxb运行时
2.3.1 
com.google.cloud
谷歌云存储
1.113.9
通用编解码器
通用编解码器
1.11
org.bouncycastle
bcprov-jdk15on
1.68
薛西斯
干细胞移植
2.11.0
org.springframework.boot
springbootmaven插件
org.projectlombok
龙目
但是,从上面的代码中导入的类出现错误,顺序如下:

- The package javax.xml is accessible from more than one module: <unnamed>, java.xmlJava(8390063)
- The package javax.xml.transform.stream is accessible from more than one module: <unnamed>, java.xmlJava(8390063)
- The package javax.xml.validation is accessible from more than one module: <unnamed>, java.xmlJava(8390063)
-可以从多个模块访问javax.xml包:java.xmlJava(8390063)
-可以从多个模块访问包javax.xml.transform.stream:,java.xmlJava(8390063)
-可以从多个模块访问包javax.xml.validation:,java.xmlJava(8390063)
我感到非常困惑和沮丧,因为使用XSD1.1进行验证是强制性的。请帮忙。泰里玛·卡西