this can be done with simple cross refs
Service:
'Service' att=STRING 'for' car=[Car] ('(' extras+=[Extra]+ ')')?
;
And a corresponding scope provider
package org.xtext.example.mydsl.scoping
import org.eclipse.emf.ecore.EReference
import org.eclipse.xtext.scoping.IScope
import org.eclipse.xtext.scoping.Scopes
import org.eclipse.xtext.scoping.impl.AbstractDeclarativeScopeProvider
import org.xtext.example.mydsl.myDsl.Service
class MyDslScopeProvider extends AbstractDeclarativeScopeProvider {
def IScope scope_Service_extras(Service ctx, EReference ref) {
return Scopes.scopeFor(ctx.car.extra)
}
}