An object describing the structure of metadata documents returned from
IIOMetadata.getAsTree
and passed to
IIOMetadata.setFromTree
and
mergeTree
. Document structures are described by a set of constraints on the type and number of child elements that may belong to a given parent element type, the names, types, and values of attributes that may belong to an element, and the type and values of
Object
reference that may be stored at a node.
N.B: classes that implement this interface should contain a method declared as public static getInstance()
which returns an instance of the class. Commonly, an implementation will construct only a single instance and cache it for future invocations of getInstance
.
In the event that the plugin is provided as part of a named module, that module must export the package containing the implementation class to the
java.desktop
module via a qualified export. An unqualified export is not recommended unless also needed for some other reason. Failing to export the package will result in access failure at runtime.
The structures that may be described by this class are a subset of those expressible using XML document type definitions (DTDs), with the addition of some basic information on the datatypes of attributes and the ability to store an Object
reference within a node. In the future, XML Schemas could be used to represent these structures, and many others.
The differences between IIOMetadataFormat
-described structures and DTDs are as follows:
- Elements may not contain text or mix text with embedded tags.
- The children of an element must conform to one of a few simple patterns, described in the documentation for the
CHILD_*
constants;
- The in-memory representation of an elements may contain a reference to an
Object
. There is no provision for representing such objects textually.