According to the StationXML specification, the sample rate is optional, and the response has no required attribues, so it can be empty: https://docs.fdsn.org/projects/stationxml/en/latest/reference.html#samplerate
Others have noted the importance of being able to leave sample rate unspecified for pre-digital channels which nonetheless have coordinates and can associated network-station-location-channel codes, see #144.
When I attempt to validate StationXML without sample rate but with an empty response, e.g. CN_subset.xml, the validator crashes:
(.venv) [nackerle@pc-nackerle test]$ java -jar $bin/stationxml-validator-1.7.5.jar --input CN_subset.xml
[2025-12-02 17:16:52] [SEVERE] edu.iris.dmc.Application exitWithError: edu.iris.dmc.station.conditions.SampleRateCondition.evaluate(SampleRateCondition.java:41)
edu.iris.dmc.station.rules.Rule.execute(Rule.java:44)
edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:160)
edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:142)
edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:108)
edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:47)
edu.iris.dmc.Application.run(Application.java:183)
edu.iris.dmc.Application.run(Application.java:168)
edu.iris.dmc.Application.run(Application.java:147)
edu.iris.dmc.Application.main(Application.java:118)
It turns out that if I delete the empty <Response/> tag, validation completes successfully. This empty tag is being produced by the SeisComP FDSNWS - it was not in the original FDSN StationXML converted to SeisComP XML to construct the inventory in SeisComP - so I can't get rid of it easily, but it's not invalid. I can also get validation to complete successfully if I add a dummy sample rate and remove both the empty response tag and the datalogger specification.
According to the StationXML specification, the sample rate is optional, and the response has no required attribues, so it can be empty: https://docs.fdsn.org/projects/stationxml/en/latest/reference.html#samplerate
Others have noted the importance of being able to leave sample rate unspecified for pre-digital channels which nonetheless have coordinates and can associated network-station-location-channel codes, see #144.
When I attempt to validate StationXML without sample rate but with an empty response, e.g. CN_subset.xml, the validator crashes:
(.venv) [nackerle@pc-nackerle test]$ java -jar $bin/stationxml-validator-1.7.5.jar --input CN_subset.xml [2025-12-02 17:16:52] [SEVERE] edu.iris.dmc.Application exitWithError: edu.iris.dmc.station.conditions.SampleRateCondition.evaluate(SampleRateCondition.java:41) edu.iris.dmc.station.rules.Rule.execute(Rule.java:44) edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:160) edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:142) edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:108) edu.iris.dmc.station.RuleEngineService.executeAllRules(RuleEngineService.java:47) edu.iris.dmc.Application.run(Application.java:183) edu.iris.dmc.Application.run(Application.java:168) edu.iris.dmc.Application.run(Application.java:147) edu.iris.dmc.Application.main(Application.java:118)It turns out that if I delete the empty
<Response/>tag, validation completes successfully. This empty tag is being produced by the SeisComP FDSNWS - it was not in the original FDSN StationXML converted to SeisComP XML to construct the inventory in SeisComP - so I can't get rid of it easily, but it's not invalid. I can also get validation to complete successfully if I add a dummy sample rate and remove both the empty response tag and the datalogger specification.