当尝试将 XSD 文件与提供的目录一起导入时,我对 jax-ws 工具链中的某些工具(xjc
可能还有)如何表现有疑问。wsimport
例如,我知道,xjc
当提供目录文件时(请参见此处的示例),即使<xs:import>
元素具有有效xs:schemaLocation
的、正确托管的并且从中获取的元素,也会从目录中指示的位置获取导入的模式。可以通过网络获取模式。
到目前为止,目录条目覆盖schemaLocation
属性是有意义的。
但是,如果目录文件指示本地文件系统位置,并且出于某种原因,例如目录路径中的输入错误,目录提供的位置不可访问,则该xjc
工具将静默恢复到该xs:schemaLocation
值并从那里检索文件。更糟糕的是,只有在目录中的条目被标记为“PUBLIC”时才会发生这种行为(据我所知,我所做的一些测试)——如果它被标记为“SYSTEM”,则该xjc
工具确实会抱怨。
所以,我的问题是:
为了始终保持一致的行为,有没有办法禁用 xjc
' 从schemaLocation
属性中获取并强制它始终在目录上查找导入的模式,如果找不到它们会失败?请注意,这与询问如何禁用xjc
的网络获取功能不同,因为我认为在某些情况下指示目录文件上的 Intranet 位置可能仍然有用。
xjc
如果上述情况失败,是否有某种方法可以在wsimport
运行期间禁用所有网络访问?