Custom report expressions
You can use custom expressions in two places in a custom data set. Typically, custom expressions define the query for the data set, specifying the data that goes into the rows of the report. For example, the following figure shows the custom report expression DeployCoreRoot/topology/unit, which as is explained later in this topic, returns each unit in a topology:

You can also use a custom expression in a column definition for the data set. In this way, you can specify the information that you want to retrieve about each row in the data set. Building on the following example, which retrieves each unit in a topology, you can use a custom expression to retrieve information about each unit. For example, the expression isPublicEditableUnit(.) returns true if the current unit, which is represented by a period, is public-editable.

To see examples of expressions, you can view the expressions of the predefined data sets by right-clicking them in the Data Explorer view, clicking Edit, and then clicking Row Mapping.
Sample XPath expressions
DeployCoreRoot/topology
Similarly,
units are found as children of the topology, so an XPath expression
that returns each unit in the topology looks like this:DeployCoreRoot/topology/unit
instanceOf(//*, "core:Constraint")
By contrast, the
following expression retrieves only the constraints that are on a
unit (excluding constraints on other topology elements, such as capabilities
and requirements):DeployCoreRoot/topology/unit/constraint
XPath expressions with functions
getRealizes(DeployCoreRoot/topology/unit)
If
you pass a specific unit to the data set, either through a parameter
or through a specific XPath expression, the function returns only
the units that have realization links to that unit. getRealizes(resolveURI($unitParam))
For
a list of the available functions, see Functions for topology report expressions.XPath expressions with parameters
resolveURI($currentUnit)/capability
This
expression uses the resolveURI function
to retrieve an element from the topology based on its specific location
within the topology model.Return types for report expressions
When creating report expressions, you must be aware of the type of topology element that the expression returns, such as units, capabilities, or constraints. For example, the expression DeployCoreRoot/topology/unit returns units. If you use this expression in the query for a data set, you must indicate that the query returns units in the Type field of the Row Mapping page of the New EMF Data Set window. To specify the return type of the expression, select the corresponding type in the Browse section and then click the right arrow button next to the Type field.

http://www.ibm.com/ccl/soa/deploy/core/1.0.0/

http://www.eclipse.org/gmf/runtime/1.0.1/notation
When you write custom expressions for the columns of the report, your choices of data type are limited to the types that BIRT accepts for column data, including integers, strings, Boolean values, and binary large objects (BLOBs). Most pieces of data that you retrieve from a topology element are strings, such as names, labels, and other textual attributes. Some functions return integers or Booleans. BLOBs are the appropriate data type for the functions that return images, such as getTopologyDiagramImage.