По договоренности
Добрый день
Требуется написание программы, которая взаимодействует с пользователем, принимает от него данные в нескольких окнах и сохраняет введенные данные в XML-файле приведенной структуры. Таким же образом должна работать и обратная ситуация, т.е. загружается XML-файл и его содержимое можно редактировать в данной программе. Сами окна будут по большей части отрисованы мной в нетбинсе, а какие не будут, по тем окнам я проконсультируюсь с вами.
Для работы с XML предпочтительно использовать nu.xom, но это обсуждаемо.
Т.к. предполагается дальнейшая работа с введенными данными за рамками данного проекта и техзадания, то требуется, чтобы каждая ветка XML была представлена соответствующим java-классом с сохранением структуры, аналогичной структуре XML.
Если у элемента присутствует атрибут order, то:
1. После операций добавления и удаления в этих элементах, должна происходить перенумерация этого атрибута от 1 до общего количества элементов в данной ветке.
2. Эти элементы должны перенумеровываться через drag&drop в окне программы.
3. При выборке элементов через java-класс, они должны выбираться в порядке order.
На самом деле, ничего сложного, лишь редактирование XML определенной структуры.
Готов выслушать ваши предложения.
Структура XML файла:
<project id="string" URL="string" folder="string" db="string" db_user="string" db_password="string"> Проект, корень файла
<classes> Классы
<class id="string" title="string"> Элементы классов
<attributes> Атрибуты
<attribute id="string" title="string" type="string" order="int" image_type="image_type_id" monopoly_owner="bool" required="bool" multiple="bool" length="bool" mask="string" /> Элементы атрибутов, type может принимать значения BOOL, INT, FLOAT, STRING, DATETIME, FILE, IMAGE, USER, GROUP или id существующего в проекте класса
</attribute>
</attributes>
<image_types> Типы изображений
<image_type id="string" title="string"> Элементы типов изображений
<resolution width="int" height="int" folder="string" /> Разрешения изображений
</image_type>
</image_types>
<indices> Индексы
<index id="" title="" description="" access_method="" unique="" clustered="">
<index_entry class="string" attribute="string" order="int" ascending="bool" null_first="bool" />
</index>
</indices>
<procedures> Процедуры SQL
<procedure name="" description="">Текст процедуры</procedure>
</procedures>
<functions> Функции
<function name="" description="">Текст функции</function>
</functions>
</class>
</classes>
<navigations> Навигации
<navigation id="string" title="string"> Элемент навигации
<class id="class_id" insert_position="int" get_parent_from="bool" delete_childs="bool"> Один из существующих классов из <classes>
<attribute id="attribute_id" /> Атрибуты из этого класса, может быть несколько
</class>
</navigation>
</navigations>
</project>