Я использую SpringSource Tool Suite 2.7.0.M2, то есть Eclipse 3.6.2. Я нахожусь на Mac OS X 10.6.7, но эта проблема не зависит от ОС, так что для чего бы это ни стоило ...
У меня есть XSD, который импортирует другой XSD. В нашей существующей структуре это находится в структуре сборки в системе папок, на которую ссылается сборка из командной строки (объединение ant, maven 1 и maven 2). По понятным причинам мы переходим от этого процесса к архитектуре на основе Maven и плагинов в течение следующих нескольких месяцев. Это будет означать множество небольших проектов, которые ссылаются на наши основные проекты, включая ссылки XSD.
Так что в настоящее время эти XSD выглядят примерно так:
<xs:schema targetNamespace="http://nrg.wustl.edu/iq" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xnat="http://nrg.wustl.edu/xnat" xmlns:iq="http://nrg.wustl.edu/iq">
<xs:import namespace="http://nrg.wustl.edu/xnat" schemaLocation="../xnat/xnat.xsd"/>
...
</xs:schema>
Как я уже сказал, это работает в нашей текущей структуре, так как на самом деле папка xnat находится на том же уровне, что и моя пользовательская схема, которая импортирует этот xnat.xsd.
Но наша новая архитектура плагинов сломает это, так как плагины для пользовательских типов будут ссылаться на наш базовый проект как:
- Еще один проект в том же STS
Рабочая область
- Управляемый Maven файл JAR
на который ссылается плагин pom.xml
Это приводит к тому, что оператор импорта генерирует предупреждение, так как он не может найти указанный XSD-файл, и приводит к тому, что ссылки на определенное пространство имен генерируют ошибки, поскольку он не может найти определение пространства имен, для которого выполняется проверка ссылочные элементы.
Я попытался настроить каталог делегатов в STS с типом ключа для соответствия , установленным в URI, путь импорта (т.е. ../xnat/xnat.xsd) в качестве соответствия начальная строка и Делегирование этого файла каталога XML в файл xnat.xsd, расположенный в рабочей области.
Я также настроил элемент каталога XML, который отображал URI в файл xsd. Я одновременно работал с ними обоими, думая, что, может быть, делегат перейдет к элементу каталога XML, учитывая, что URI был тем же, но не повезло.
Так, каков лучший способ сделать это? Я могу отключить проверку XML, но я бы предпочел, чтобы у нашего пользователя была приятная процедура, чтобы они могли проверять свои XML и XSD, работая над своими плагинами. Если это сработает как для ссылок на проекты, так и для Maven-зависимостей, тем лучше!
Обратите внимание, что, хотя я работаю в STS, это НЕ файлы конфигурации Spring, поэтому они не проходят процесс проверки с помощью spring.handler / schema / etc. файлы конфигурации ...
Спасибо за любую помощь, которую вы можете оказать по этому вопросу!