Jaxb 继承XSD命名空间前缀

Jaxb 继承XSD命名空间前缀,jaxb,xsd,xml-namespaces,Jaxb,Xsd,Xml Namespaces,我有很多互相访问的XSD。 由于我正在改用JAXB,所以我目前正在寻找一种简单的方法,根据XSD的文件夹结构将名称空间添加到XSD中 我目前的主要问题是将名称空间添加到XSD本身、访问文件中的导入以及访问文件中的前缀定义中 这里有一个小例子(不太真实) 当我现在有一个新的Message.xsdschema时,我必须复制我的xsd头的90% 我正在创建一个Namespace.xsdxmlns:user=“common.user”xmlns:message=“common.message”,然后将其

我有很多互相访问的XSD。
由于我正在改用JAXB,所以我目前正在寻找一种简单的方法,根据XSD的文件夹结构将名称空间添加到XSD中

我目前的主要问题是将名称空间添加到XSD本身、访问文件中的导入以及访问文件中的前缀定义中

这里有一个小例子(不太真实)

当我现在有一个新的
Message.xsd
schema时,我必须复制我的xsd头的90%

我正在创建一个Namespace.xsd
xmlns:user=“common.user”xmlns:message=“common.message”
,然后将其包含在Email.xsd中。但是访问例如
user:name
不起作用

有没有办法将名称空间前缀定义保存在中心XSD文件中,这样我就不必在每个XSD文件中定义它们

另外,当名称空间已经在导入的xsd中定义为targetNamespace时,是否有一种方法不需要在导入中设置名称空间?

我认为(虽然不是100%确定)在模式a中包含一个模式B,该模式B导入另一个模式C将允许您访问a中的C

但是,您仍然需要声明名称空间前缀(如
xmlns:user=“common.user”

注:只是一个警告——永远不要这样做。你似乎不打算这么做,但我还是想警告你

User.xsd - targetNamespace="common.user"
Message.xsd - targetNamespace="common.message"
Email.xsd - targetNamespace="email" xmlns:user="common.user" xmlns:message="common.message"
            import namespace="common.user" schemaLocation="./common/user.xsd"
            import namespace="common.message" schemaLocation="./common/message.xsd"