Редактор схемы точек расширения можно открыть двумя способами: как побочный результат создания точки расширения или открыв схему для существующей точки расширения. Принято, что имена схем совпадают с ИД точки расширения и имеют расширение файла .exsd. Они помещаются в каталог schema дерева каталогов модулей.
При создании новой точки расширения в PDE будет создан также начальный файл схемы, который будет открыт в редакторе схемы. Схему можно задать сразу же или отложить ее создание на потом. Полная схема точки расширения используется PDE для автоматических операций поддержки пользователей вашей точки расширения.
Редактор схем PDE использует те же концепции, что и редактор манифеста модуля. Он содержит две страницы форм и одну - для исходного текста. Поскольку схема XML изложена очень подробно, и ее трудно читать в виде исходного текста, как правило следует использовать страницы форм при редактировании. Страница исходных текстов полезна для чтения получающегося кода.
Ранее мы создали точку расширения "Примеры анализаторов" и начальную схему. Откроем схему, зайдя в каталог schema проекта и дважды щелкнув на файле parsers.exsd. Откроется редактор схемы.
Выполним следующие задачи:
Каждая схема точки расширения начинается с объявления элемента "extension". Добавим новый элемент XML "parser."
Редактор схемы примет следующий вид:
Добавим несколько атрибутов, выбирая их значения из списка. Это означает, что нам нужно создать ограничение - перечисление типа string. Кроме того, зададим значение по умолчанию для атрибута.
Окно ограничений примет следующий вид:
Закрыв окно, измените атрибут "use" на "default" и атрибут "value" на "always." Тем самым будет задано значение по умолчанию. При вводе значения строка состояния отображает ошибку, поскольку допустимые значения ограничены тремя вариантами перечисления. При окончании ввода сообщение об ошибке исчезнет, поскольку "always" - допустимое значение.
Задав все элементы, определим грамматику. Мы хотим, чтобы элемент "extension" мог иметь любое число потомков - элементов "parser".
После определения грамматики ниже будет показан примерный вид DTD для выбранного элемента. Эта информация служит подсказкой для разработчиков, которые пока что привыкли работать с DTD, а не со схемами XML.
Задав элементы, атрибуты и грамматику, займемся документацией для точки расширения. Существует два типа фрагментов документации схемы:
Левый тип фрагмента показан на странице Определения манифеста схемы. Выбирая элементы и атрибуты, вы можете вводить краткий текст о них в разделе "Описание". Текст вводится в виде кода HTML (как с Javadoc) и будет скопирован как есть в конечный справочный документ.
Теперь введем краткое описание самой точки расширения. Для этого перейдем на страницу Документация:
Эта точка расширения служит для подключения дополнительных анализаторов.
Анализаторы в действительности не работают - они здесь описаны лишь как пример схемы точки расширения.
Ниже приведен пример использования этой точки расширения:
<p>
<pre>
<extension point="com.example.xyz.parsers">
<parser
id="com.example.xyz.parser1"
name="Анализатор 1"
class="com.example.xyz.SampleParser1">
</parser>
</extension>
</pre>
</p>
Нажмите Применить.
Модули, подключаемые к этой точке расширения, должны реализовывать интерфейс <samp>com.example.xyz.IParser</samp>.
Модуль XYZ содержит стандартную реализацию анализатора.
Нажмите Применить.Примечание: При создании примеров требуется учитывать некоторые особенности PDE. Обычно PDE обрабатывает текст как код HTML и не обращает внимания на переводы строки и серии пробелов. Для простого текста так и должно быть, но это очень мешает при обработке примеров, где желательно сохранение макета с отступами по горизонтали и по вертикали для правильного отображения примера. В PDE предусмотрено решение для такой ситуации: все форматирование текста между тегами HTML <pre> и </pre> сохраняется без изменений. Поэтому в документации возможно сохранить правильное оформление примеров, подобных приведенным выше.
Обратите внимание, что при создании документации все больше и больше элементов в редакторе панели Схема помечаются значком "ручки". Это указывает на то, что элемент содержит связанный с ним текст, что служит подсказкой для быстрого поиска пустых мест в документации.
Завершив работу над документацией, займемся справочниками. Это возможно двумя способами. В любой момент можно просмотреть справочный документ, выбрав в всплывающем меню пункт Предварительный просмотр справочника. Можно также указать в параметрах PDE (на вкладке Схема, Параметры > Разработка модулей > Компиляторы), чтобы справочники создавались автоматически при любом изменении схемы. Независимо от способа создания, конечный документ для этого примера будет выглядеть примерно так.