2009-09-08 2 views
1

Я собираюсь приступить к новому проекту, в рамках которого нам требуется возможность повторно использовать проверки на основе (предпочтительно XML) как на клиенте, так и на сервере.Основы валидации на основе XML Кросс-язык

Мы установили сервис для предоставления данных конфигурации проверки XML на стороне клиента.

Следующие не должны быть воспалительными в любом случае.

В библиотеке Enterprise есть поддержка проверки объектов, которые должны быть настроены в XML, но разработчики java не будут иметь доступ к версии XML-версии этой интерпретации XML.

Существует также проверка Spring.Net, но снова я думаю, что это может быть связано слишком много .net. Является ли набор проверки Spring.Net прямо перенесенным из java spring framework, то есть без изменений в конфигурацию xml?

Есть ли какие-либо другие рамки для проверки, которые могут использоваться как в .NET, так и в Java?

Проект будет полностью SOA, и проверка является одной из последних вещей, которые я должен выяснить.

EDIT:

Для уточнения проверки должен произойти в языке, принимающий клиент использует, то есть, если клиент веб-сервис является Java, то проверка будет читать в Java и проверена в Java так что об ошибках могут быть сообщены пользовательскому интерфейсу пользователя для исправления. В равной степени, если это был .net-клиент, клиент .net мог бы прочитать его и предоставить ту же функциональность.

Я не хочу проверять внутри xml, xml будет набором правил, то есть Customer.Name будет содержать максимум 50 символов и должен быть не менее 5 символов и является обязательным.

Благодаря Пит

+0

Вы проверяете xml? –

+0

Нет Я проверяю бизнес-объекты, бизнес-объекты будут одинаковыми в Java и .Net, хотя – Peter

+0

Хотя это звучит неплохо (я большой поклонник переносимости), возможно, он не работает нормально при использовании пользовательской проверки если он не использует JavaScript (универсальный язык), когда возникает проблема с выборочной проверкой. –

ответ

3

Посмотрите на DROOLS. Существуют версии .Net и Java версии механизма правил. Java Link и .Net Link

Я не пользовательские библиотеки, поэтому не могу комментировать, как «легко» один набор правил можно было бы использовать в обеих средах.

0

Не уверен, какие проверки вашего пытаются достичь. Если ваши бизнес-объекты будут сериализованы в форме XML, то помимо проверки схемы вы можете увеличить это с помощью дополнительных бизнес-правил и проверок с использованием Schematron.

Schematron - это стандарт ISO и обеспечивает способ кодирования бизнес-правил, ограничений и валидации, которые невозможны в XML-схеме.

Schematron отличается в основном концепции от других языков схем в , что она не основана на грамматике, но на найти образцы дерева в разобранном документа. Этот подход позволяет представить множество видов структур , которые неудобны и сложны в языках схемы на основе грамматики. Если вы знаете XPath или выражение XSLT , вы можете немедленно начать использовать The Schematron.

+0

Спасибо за указатель на схему. Я действительно надеялся сделать проверку в коде. Причиной этого является то, что мы можем уменьшить чатодейство клиента с уровнем веб-сервиса, выполнив переднюю проверку на клиенте. Я хочу проверить в .net или в java, чтобы клиенты могли получить доступ к каждому объекту и получить все ошибки для объекта и отобразить справочные сообщения пользователю. – Peter

3

Как пробовать проверку на языке сценариев, который можно запускать как в jvm, так и в .net.

Языки сценариев был бы идеальным для такого рода логики, так, может быть:

Рубин - http://www.ironruby.net/ и http://www.jruby.org/

или Perl.

Этот подход позволит использовать один и тот же код для проверки, а затем вызвать его из Java или .net.

Использование jruby не будет значительным издержками производительности и может очень тесно интегрироваться с java. У меня меньше опыта работы с Ironruby, но из того, что я прочитал после того, как код был загружен и работает, это нормально, и его можно хорошо интегрировать в код .net: см.: http://www.ironruby.net/Documentation/.NET/Hosting

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

+0

Какова производительность таких вызовов в этих сценариях? есть ли большие накладные расходы на них? Я знаю, что количество проверок будет напрямую повлиять на это, но я имею в виду прямой interop. Другое дело, что при использовании этих типов сценариев вы можете получить доступ ко всем переменным, используемым в скрипте? Например, если мы проверяем объект, а затем хотим запросить словарь ошибок для ошибок для определенного свойства? спасибо – Peter

+0

обновил мой ответ – Pablojim

Смежные вопросы