У меня есть много XSD, которые обращаются друг к другу.
Поскольку я перехожу к JAXB, я в настоящее время ищу простой способ добавления пространств имен в xsds в соответствии с их структурой папок.Inherit XSD префикс пространства имен
Моей главной проблемой на данный момент является добавление пространства имен к самому XSD, к импорту в файле доступа, а также к определению префикса в файле доступа.
Вот небольшой пример (не вполне реально жить)
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"
Когда у меня теперь есть новый Message.xsd
схемы я должен дублировать 90% моего заголовка XSD.
Я создал Namespace.xsd xmlns:user="common.user" xmlns:message="common.message"
, который затем включается Email.xsd. Но доступ, например, user:name
не работает.
Есть ли способ сохранить определение пространства имен в центральном XSD-файле, поэтому мне не нужно определять их в каждом отдельном xsd?
Кроме того, существует ли способ, которым не нужно устанавливать пространство имен в импорте, когда оно уже определено в импортированном xsd как targetNamespace?