Configuration XML

Both attributes and attribute types (see AttributeDescriptorInterface and AttributeTypeInterface, respectively) have an attribute named configurationXML. The purpose of this string value is to store configuration data, expressed as XML, which is used to configure or constrain the attribute. This configuration XML will be available to the attribute validators, editors, and customizers.

Note that this document only describes the proposed content of the ConfigurationXML. It does not describe how this information is edited or how the metadata is populated with it.

Since any attribute may have several validators, editors, and customizers, the configuration XML can contain configuration data for all of them. Some configuration data may be shared between these components. For example, a numeric attribute, opacity, may be constrained by a numeric range of (0.0, 1.0). This range would be coded with a <NumericRange> tag with min="0.0" and max="1.0". This same <NumericRange> tag might be used by both the NumericRangeValidator and the NumericRangeEditor. The same attribute might also have additional configuration XML that NumericRangeValidator and NumericRangeEditor do not know anything about. Similarly, an attribute may be constrained by a list of values (i.e. several <Value> items) while the default value would also contain a <Value> item to match.

One possible requirement is that some applications may wish to supply different configuration data for different users, possibly keying off a user role. I have not made a proposal for how this would be coded in the ConfigurationXML.

Configuration XML Inventory

Following is an inventory of the configuration data that is currently supported: