Есть ли стандартное представление для форм HTML? - PullRequest
5 голосов
/ 17 ноября 2010

Я работаю в системе, которая должна представлять HTML-форму с типичными элементами, такими как текстовое поле, поле выбора, метки и т. Д., Но она может говорить только на JSON или XML, а не на HTML.

Я всегда мог написать свой собственный JSON или XML-конвертер и анализатор для представления формы в требуемом формате, но я хотел бы придерживаться определенного стандарта, если он существует, для управления изменениями и расширяемости. Кроме того, стандарт должен иметь существующий синтаксический анализатор Javascript.

Я смотрел на XUL , но, похоже, он не имеет тегов формы и выглядит как DSL, подходящий только для приложений на основе Mozilla. Также я не смог найти анализатор Javascript для того же.

Я считаю, что это должно быть довольно распространенной проблемой, которую кто-то решил, но я не могу ее найти. Любые указатели будут высоко оценены.

Ответы [ 2 ]

7 голосов
/ 17 ноября 2010

Стандартное представление для HTML-форм: ... HTML-формы.

Насколько я знаю, никто не изобрел альтернативный способ их представления, потому что, ну, почему вы? Они уже декларативны.

К счастью, учитывая, что HTML может быть написан как XML (мы называем это XHTML), формы XHTML уже удовлетворяют вашему требованию XML.

Что касается их анализа в JavaScript, это зависит от того, что вы подразумеваете под анализом. Джон Ресиг (John Resig) работает над полным анализатором HTML в JavaScript , но если вы просто ищете для чтения / записи значений через DOM, вы можете сделать это в JavaScript.

Спецификация для HTML-форм находится здесь:

Спецификация для написания HTML как XML - это спецификация XHTML 1.0:

Если вы предпочитаете использовать формы HTML5, которые добавляют некоторые новые поля формы (см. http://diveintohtml5.ep.io/forms.html),, соответствующие спецификации:

0 голосов
/ 17 ноября 2010

Системы шаблонов, такие как mustache.js или ejs, помогут вам конвертировать ваш json в html.

http://mustache.github.com/

http://embeddedjs.com/index.html

...