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