gpt4 book ai didi

java - 跨项目指定 XSD schemaLocation 的正确或正确方法是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:57:06 26 4
gpt4 key购买 nike

假设我有两个项目,A 和 B。Java 项目,以防这很重要。

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

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

现在,对于项目 B 中的 XSD,我究竟应该将什么作为 includeschemaLocation

schemaLocation="../core-types.xsd" 不太奏效(我知道,它需要一个 URI),但是正确或标准的方法到底是什么? Google 发现有更多人问我这个问题,关于什么是真正正确的处理方法的明确、标准的方法。

我不可能在运行时以编程方式调整 schemaLocation...或者我需要一个构建步骤/脚本来动态替换 schemaLocation 在编译过程中……对吗?

我不是在寻找“将它们放在共享位置”之类的答案。我正在寻找更符合使用相对引用而不是硬编码引用的开发环境的东西。

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

最佳答案

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

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

关于java - 跨项目指定 XSD schemaLocation 的正确或正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15379071/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com