Проверка схемы RelaxNG или XSD с помощью JavaScript

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

3 ответа

Решение

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

http://www.smartclient.com/

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

http://www.smartclient.com/docs/8.0/a/b/c/go.html

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

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

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

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

Теперь появился проект TypeScript, решающий эту проблему: https://github.com/mangalam-research/salve .

Другие вопросы по тегам