Can I use NOMAD if my custom schema change over time?
Let’s say I have the following xml:
<?xml version='1.0' encoding='UTF-8'?>
<dataset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<experiment id="1" type="transient" name="321321" author="dummy" instrument="instr">
<inputSequence pSpacing="10.1" nPulses="10">
<valve name="A" pDelay="0.0" pWidth="100.0" pVoltage="24.0" pressure="35.50">
<gas name="C2H4" fraction="0.55"/>
<gas name="Ne" fraction="0.75"/>
</valve>
</inputSequence>
<outputSequence type="qms" location="exit" gainCoefficient="10.0" cTime="10.0" nPoints="10000">
<response id="1" amu="25.9" gain="8"/>
<response id="2" amu="19.9" gain="8"/>
<data type="tdms">./321321.tdms</data>
</outputSequence>
</experiment>
</dataset>
The following are the steps I have in my mind:
- First, I will make a yaml file based on the schema of the above XML.
- Upload schema file to nomad.
- Upload some data (stored as a json) matching the yaml schema using python.
- Change schema and upload the updated schema rewriting the old one.
It would be a great help if you can answer the following questions:
- Does the above steps make sense when I have all my experiment data currently available as xml files?
- If I add a new xml tag to the existing schema (for example, add a new
<data>
tag inside<outputSequence>
in the above shared xml), will I be able to still use the old data records. (This is analogous to an example situation where a table with columns A,B,C is added with another column D after some data is populated.) - What will happen if I remove an existing xml tag and update the schema? What will happen to the existing records? (This is analogous to an example situation where a table with columns A,B,C undergoes a deletion of column C after data is populated.)
- What will happen if I delete the schema file itself from NOMAD after uploading some data using API? Will the uploaded data records will become unreadable?
Thanks in advance!