2

当尝试将 XSD 文件与提供的目录一起导入时,我对 jax-ws 工具链中的某些工具(xjc可能还有)如何表现有疑问。wsimport

例如,我知道,xjc当提供目录文件时(请参见此处的示例),即使<xs:import>元素具有有效xs:schemaLocation的、正确托管的并且从中获取的元素,也会从目录中指示的位置获取导入的模式。可以通过网络获取模式。

到目前为止,目录条目覆盖schemaLocation属性是有意义的。

但是,如果目录文件指示本地文件系统位置,并且出于某种原因,例如目录路径中的输入错误,目录提供的位置不可访问,则该xjc工具将静默恢复到该xs:schemaLocation值并从那里检索文件。更糟糕的是,只有在目录中的条目被标记为“PUBLIC”时才会发生这种行为(据我所知,我所做的一些测试)——如果它被标记为“SYSTEM”,则该xjc工具确实会抱怨。

所以,我的问题是:

为了始终保持一致的行为,有没有办法禁用 xjc' 从schemaLocation属性中获取并强制它始终在目录上查找导入的模式,如果找不到它们会失败?请注意,这与询问如何禁用xjc的网络获取功能不同,因为我认为在某些情况下指示目录文件上的 Intranet 位置可能仍然有用。

xjc如果上述情况失败,是否有某种方法可以在wsimport运行期间禁用所有网络访问?

4

0 回答 0