diff --git a/Makefile b/Makefile
index e1d0696fa..3a882c256 100644
--- a/Makefile
+++ b/Makefile
@@ -60,6 +60,9 @@ test ::
clean ::
$(RM) -rf $(BUILD_DIR)
+ $(RM) -rf $(BASE_CLASS_DIR)/$(NYAML_SUBDIR)
+ $(RM) -rf $(APPDEF_DIR)/$(NYAML_SUBDIR)
+ $(RM) -rf $(CONTRIB_DIR)/$(NYAML_SUBDIR)
prepare ::
$(PYTHON) -m dev_tools manual --prepare --build-root $(BUILD_DIR)
@@ -94,10 +97,24 @@ all ::
@echo "HTML built: `ls -lAFgh $(BUILD_DIR)/manual/build/html/index.html`"
@echo "PDF built: `ls -lAFgh $(BUILD_DIR)/manual/build/latex/nexus.pdf`"
+$(BASE_CLASS_DIR)/%.nxdl.xml : $(BASE_CLASS_DIR)/$(NYAML_SUBDIR)/%.yaml
+ nyaml2nxdl $< --output-file $@
+
+$(CONTRIB_DIR)/%.nxdl.xml : $(CONTRIB_DIR)/$(NYAML_SUBDIR)/%.yaml
+ nyaml2nxdl $< --output-file $@
+
+$(APPDEF_DIR)/%.nxdl.xml : $(APPDEF_DIR)/$(NYAML_SUBDIR)/%.yaml
+ nyaml2nxdl $< --output-file $@
+
+nxdl: $(YBC_NXDL_TARGETS) $(YCONTRIB_NXDL_TARGETS) $(YAPPDEF_NXDL_TARGETS)
+
+nyaml:
+ $(MAKE) -f nyaml.mk
+
# NeXus - Neutron and X-ray Common Data Format
#
-# Copyright (C) 2008-2022 NeXus International Advisory Committee (NIAC)
+# Copyright (C) 2008-2024 NeXus International Advisory Committee (NIAC)
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -113,4 +130,4 @@ all ::
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
-# For further information, see http://www.nexusformat.org
\ No newline at end of file
+# For further information, see http://www.nexusformat.org
diff --git a/contributed_definitions/NXcollectioncolumn.nxdl.xml b/contributed_definitions/NXcollectioncolumn.nxdl.xml
index 0de610399..5348d55b5 100644
--- a/contributed_definitions/NXcollectioncolumn.nxdl.xml
+++ b/contributed_definitions/NXcollectioncolumn.nxdl.xml
@@ -101,5 +101,4 @@
Individual lenses in the collection column section
-
diff --git a/contributed_definitions/NXenergydispersion.nxdl.xml b/contributed_definitions/NXenergydispersion.nxdl.xml
index f020de4f3..320788851 100644
--- a/contributed_definitions/NXenergydispersion.nxdl.xml
+++ b/contributed_definitions/NXenergydispersion.nxdl.xml
@@ -21,7 +21,7 @@
#
# For further information, see http://www.nexusformat.org
-->
-
+
Subclass of NXelectronanalyser to describe the energy dispersion section of a
photoelectron analyser.
@@ -87,17 +87,4 @@
Individual lenses in the energy dispersive section
-
-
-
- Collection of axis-based translations and rotations to describe the location and
- geometry of the energy dispersive element as a component in the instrument.
- Conventions from the NXtransformations base class are used. In principle,
- the McStas coordinate system is used. The first transformation has to point
- either to another component of the system or . (for pointing to the reference frame)
- to relate it relative to the experimental setup. Typically, the components of a system
- should all be related relative to each other and only one component should relate to
- the reference coordinate system.
-
-
diff --git a/contributed_definitions/NXmanipulator.nxdl.xml b/contributed_definitions/NXmanipulator.nxdl.xml
index b412effe6..dff2584fc 100644
--- a/contributed_definitions/NXmanipulator.nxdl.xml
+++ b/contributed_definitions/NXmanipulator.nxdl.xml
@@ -21,7 +21,7 @@
#
# For further information, see http://www.nexusformat.org
-->
-
+
Extension of NXpositioner to include fields to describe the use of manipulators
in photoemission experiments.
@@ -79,7 +79,6 @@
Class to describe the motors that are used in the manipulator
-
Refers to the last transformation specifying the positon of the manipulator in
diff --git a/contributed_definitions/NXmpes.nxdl.xml b/contributed_definitions/NXmpes.nxdl.xml
index 01f441c20..c2bfe957c 100644
--- a/contributed_definitions/NXmpes.nxdl.xml
+++ b/contributed_definitions/NXmpes.nxdl.xml
@@ -143,7 +143,6 @@ with higher granularity in the data description.-->
-
diff --git a/contributed_definitions/nyaml/NXsensor.yaml b/contributed_definitions/nyaml/NXsensor.yaml
deleted file mode 100644
index a70f2a533..000000000
--- a/contributed_definitions/nyaml/NXsensor.yaml
+++ /dev/null
@@ -1,324 +0,0 @@
-category: base
-doc: |
- A sensor used to monitor an external condition
-
- The condition itself is described in :ref:`NXenvironment`.
-type: group
-NXsensor(NXobject):
- model:
- doc: |
- Sensor identification code/model number
- name:
- doc: |
- Name for the sensor
- short_name:
- doc: |
- Short name of sensor used e.g. on monitor display program
- attached_to:
- doc: |
- where sensor is attached to ("sample" | "can")
- geometry(NXgeometry):
- deprecated: |
- Use the field `depends_on` and :ref:`NXtransformations` to position the beamstop and NXoff_geometry to describe its shape instead
- doc: |
- Defines the axes for logged vector quantities if they are not the global instrument axes.
- measurement:
- doc: |
- name for measured signal
- enumeration: [temperature, pH, magnetic_field, electric_field, conductivity, resistance, voltage, pressure, flow, stress, strain, shear, surface_pressure]
- type:
- doc: |
- The type of hardware used for the measurement.
- Examples (suggestions but not restrictions):
-
- :Temperature:
- J | K | T | E | R | S | Pt100 | Rh/Fe
- :pH:
- Hg/Hg2Cl2 | Ag/AgCl | ISFET
- :Ion selective electrode:
- specify species; e.g. Ca2+
- :Magnetic field:
- Hall
- :Surface pressure:
- wilhelmy plate
- run_control(NX_BOOLEAN):
- doc: |
- Is data collection controlled or synchronised to this quantity:
- 1=no, 0=to "value", 1=to "value_deriv1", etc.
- high_trip_value(NX_FLOAT):
- unit: NX_ANY
- doc: |
- Upper control bound of sensor reading if using run_control
- low_trip_value(NX_FLOAT):
- unit: NX_ANY
- doc: |
- Lower control bound of sensor reading if using run_control
- value(NX_FLOAT):
- unit: NX_ANY
- doc: |
- nominal setpoint or average value
- - need [n] as may be a vector
- dimensions:
- dim: [[1, n]]
- value_deriv1(NX_FLOAT):
- unit: NX_ANY
- doc: |
- Nominal/average first derivative of value
- e.g. strain rate
- - same dimensions as "value" (may be a vector)
- dimensions:
- dim: [[1, ]]
- dim_parameters:
- ref: ['value']
- value_deriv2(NX_FLOAT):
- unit: NX_ANY
- doc: |
- Nominal/average second derivative of value
- - same dimensions as "value" (may be a vector)
- dimensions:
- dim: [[1, ]]
- dim_parameters:
- ref: ['value']
- value_log(NXlog):
- doc: |
- Time history of sensor readings
- value_deriv1_log(NXlog):
- doc: |
- Time history of first derivative of sensor readings
- value_deriv2_log(NXlog):
- doc: |
- Time history of second derivative of sensor readings
- external_field_brief:
- enumeration: [along beam, across beam, transverse, solenoidal, flow shear gradient, flow vorticity]
- external_field_full(NXorientation):
- doc: |
- For complex external fields not satisfied by External_field_brief
- (NXoff_geometry):
- exists: ['min', '0']
- doc: |
- This group describes the shape of the sensor when necessary.
- (NXfabrication):
- \@default:
- doc: |
- .. 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.
- depends_on(NX_CHAR):
- doc: |
- NeXus positions components by applying a set of translations and rotations
- to apply to the component starting from 0, 0, 0. The order of these operations
- is critical and forms what NeXus calls a dependency chain. The depends_on
- field defines the path to the top most operation of the dependency chain or the
- string "." if located in the origin. Usually these operations are stored in a
- NXtransformations group. But NeXus allows them to be stored anywhere.
-
- .. todo::
- Add a definition for the reference point of a sensor.
- (NXtransformations):
- doc: |
- This is the group recommended for holding the chain of translation
- and rotation operations necessary to position the component within
- the instrument. The dependency chain may however traverse similar groups in
- other component groups.
-
-# ++++++++++++++++++++++++++++++++++ SHA HASH ++++++++++++++++++++++++++++++++++
-# df8bc397cbcbf114091b84ed357f6312641ca9abbf2d51795c37802450e7e628
-#
-#
-#
-#
-#
-# A sensor used to monitor an external condition
-#
-# The condition itself is described in :ref:`NXenvironment`.
-#
-#
-# Sensor identification code/model number
-#
-#
-# Name for the sensor
-#
-#
-# Short name of sensor used e.g. on monitor display program
-#
-#
-# where sensor is attached to ("sample" | "can")
-#
-#
-#
-# Defines the axes for logged vector quantities if they are not the global instrument axes.
-#
-#
-#
-# name for measured signal
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-# The type of hardware used for the measurement.
-# Examples (suggestions but not restrictions):
-#
-# :Temperature:
-# J | K | T | E | R | S | Pt100 | Rh/Fe
-# :pH:
-# Hg/Hg2Cl2 | Ag/AgCl | ISFET
-# :Ion selective electrode:
-# specify species; e.g. Ca2+
-# :Magnetic field:
-# Hall
-# :Surface pressure:
-# wilhelmy plate
-#
-#
-#
-#
-# Is data collection controlled or synchronised to this quantity:
-# 1=no, 0=to "value", 1=to "value_deriv1", etc.
-#
-#
-#
-#
-# Upper control bound of sensor reading if using run_control
-#
-#
-#
-#
-# Lower control bound of sensor reading if using run_control
-#
-#
-#
-#
-# nominal setpoint or average value
-# - need [n] as may be a vector
-#
-#
-#
-#
-#
-#
-#
-# Nominal/average first derivative of value
-# e.g. strain rate
-# - same dimensions as "value" (may be a vector)
-#
-#
-#
-#
-#
-#
-#
-# Nominal/average second derivative of value
-# - same dimensions as "value" (may be a vector)
-#
-#
-#
-#
-#
-#
-# Time history of sensor readings
-#
-#
-# Time history of first derivative of sensor readings
-#
-#
-# Time history of second derivative of sensor readings
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-#
-# For complex external fields not satisfied by External_field_brief
-#
-#
-#
-# This group describes the shape of the sensor when necessary.
-#
-#
-#
-#
-# .. 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.
-#
-#
-#
-#
-# NeXus positions components by applying a set of translations and rotations
-# to apply to the component starting from 0, 0, 0. The order of these operations
-# is critical and forms what NeXus calls a dependency chain. The depends_on
-# field defines the path to the top most operation of the dependency chain or the
-# string "." if located in the origin. Usually these operations are stored in a
-# NXtransformations group. But NeXus allows them to be stored anywhere.
-#
-# .. todo::
-# Add a definition for the reference point of a sensor.
-#
-#
-#
-#
-#
-# This is the group recommended for holding the chain of translation
-# and rotation operations necessary to position the component within
-# the instrument. The dependency chain may however traverse similar groups in
-# other component groups.
-#
-#
-#
-#