Вопрос

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

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

Следующее ни в коем случае не должно вызывать раздражения.

Библиотека Enterprise поддерживает проверку объектов, конфигурируемых в XML, но разработчики Java не будут иметь доступа к версии этой интерпретации XML для чтения Java.

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

Существуют ли какие-либо другие среды проверки, которые можно использовать как в .Net, так и в Java?

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

РЕДАКТИРОВАТЬ:

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

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

Спасибо, Пит

Это было полезно?

Решение

Посмотрите на DROOLS.Существуют версии механизма правил для .Net и Java.Java-ссылка и .Net-ссылка

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

Другие советы

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

Языки сценариев идеально подходят для такой логики, поэтому, возможно:

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

или Перл.

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

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

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top