UIEvolutin Inc.
UJML Language Reference
Template Scoping and Sharing

Templates are scoped identifiers and may be shared.

Templates are identifiers. See Identifiers, Visual Element Templates. This means they are available to UJML code according to the scoping rules. See Scope. It also means that they may be shared between modules. See Sharing.

Template scope is context dependent

Templates are scoped to the context where they are declared. See Scope. If a template is declared in a module it has module-level scope. If a template is declared in a state machine, it is scoped to that state machine and any child state machines it contains. 

Variables and functions used in scripting code inside of a template must be in the same scope as the template declaration. See Data Scoping and Sharing.

Public templates in state machines

Templates contained by state machines may be declared as public or private using the visibility modifier. See Sharing. Public templates of a state machine may be used by UJML code which has the state machine it its scope using 'dot notation'. See Identifiers.

Sharing templates between linked modules

Module-level scoped templates may be shared by declaring them as exported or imported using the access modifier. See Sharing. This works by exporting them from a parent module and importing them into a child module which the parent has linked to. See Linking Files.

Copyright (c) 2000-2007 UIEvolution, Inc. All rights reserved.
What do you think about this topic? Send feedback!