Java 在Gradle资源文件夹中导入的XSD可以';不能被SAX读取

Java 在Gradle资源文件夹中导入的XSD可以';不能被SAX读取,java,validation,jaxb,xsd,gradle,Java,Validation,Jaxb,Xsd,Gradle,我已经用Schemagen生成了XSD验证文件 有一个单文件验证XSD和一个带有导入的两文件验证XSD 在我的Java应用程序中包含一个文件验证XSD文件,以便从gradle资源文件夹进行验证是没有问题的。但是,如果我尝试从gradle资源文件夹(如下所示)加载带有导入的两个文件验证XSD,它将崩溃,并出现以下错误: org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 98; src-resolve: Name "ns1:s

我已经用Schemagen生成了XSD验证文件

有一个单文件验证XSD和一个带有导入的两文件验证XSD

在我的Java应用程序中包含一个文件验证XSD文件,以便从gradle资源文件夹进行验证是没有问题的。但是,如果我尝试从gradle资源文件夹(如下所示)加载带有导入的两个文件验证XSD,它将崩溃,并出现以下错误:

org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 98; src-resolve: 
Name "ns1:stringArray" kann nicht als "type definition"-Komponente aufgelöst werden.
Means in english: name can't be resolved as type definition component
如果两个文件验证XSD位于gradle源文件夹中,那么它工作正常,因此除了解析导入位置外,文件中不会有任何错误

我的XSD文件如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" targetNamespace="" xmlns:ns1="http://jaxb.dev.java.net/array"
  xmlns:tns="" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:import namespace="http://jaxb.dev.java.net/array" schemaLocation="schema2.xsd"/>

  <xs:element name="Degrees" type="tns:degreeCourse"/>

  <xs:complexType name="degreeCourse">
    <xs:sequence>
      <xs:element name="e" type="ns1:stringArray" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

尽管在import语句中的模式位置之前使用src/main/resources没有帮助。有什么想法吗?

我的实际解决方案是将所有内容放在一个文件中,但我仍然找不到导入文件的解决方案。
Schema schema = schemaFactory
            .newSchema(getStreamSourceOfSchema("schema1.xsd"));

private StreamSource getStreamSourceOfSchema(String schemaName) {
    return new StreamSource(this.getClass().getResourceAsStream(
            "/" + schemaName));
}