Проверка схемы RelaxNG или XSD с помощью JavaScript - PullRequest
3 голосов
/ 17 января 2012

Я бы хотел выполнить валидацию схемы RelaxNG (желательно) или XSD (если нужно) в клиентском JavaScript.Есть хорошие библиотеки для этого?Google находит jsrelaxngvalidator , но у меня возникают проблемы с его запуском, и кажется, что он не поддерживается.Целевые браузеры - только Firefox и Chrome.

Ответы [ 2 ]

3 голосов
/ 07 июня 2012

SmartClient может загрузить XSD и сгенерировать форму для редактирования данных, дополненную правилами валидации и удобными сообщениями об ошибках:

http://www.smartclient.com/#xmlSchemaImport

Вы также можете сериализовать данные, которыепользователь вводит и создает XML-документ, который соответствует XSD (правильно именованное пространство и все такое), используя DataSource.xmlSerialize ().

http://www.smartclient.com/docs/8.0/a/b/c/go.html#method..DataSource.xmlSerialize

Эта функция реализована в браузере (нет серверного компонента) и все в бесплатной версии OSS (SmartClient LGPL).

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

3 голосов
/ 20 января 2012

Ответ вроде бы «Нет»: в конце концов у нас работает jsrelaxngvalidator, но он имеет странные ограничения на то, что он поддерживает, требует много библиотек для запуска (в том числе пользовательский анализатор SAX также в бета-версии) и делает странно такие вещи, как загрузка 18 XSLT по проводам для предварительной обработки схем, поэтому мы отказались от него.

Вместо этого я переписал схему как Схема JSON с проверкой на стороне клиента с использованием JSV . Кривая обучения была немного крутой, но теперь она работает хорошо.

...