Support for arbitrary XML data sources

Genero Report Writer can produce reports from arbitrary XML data sources.

The xml source is described by an XML Schema. The Open schema file dialog proposes rdd and xsd file formats.

If an xsd file is selected, the designer interprets the file as follows:

  • Any XML Attribute is considered a variable.
  • Any simple type element with minOccurs=1 and maxOccurs=1 is considered a variable.
  • Any complex type elements with minOccurs=0 or maxOccurs>1 produce triggers.

Encoding null values in the data

The attribute “xsi:nil” (with “xsi” representing the namespace “http://www.w3.org/2001/XMLSchema-instance”) can be used on an empty element to denote a null value. The RTL function isNull() for input variables will return true for such a variable. For example, consider the following document fragment:
<input xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
  …
  <productReference xsi:nil=”true”></productReference>
The RTL expression productReference.isNull() will yield true for this instance of the variable.

Limitations

Recursive references are not supported. Elements involved in a recursive reference will be ignored by the designer.

Optional variables are not supported. A variable is optional if one of these conditions is true:
  • It is an XML simple type element with minOccurs="0".
  • It is an XML Attribute without use="required" in the schema definition.

Simple type element with minOccurs="0" are discarded by the designer. No variable is created.

The designer creates variables for optional attributes and issues a warning. An error occurs if the variable is not present at runtime.