Как программно редактировать файл схемы xml в плагине eclipse

Мне нужно отредактировать файл xml-схемы (.xsd) в проекте плагина eclipse (версия eclipse - 4.2.2). Прямо сейчас я могу прочитать xsd IFile в моем проекте eclipse, используя org.apache.xerces.xs.XSModel следующим образом:

private XSModel readXSDModelFromResource(IFile xsdFile) throws CoreException, ClassNotFoundException, InstantiationException, IllegalAccessException, ClassCastException {

    DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
    XSImplementation xsImplementation = (XSImplementation) registry.getDOMImplementation("XS-Loader");
    XSLoader schemaLoader = xsImplementation.createXSLoader(null);

    LSInput input = new DOMInputImpl();
    input.setBaseURI(xsdFile.getLocation().removeLastSegments(1).addTrailingSeparator().toOSString());
    input.setSystemId(xsdFile.getFullPath().lastSegment());
    input.setByteStream(xsdFile.getContents());

    XSModel model = schemaLoader.load(input);

    return model;
}

Это хорошо! Моя XSModel имеет правильное представление XML-схемы, а также соответствует всем тегам xsd:include.

Но я читал здесь, что

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

И вот что

XML Schema - это облегченная объектная модель Java, которую можно использовать для управления и создания представлений схемы XML. Вы можете использовать его для чтения файлов XML Schema (xsd) в память и анализа или изменения их, или для создания совершенно новых схем с нуля.

Следовательно, поскольку мне нужно добавлять или удалять элементы, изменять целевые пространства имен и т. Д., Я сомневаюсь:

  • как я могу манипулировать XSModel? Что представляет собой (если существует) связанный объект / библиотека для чтения и записи?
  • если мне нужно использовать библиотеку Apache XMLSchema, как я могу импортировать ее в проект плагина eclipse, поскольку список зависимостей для plugin.xml не имеет ничего общего с пакетом org.apache.ws.*?

Я бы хотел избежать, если возможно (я надеюсь на это:)), необработанных манипуляций с xml dom с помощью DOM, SAX, DOM4J....

Спасибо всем

0 ответов

Другие вопросы по тегам