Каков стандартный подход к написанию веб-приложения, которое модифицирует XML - PullRequest
0 голосов
/ 12 июня 2009

Мне нужно написать небольшое веб-приложение на Java, которое отображает содержимое XML для пользователя в виде формы. Затем пользователь может изменить записи формы, и изменения будут сохранены в XML.

Я хочу знать

  • Какой стандартный способ написания такого приложения? Я имею в виду, должен ли я вручную писать код для анализа XML в объектах Java, отображения на веб-странице, а затем переписать изменения обратно в XML? Или есть какие-либо стандартные инструменты, которые могут автоматизировать некоторые из этих шагов?

  • Как управлять блокировкой в ​​случае, если несколько пользователей пытаются обновить один и тот же XML?

Кстати, я открыт для использования любого языка / фреймворка, если он предлагает простое решение с минимальными усилиями.

Этот инструмент предназначен для использования инженерами службы поддержки производства для изменения XML-конфигурации конкретной продукции.

Ответы [ 3 ]

1 голос
/ 12 июня 2009

Никогда, никогда не пишите свой собственный анализатор XML.

Да, Java (т.е. JSP) имеет встроенные библиотеки для загрузки и сохранения файлов XML.

Написание кода для создания формы HTML, заполнение его информацией об элементе XML, получение формы POST от клиента и запись ее в обновленный файл XML - все довольно просто, но это будет много работы, особенно если форма сложная.

Проблема с блокировкой: веб-соединения не сохраняют состояние. Бедное решение: переименуйте файл XML (скажем, от 1.xml до 1.xml.checkedout), пока он редактируется. Переименуйте его обратно после сохранения. Передайте имя файла с формой обратно на сервер, чтобы ваш серверный код знал, в какой файл записать и переименовать обратно. Недостатком является то, что пользователи, покинувшие веб-страницу, оставят переименованную бойню.

На стороне сервера PHP, JSP, ASP.NET, Perl и Python вполне подойдут для этого приложения. Все зависит от того, в чем вы чувствуете себя наиболее комфортно.

Помните, поскольку вы не храните XML в базе данных, веб-серверу потребуется запись доступ к буквальным XML-файлам.

0 голосов
/ 12 июня 2009

Недавно мы работали над аналогичным проектом в c #, но принципы должны быть такими же. На самом деле у нас не было таких проблем с управлением конфликтами, так как мы версировали файл в таблицу, а затем предоставили пользователю функцию слияния, если кто-то другой перезаписал их данные.

Проблема стала намного проще, когда мы решили, что будем использовать xslt для преобразования xml в формы xhtml. В зависимости от сложности xml (и получающейся формы), это может быть сделано относительно быстро. Затем вы можете выполнить преобразование (на большинстве языков) в одну строку.

То, что сделало эту работу настолько хорошей, было то, что мы могли использовать атрибуты имени элемента формы для передачи xpath каждого узла, который мы пытались обновить (получить это в xslt довольно легко). Тогда мы будем иметь прямую ссылку на обновляемые данные. После проверки введенных пользователем данных вы также можете обновить xml несколькими строками.

В итоге получилось красиво-элегантное решение (именно для таких вещей предназначены xml, xslt и xquery). Самое приятное то, что он хорошо переводится на любой язык с относительно хорошими инструментами XML. Этот подход также позволяет легко добавлять функциональные возможности в форму или предоставлять альтернативные представления данных.

0 голосов
/ 12 июня 2009

Вы смотрели на модель XFORMS ? Может представлять интерес

...