1
我在Xtext中有下面的DSL: 我想驗證,如果ObjectB有元素,那包含的對象(ObjectA)沒有元素。我得到的警告到對象B,但不反對A.子對象的xtext驗證
Domainmodel:
ObjectA | ObjectB
;
ObjectB:
'ObjectB'
'{'
(element = Element)?
(objects += ObjectA)*
'}'
;
ObjectA:
'ObjectA'
'{'
(element = Element)?
'}'
;
Element:
'Element' name=ID
;
我想就像休耕也是對象A警告:
@check
def ObjectinObject(ObjectB object)
{
if(object.element != null)
{
for (ObjectA e : object.objects)
{
if(e.element != null)
{//The fallowing Code will make Warning at the element and the subelement
warning('warning', DomainmodelPackage$Literals::DOMAINMODEL__ELEMENT)
warning('warning2',e.element ,DomainmodelPackage$Literals::ELEMENT__NAME)
}
}
}
}
謝謝,幫了我很多。我嘗試了一下,並使其工作。我沒有OBJECT_A__OBJECTS作爲文字,只是Object_B__OBJECTS,但也沒有工作。它實際上是:warning('warning2',e.element,DomainmodelPackage $ Literals :: ELEMENT__NAME) – Iron