3.3. NeXus Class Definitions¶
Definitions of NeXus classes. These are split into base_classes (low level objects), application definitions (groupings of objects for a particular technique) and contributed_definitions (proposed definitions from the community)
The complete vocabulary of terms used in NeXus NXDL files (names of groups, fields, attributes, and links) is available for download.
NeXus base class definitions define the set of terms that might be used in an instance of that class. Consider the base classes as a set of components that are used to construct a data file.
Base class definitions are permissive rather than restrictive. While the terms defined aim to cover most possible use cases, and to codify the spelling and meaning of such terms, the class specifications cannot list all acceptable groups and fields. To be able to progress the NeXus standard, additional data (groups, fields, attributes) are acceptable in NeXus HDF5 data files.
Users are encouraged to find the best defined location in which to place their information. It is understood there is not a predefined place for all possible data.
Validation procedures should treat such additional items (not covered by a base class specification) as notes or warnings rather than errors.
NeXus application definitions define the minimum set of terms that must be used in an instance of that class. Application definitions also may define terms that are optional in the NeXus data file.
As in base classes (see above), additional terms that are not described by the application definition may be added to data files that incorporate or adhere to application definitions.
Use NeXus links liberally in data files to reduce duplication of data. In application definitions involving raw data, write the raw data in the NXinstrument tree and then link to it from the location(s) defined in the relevant application definition. See figure NeXus Multi Method Hierarchy for an example.
To write a data file with an application definition, start with either
a NXentry (or NXsubentry) group  and write the name of the
application definition in the
definition field. Then write data into
this group according to the specifications of the application definition.
NXDL files in the NeXus contributed definitions include propositions from the community for NeXus base classes or application definitions, as well as other NXDL files for long-term archival by NeXus. Consider the contributed definitions as either in incubation or a special case not for general use.
See this table for the different formats available:
Human-readable HTML list of anchors, by vocabulary term, with links to the manual.
vocabulary list by key in JSON format 
list of all anchors, sorted alphabetically
vocabulary list by key in YAML format