2.1 Introduction

This section describes the elements that are defined in the Report Definition Language (RDL), including the following:

  • The meaning, restrictions, and constraints of the element and its value, if applicable.

  • The relationships between the element and other elements.

  • The XML schema definition (XSD) of the element.

The RDL XML file is a valid XML file, as specified in [XML10/5], which conforms to one of the XSD specifications that are defined in section 1.3.3.1 of this document, depending on the RDL version. Section 5 of this document describes the structures of an RDL XML file that conforms to this specification.

The following RDL XML schema versions use a macro-versioning approach:

  • RDL 2003/10 (section 5.1)

  • RDL 2005/01 (section 5.2)

  • RDL 2008/01 (section 5.3)

  • RDL 2010/01 (section 5.4)

  • RDL 2016/01 (section 5.8)

Macro-versioning means that each of these RDL schema versions is a complete XML schema that defines all its elements and attributes and the relationships among them. Because each schema is complete in and of itself, each schema supersedes the previous schema, cumulatively.

However, the following RDL schema versions use a micro-versioning approach:

  • RDL 2011/01 (section 5.5)

  • RDL 2012/01 (section 5.6)

  • RDL 2013/01 (section 5.7)

Micro-versioning means that these three RDL schema versions supplement the RDL 2010/01 base schema. Each supplementary schema defines only the incremental set of elements and attributes and the relationships among them that is defined in that particular schema.

Because of the way in which the macro-versioned RDL XML schemas are "open" and allow custom elements and attributes by using the xsd:any element, it is not possible to also encode the relationship between RDL 2010/01 elements and RDL 2011/01, RDL 2012/01, and RDL 2013/01 elements across the different schema approaches. Instead, the relationships are validated in the particular code.

As such, the RDL 2010/01 schema in the document (section 5.4) is accurate and complete. It does not include any of the supplementary elements or attributes, as represented either in the normative textual descriptions of particular elements or in the appendix.

Further, the full supplementary schemas for micro-versioned RDL 2011/01, RDL 2012/01, and RDL 2013/01 that are found in sections 5.5, 5.6, and 5.7, respectively, are to be used in conjunction with RDL 2010/01, and examples of the XSD for the supplementary schemas are not included in the normative textual description of the particular element being described.

As an XML file that conforms to an XML Schema, RDL is comprised of simple and complex elements. RDL has other structural constraints and restrictions, as well, which cannot be expressed fully by an XML Schema.

Two facts are critical to the interpretation of the XML Schema definitions (XSDs) that are used throughout this document:

  • Because of limitations in the XSD language, in some cases, the XSD does not fully constrain the contents of RDL. Some constraints are defined only in the normative textual description of the element.

  • The XSD example, when taken out of context, can, in some cases, appear to be less restrictive than the normative textual description of the element, even when the full XSD actually matches the normative textual description exactly.

As an example of the second issue, consider the following XSD.

 <xsd:element name="Child1" type="xsd:string" /> 

Based on this line, it would appear that Child1 is mandatory.

However, the full context of the usage of Child1 might be the following.

 <xsd:complexType name="Parent">
   <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="Child1" type="xsd:string" /> 
      <xsd:element name="Child2" type="xsd:string" /> 
   </xsd:choice>
 </xsd:complexType>

The xsd:choice requires Parent to have at least one child, but Child1 itself is not actually mandatory.