XML - статьи



              

Переписывание схемы


При выполнении программа MakeSoapCompatible выводит свой статус в System.out. Если обнаружится, что в схеме отсутствуют активно используемые атрибуты, сообщите, чтобы изменения не вносились, и выходите. В противном случае, измените имя модифицированного документа схемы и сообщите свой статус - либо список атрибутов, которые были успешно преобразованы в элементы, либо предупреждение о том, что имел место конфликт имен, и атрибуты были оставлены без изменений.

Предполагается, что по крайней мере, некоторые объявления атрибутов были преобразованы в эквивалентные объявления элементов. В этом случае важно сохранить эту схему для дальнейшего использования с SOAP-приложением. Оболочка EMF, на которой построена эта Модель, обеспечивает сервисы обработки ресурсов, которые различны способами загружают и сохраняют документы схемы. Код примера демонстрирует очень простой способ сериализации непосредственно в универсальный идентификатор ресурса (URI), в этом случае выходной файл на диске называется по имени оригинального входного файла.



Листинг 6. Запись схемы в файл

File outFile = new File(newLocation); FileOutputStream fos = new FileOutputStream(outFile); // Ensure that the abstract model is synchronized with the // concrete tree: this will ensure that the Model has // updated the concrete Element in the schema document // with any changes that may have been made in the // abstract model // (Убедитесь, что абстрактная модель синхронизирована с // конкретным деревом: это гарантирует, что Модель обновила // конкретный элемент в документе схемы с учетом всех изменений, // внесенных в абстрактную модель) schema.updateElement();

// Simply ask the XSDResourceImpl to serialize the schema to // a document for us; this is just one way we can easily use // the XSD/EMF framework to manage resources for us // (Просто запрашивает XSDResourceImpl сериализовать схему // в документ; это просто способ использования оболочки // XSD/EMF для управления ресурсами) XSDResourceImpl.serialize(fos, schema.getElement()); fos.close();




Содержание  Назад  Вперед