在项目中指定XSD schemaLocation的正确或正确方法是什么?

abe*_*t80 8 java xsd

假设我有两个项目,A和B. Java项目,如果这很重要的话.

项目A包含一堆代表核心类型和元素的XSD文件.它们都放在一个名为"定义"的包中.这内置了project-a.jar.

项目B代表一个扩展项目,允许定义自己的类型和元素.我创建了一个新模式并将其放在"definition.extension"包中.这内置了project-b.jar.

现在,对于项目B中的XSD,我究竟应该把它作为schemaLocation一个include什么?

schemaLocation="../core-types.xsd"没有用(我知道,它需要一个URI),但究竟什么是正确的或标准的方法呢?谷歌发现我有更多的人问这个问题,那就是处理这个问题的正确方法的明确标准方法.

它不能是我schemaLocation在运行期间以编程方式调整...或者我需要一个动态替换schemaLocation编译期间的构建步骤/脚本......对吗?

我不是在寻找像"把它们放在共享位置"这样的答案.我正在寻找更多的开发环境,使用相对引用而不是硬编码引用.

仅供参考,我正在使用IntelliJ IDEA,以防有特定于IDE的方法.

Pie*_*len 1

如果您只是希望 IntelliJ 停止以红色显示您的包含内容,您可以在包含内容中使用一些自定义 URI。然后,您可以转到“项目设置”->“架构和 DTD”,您可以在其中将此 URI 映射到本地文件。

如果您需要在运行时进行架构验证,那就是另一回事了。您可能需要使用 XML 目录。如果您使用 JAXB,您应该看看这个问题:jaxb - how to map xsd files to URL to find those