使用EMF Validation框架来验证EMF模型

EMF(Eclipse Modeling Framework)建模框架能够帮助我们将模型 (UML, XSD 等 ) 转 换成为健壮且功能丰富的 Java 代码。使用 EMF 来搭建应用程序,不但能极大的提高开发效 率,而且还能利用 EMF 提供的很多特性来保证模型的健壮和完善,主要包括模型变化通知机 制,模型的持久化以及模型验证框架。本文将要介绍的 EMF Validation Framework,是 EMF 的一个重要部分,通过使用 EMF Validation Framework,我们能方便的对定义的 EMF 模型 添加验证约束,以保证模型数据遵从于用户自定义的约束。

EMF Validation Framework 提供了对 EMF eObjects 的校验框架,和 EMF EValidator API 相比

它能提供更复杂全面的验证并且易用易扩展。EMF Validation Framework 提供了灵活的 验证定义方式,支持两种验证触发机制:Batch 和 Live。它支持用 JAVA 和 OCL 语言来实 现约束,此外它还支持自定义验证时的模型扫描算法,并提供了一个 Validation Client Context 来规避不必要的验证。

EMF Validation Framework 的实现原理

在 EMF Validation Framework 框架中有几个重要的概念,这些概念构成了验证框架的基 本部分,我们在下面对其逐一介绍:

约束(constraints)

所有的约束必须实现 IModelConstraint 接口,定义了验证执行的逻辑(validate()), 并拥有一个约束描述符(一个实现 IConstraintDescriptor 接口的类),该描述符包含了这 个约束的源信息,例如,验证模式是 live 还是 batch,验证的目标对象等,图 1 可以给您 一个基本的概念。

图 1. 约束

时间: 2024-11-16 18:12:59

使用EMF Validation框架来验证EMF模型的相关文章

Struts2教程5:使用Validation框架验证数据

在<Struts2教程4:使用validate方法验证数据>中曾讲到使用validate方法来验证客户端提交的数据,但如果使用validate方法就会将验证代码和正常的逻辑代码混在一起,但这样做并不利于代码维护,而且也很难将过些代码用于其他程序的验证.在Struts2中为我们提供了一个Validation框架,这个框架和Struts1.x提供的Validation框架类似,也是通过XML文件进行配置. 一.服务端验证 下面将给出一个例子来演示如何使用Struts2的validation框架来进

《CCNP SWITCH (642-813 )学习指南》一1.1 复杂的企业网络框架、架构和模型

1.1 复杂的企业网络框架.架构和模型 CCNP ROUTE (642-902)学习指南 本节介绍融合网络(converged network)及其中的各种数据流.为满足这种网络的需求,Cisco制定了智能信息网(Intelligent Information Network,IIN)策略,并开发了面向服务的网络架构(Service-Oriented Network Architecture,SONA)以引导企业网转向IIN.本节将介绍这两个主题. 本节还将概述Cisco企业级架构,并介绍传统的

Struts Validation框架浅尝2

javascript 支持       在web应用中,使用javascript的机会非常多.虽然不少书上提及客户有可能从浏览器关闭js的执行,但是要想完全的不使用它,目前看来好像还不行.比如一些复杂的UI是必须通过js来实现的(如下拉式菜单等等).那么validation框架支不支持客户端的js验证呢?答案是:当然.具体做法是: -          在页面html:form标签内部添加onsubmit="return validateEditForm(this);"(具体的语法:v

JQurey Validation表单验证使用详解

功能强大的 jQuery 表单验证插件,适用于日常的 E-mail.电话号码.网址等验证及 Ajax 验证,除自身拥有丰富的验证规则外,还可以添加自定义的验证规则.兼容 IE 6+, Chrome, Firefox, Safari, Opera 10+     是一款优秀的插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.本文就是通过讲解这个实例来理解Validation的应用. 本实例涉及到的验证有: 用户名:长度.字符验证,重复性ajax验证(是否已存在).

jquery validation表单验证的问题

问题描述 jquery validation表单验证的问题 这是添加的验证 $('#RegisterForm').validationEngine( { rules: { username: { required: true remote: { type: ""post"" url: ""/Buyers/Index/CheckName"" data: { username: function () { return $(&qu

【玩转数据系列十二】PAI平台深度学习Caffe框架实现图像分类的模型训练

PAI平台深度学习Caffe框架实现图像分类的模型训练 背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Tensorflow做深度学习做深度学习的网络搭建和训练需要通过PYTHON代码才能使用,对于不太会写代码的同学还是有一定的使用门槛的.本文将介绍另一个深度学习框架Caffe,通过Caffe只需要填写一些配置文件就可以实现图像分类的模型训练.关于P

JQurey Validation表单验证使用详解_jquery

是一款优秀的插件,它能对客户端表单进行验证,并且提供了许多可以定制的属性和方法,良好的扩展性.本文就是通过讲解这个实例来理解Validation的应用. 本实例涉及到的验证有: 用户名:长度.字符验证,重复性ajax验证(是否已存在). 密码:长度验证,重复输入密码验证. 邮件:邮件地址验证. 固定电话:中国大陆固定电话号码验证. 手机号:中国大陆手机号码验证. 网址:网站URL地址验证. 日期:标准日期格式验证. 数字:整数.正整数验证,数字范围验证. 身份证:大陆身份证号码验证. 邮政编码:

jquery validation-Jquery Validation插件在验证有错误时禁止提交

问题描述 Jquery Validation插件在验证有错误时禁止提交 Jquery Validation在输入长度不符合要求时也能提交, 怎么改成验证不通过就禁止提交? 解决方案 function check() { if(验证通过) { return true; } else { //验证不通过 return false; } }

机器学习之Validation(验证,模型选择)

对于机器学习的模型选择来说,即使只是对于二元分类,我们已经学习了很多方法,比如PLA,LR等:很多学习算法都是可迭代的,需要决定迭代次数:你可能还需要决定每一次迭代走多大,例如梯度下降:或者有很多的转换可以选择,例如线性.二次等:同时规则化又有很多的选择L1,L2:再来规则化到底要加多强的λ.况且这些选择是组合起来的,某种程度上来说是组合爆炸的,那么我们怎么做出正确的选择? 那么对于以上两个模型,你会选择哪一个模型呢?也许你会说,可以根据自己视觉上的判断来选择模型,但是我们必须注意到,当选择的模