Most
constraints ensuring a tree structure were enforced in the modeling language. During
FIGURE 5.6 Metamodel of the language
LANGUAGE FOR MODELING CALL PROCESSING SERVICES 109
code generation, remaining illegal structures for XML (but legal for the model) were
identi?¬?ed and forced to follow a tree structure. To support the call process view, the
modeling language had the following rules de?¬?ned:
. A root element could occur only once in a model, that is, only one start element
for each service speci?¬?cation was allowed. In the metamodel, the root element
further has a constraint that a root can only be in one relationship to start the call
process. Reusable subactions could have their own root element, which would
be omitted during generation.
. As both Redirect and Reject immediately terminate the call processing
execution, these concepts were de?¬?ned to have just incoming ?¬‚ows; that is, they
form leaves of the tree.
. Cyclic structures between the objects were reported as errors.
Choices and Conditions in the Call Path The metamodel was also extended
with concepts and rules to enable choices. This was done by having special
relationship types for connecting choice types, and related rules called bindings, that
specify the legal elements as source and target. The rules included the following:
.
Pages:
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227