diff --git a/base_classes/NXcalibration.nxdl.xml b/base_classes/NXcalibration.nxdl.xml
deleted file mode 100644
index 1c01b1aba1..0000000000
--- a/base_classes/NXcalibration.nxdl.xml
+++ /dev/null
@@ -1,206 +0,0 @@
-
-
-
-
-
-
- The symbols used in the schema to specify e.g. dimensions of arrays
-
-
-
- Number of points of the calibrated and uncalibrated axes
-
-
-
-
- Subclass of NXprocess to describe post-processing calibrations.
-
-
-
- A description of the procedures employed.
-
-
-
-
- The physical quantity of the calibration, e.g.,
- energy, momentum, time, etc.
-
-
-
-
- A digital persistent identifier (e.g., DOI, ISO standard) referring to a detailed description of a
- calibration method but no actual calibration data.
-
-
-
-
- A digital persistent identifier (e.g., a DOI) referring to a publicly available calibration measurement
- used for this instrument, e.g., a measurement of a known standard containing calibration information.
- The axis values may be copied or linked in the appropriate NXcalibration fields for reference.
-
-
-
-
- A file serialisation of a calibration which may not be publicly available (externally from the nexus file).
-
- This metadata can be a documentation of the source (file) or database (entry) from which pieces
- of information have been extracted for consumption (e.g. in a research data management system (RDMS)).
- It is also possible to include the actual file by using the `file` field.
-
- The axis values may be copied or linked in the appropriate NXcalibration fields for reference.
-
-
-
-
- Indicates the name of the last operation applied in the NXprocess sequence.
-
-
-
-
- Has the calibration been applied?
-
-
-
-
- Vector containing the data coordinates in the original uncalibrated axis
-
-
-
-
-
-
- The symbol of the axis to be used in the fit_function, e.g., `energy`, `E`.
- This should comply to the following naming rules (similar to python's naming rules):
-
- * A variable name must start with a letter or the underscore character
- * A variable name cannot start with a number
- * A variable name can only contain alpha-numeric characters and underscores (A-z, 0-9, and _ )
- * Variable names are case-sensitive (age, Age and AGE are three different variables)
-
-
-
-
- The path from which this data is derived, e.g., raw detector axis.
- Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw.
-
-
-
-
-
- Additional input axis to be used in the formula.
-
-
-
- The name of each ``TERM`` is used as the symbol to be used in the ``fit_formula_description``, i.e.,
- if the field name is `my_field` you should refer to this axis by `my_field` in the ``fit_formula_description``.
-
-
-
- The path from which this data is derived, e.g., raw detector axis.
- Should be a valid NeXus path name, e.g., /entry/instrument/detector/raw.
-
-
-
-
-
-
- For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit
- to a set of features (peaks) at well defined energy positions to determine
- E(TOF). Here we can store the fit coefficients.
-
-
-
- Use a0, a1, ..., an for the coefficients, corresponding to the values in the ``fit_formula_description``.
-
-
-
-
-
- For non-linear energy calibrations. Here we can store a description of the formula
- used for the fit function.
-
- Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients group.
-
- Use x0, x1, ..., xn for the nth position in the `original_axis` field.
- If there is the symbol attribute specified for the `original_axis` this may be used instead of x.
- If you want to use the whole axis use `x`.
- Alternate axis can also be available as specified by the `input_SYMBOL` group.
- The data should then be referred here by the `SYMBOL` name, e.g., for a field
- name `input_my_field` it should be referred here by `my_field` or `my_field0` if
- you want to read the zeroth element of the array.
-
-
-
-
- For linear calibration. Scaling parameter.
- This should yield the relation `calibrated_axis` = (`original_axis` + `offset`) * `scaling_factor`.
-
- For a more detailed description of scaling factors, see
- :ref:`FIELDNAME_scaling_factor </NXdata/FIELDNAME_scaling_factor-field>`.
-
-
-
-
- For linear calibration. Offset parameter.
- This should yield the relation `calibrated_axis` = (`original_axis` + `offset`) * `scaling_factor`.
-
- For a more detailed description of offset, see
- :ref:`FIELDNAME_offset </NXdata/FIELDNAME_offset-field>`.
-
-
-
-
- Mapping data for calibration.
-
- This can be used to map data points from uncalibrated to calibrated values,
- i.e., by multiplying each point in the input axis by the corresponding point in the mapping data.
-
-
-
-
- A vector representing the axis after calibration, matching the data length
-
-
-
-
-
-
-
- Any data acquired/used during the calibration that does not fit the `NX_FLOAT` fields above.
- NXdata groups can be used for multidimensional data which are relevant to the calibration
-
-
-
-
- .. index:: plotting
-
- Declares which child group contains a path leading
- to a :ref:`NXdata` group.
-
- It is recommended (as of NIAC2014) to use this attribute
- to help define the path to the default dataset to be plotted.
- See https://www.nexusformat.org/2014_How_to_find_default_data.html
- for a summary of the discussion.
-
-
-
diff --git a/contributed_definitions/NXcalibration.nxdl.xml b/contributed_definitions/NXcalibration.nxdl.xml
new file mode 100644
index 0000000000..8dd7a6da55
--- /dev/null
+++ b/contributed_definitions/NXcalibration.nxdl.xml
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ The symbols used in the schema to specify e.g. dimensions of arrays
+
+
+
+ Number of coefficients of the calibration function
+
+
+
+
+ Number of features used to fit the calibration function
+
+
+
+
+ Number of points of the calibrated and uncalibrated axes
+
+
+
+
+ Subclass of NXprocess to describe post-processing calibrations.
+
+
+
+ Indicates the name of the last operation applied in the NXprocess sequence.
+
+
+
+
+ Has the calibration been applied?
+
+
+
+
+ For non-linear energy calibrations, e.g. in a TOF, a polynomial function is fit
+ to a set of features (peaks) at well defined energy positions to determine
+ E(TOF). Here we can store the array of fit coefficients.
+
+
+
+
+
+
+
+ For non-linear energy calibrations. Here we can store the formula of the
+ fit function.
+
+ Use a0, a1, ..., an for the coefficients, corresponding to the values in the coefficients field.
+
+ Use x0, x1, ..., xn for the variables.
+
+ The formula should be numpy compliant.
+
+
+
+
+ For linear calibration. Scaling parameter.
+
+
+
+
+ For linear calibration. Offset parameter.
+
+
+
+
+ A vector representing the axis after calibration, matching the data length
+
+
+
+
+
+
+
+ Vector containing the data coordinates in the original uncalibrated axis
+
+
+
+
+
+
+
+ A description of the procedures employed.
+
+
+