A binding declaration customizes the default binding of a schema element to a C#/Java representation. The binding declaration defines one or more customization values, each of which customizes a part of C#/Java representation.
When a customization value is defined in a binding declaration, it is associated with a scope. The 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.