SpecUtils icon indicating copy to clipboard operation
SpecUtils copied to clipboard

n42 xml file created by SpecUtils is not valid according to xsd

Open arichnad opened this issue 2 years ago • 1 comments

Hello,

issue-input.txt issue-output.txt (files added as .txt extension due to issue restriction)

I run the following valid 2012 n42 xml file through SpecUtils, and it creates a 2012 n42 xml that fails schema validation.

$ xmlstarlet val --err --xsd SpecUtils/unit_tests/test_data/schema/n42.xsd issue-input.xml
issue-input.xml - valid

It creates two errors. xmlstarlet val --err --xsd SpecUtils/unit_tests/test_data/schema/n42.xsd issue-output.xml

  1. An InterSpec definition needs to be added to the xml header:
22.27: Namespace prefix InterSpec on DetectorType is not defined
			<InterSpec:DetectorType>RS-701</InterSpec:DetectorType>
  1. And, it also creates a RadInstrementState that lacks a ref:
41.22: Element '{http://physics.nist.gov/N42/2011/N42}RadInstrumentState': The attribute 'radInstrumentInformationReference' is required but missing.

Using this:

SpecFile specFile;
if(!specFile.load_N42_from_data(inputContent)) {
	return;
}
specFile.write_to_file(outputFilename, SaveSpectrumAsType::N42_2012);

Thanks,

arichnad

arichnad avatar Jan 20 '23 18:01 arichnad