Ошибка задачи JAXB Ant: xjc2 [ОШИБКА] нулевое неизвестное местоположение - PullRequest
5 голосов
/ 13 августа 2010

При связывании некоторых допустимых XML-документов с помощью задачи Ant xjc2 я получаю следующее сообщение об ошибке:

[xjc2] [ERROR] null
[xjc2] unknown location

Документы очень похожи на другие файлы, которые успешно связаны, все импортированные схемы существуют.Запуск xjc в подробном режиме произвел:

Parent is not Defined Class...I cannot get the fields from this class

Кто-нибудь знает, что это значит?

1 Ответ

5 голосов
/ 16 августа 2010

Проверка правильности схемы

В нашем использовании XJC мы увидели похожую проблему (см. Ссылку ниже), которая была решена путем отключения проверки правильности схемы:

Попробуйте следующее свойство System, чтобы отключить проверку правильности схемы.

-Dcom.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.noCorrectnessCheck=true

Для Ant попробуйте:

<xjc target="src">
  <schema dir="src" includes="**/*.xsd" excludes="**/debug.xsd"/>
  <arg value="-nv" />
</xjc>

На следующей странице параметр -nv относится к проверке правильности схемы:

Получение в коде

Вы можете попробовать взаимодействовать с XJC программно (см. Ниже) и подключить свой собственный EntityResolver, чтобы увидеть, куда импортировать / включатьне удается:

import com.sun.codemodel.*;
import com.sun.tools.xjc.*;
import com.sun.tools.xjc.api.*;

SchemaCompiler sc = XJC.createSchemaCompiler();
sc.setEntityResolver(new YourEntityResolver());
sc.setErrorListener(new YourErrorListener());
sc.parseSchema(SYSTEM_ID, element);
S2JJAXBModel model = sc.bind();
...