Что такое NS URI в EMF? - PullRequest
       50

Что такое NS URI в EMF?

0 голосов
/ 01 ноября 2010

Я сгенерировал некоторые классы, используя EMF, и теперь я хочу их создать.Я создал файлы xmi, связанные с моделью и метамоделью.Теперь я хочу загрузить модель в качестве экземпляра в моей программе, но она продолжает выдавать исключение NullPointerException.

Мой код:

Map<String,Object> registry = EPackage.Registry.INSTANCE;
String workflowURI = ExcelEditorPackage.eNS_URI;
System.out.println(workflowURI);
ExcelEditorPackage wfPackage = (ExcelEditorPackage) registry.get(workflowURI); //throw NPE here
ExcelEditorFactory wfFactory = wfPackage.getExcelEditorFactory();
Page workflow = wfFactory.createPage();

Он бросает значение в wfFactory, потому что wfPackage имеет значение null.Мой NS URI - "http://www.sg/model" (этот URL не существует).

Ответы [ 2 ]

0 голосов
/ 01 ноября 2010

Он выдает at wfFactory, потому что wfPackage имеет значение null.

Если NPE действительно выброшено на указанную вами линию, он не может произойти, потому что wfPackage равен null. Фактически, это должно указывать, что registry равно null.

Мой NS URI - "http://www.sg/model" (этот URL не существует).

Это не должно иметь значения. NS URI - это просто «уникальное имя», которое обозначает пространство имен XML для вашей модели. Это не должно быть разрешено.

0 голосов
/ 01 ноября 2010

NS URI означает URI пространства имен.Это эквивалент XML-пакетов в Java.Очевидно, среда выполнения EMF не может загрузить пакет, связанный с указанным вами URI.Проверьте, правильно ли указан URI.

...