Configuration File Language Overview

A binding declaration customizes the default binding of a schema element to a C/C++ representation. The binding declaration defines one or more customization values each of which customizes a part of C/ C++ representation.

Scope

When a customization value is defined in a binding declaration, it is associated with a scope. A scope of a customization value is the set of schema elements to which it applies.

The defined scopes are as follows:

  • global scope: A customization value defined in <bindings> has global scope. A global scope covers all the schema elements in the source schema and (recursively) any schemas that are included or imported by the source schema.

  • schema scope: A customization value defined in <schemaBindings> has schema scope. A schema scope covers all the schema elements in the target namespace of a schema.

  • node scope: A customization value defined in <nodeBindings> has node scope. A node scope covers all schema elements that reference the type definition, the global declaration or the local declaration.

A customization value defined in one scope is inherited for use in a binding declaration covered by another scope as shown by the following inheritance hierarchy:

  • A schema element in schema scope inherits a customization value defined in global scope.

  • A schema element in node scope inherits a customization value defined in schema or global scope.

Likewise, a customization value defined in one scope can override a customization value inherited from another scope as shown below:

  • A value in schema scope overrides a value inherited from global scope.

  • Α value in node scope overrides a value inherited from schema scope or global scope.