Из-за различных проблем с XSD, которые мне нужно скомпилировать (описанных в других сообщениях SO), у меня есть файл привязок, а также схема локального расширения. Следующая командная строка работает правильно, но у меня возникли проблемы с определением правильной конфигурации pom.xml
для имитации этого:
xjc -nv src/main/resources/TCIPinclude
0_0_Final.xsd src/main/resources/local/ObaCcLocationReport.xsd -b src/main/resources/local/rename.xjb -d target
В основном, как указать более одного XSD? Я старался:
<schemaDirectory>src/main/resources</schemaDirectory>
<schemaIncludes>
<include>TCIPinclude
0_0_Final.xsd</include>
<include>local/ObaCcLocationReport.xsd</include>
</schemaIncludes>
но, похоже, он проигнорировал второй include
.
Я также пробовал варианты:
<schema>
<fileset>
<directory>src/main/resources</directory>
<includes>
<include>TCIP_4_0_0_Final.xsd</include>
<include>local/ObaCcLocationReport.xsd</include>
</includes>
</fileset>
</schema>
безуспешно. Предложения?
ИЗМЕНИТЬ
Это работает как обходной путь, но он не идеален:
Поскольку ObaCcLocationReport.xsd
зависит от схем, которые компилируются как часть TCIP_4_0_0_Final.xsd
, мне просто нужно было убедиться, что они скомпилированы после этого, и кажется, что файлы обрабатываются в порядке пути к файлу. Поэтому я поместил ObaCcLocationReport.xsd
в подпапку x
и изменил pom.xml
на:
<schemaDirectory>src/main/resources</schemaDirectory>
<schemaIncludes>
<include>TCIP_4_0_0_Final.xsd</include>
<include>x/ObaCcLocationReport.xsd</include>
</schemaIncludes>
Это скомпилировало схемы и правильно сгенерировало файлы Java.