Schematron using XPath 2.0
The attribute insight:mission_phase_name must be equal to one of the following values 'ATLO', 'CRUISE', 'DEVELOPMENT', 'SURFACE MISSION', 'TEST'.
The attribute insight:product_type must be equal to one of the following values 'ARK', 'ARM', 'ARO', 'BAY', 'CLM', 'CLR', 'DDD', 'DDL', 'DDS', 'DEM', 'DFF', 'DFL', 'DFS', 'DSE', 'DSG', 'DSL', 'DSP', 'DSR', 'DSS', 'Dataless-SEED', 'EDR', 'EJP', 'ERP', 'GUH', 'GUS', 'GeoCSV', 'IEF', 'IEP', 'ILC', 'ILM', 'ILP', 'ILT', 'IOF', 'IOI', 'ION', 'LANDER_COORD', 'LIN', 'MAR', 'MDS', 'MSK', 'MXY', 'Mini-SEED', 'RAD', 'RAD-calibrated', 'RAD-derived', 'RAD-raw', 'RAF', 'RAS', 'RDM', 'RDR', 'RIE', 'RIF', 'RNE', 'RNF', 'RNG', 'RNM', 'RNO', 'RNR', 'ROTATION_PARAMETERS', 'RSM', 'RUH', 'RUS', 'SHD', 'SHO', 'SLO', 'SLP', 'SMG', 'SMO', 'SNO', 'SNT', 'STATIL-calibrated', 'STATIL-raw', 'StationXML', 'TAU', 'TDS', 'TEM-A-calibrated', 'TEM-P-calibrated', 'TEM-calibrated', 'TEM-raw', 'TFH', 'TFS', 'TFW', 'TLM-raw', 'TNF', 'TRO', 'UIH', 'UIS', 'UIW', 'UUF', 'UUU', 'UVF', 'UVO', 'UVP', 'UVS', 'UVT', 'UVW', 'VVF', 'VVV', 'WEA', 'WSH', 'WSS', 'WWF', 'WWW', 'XXF', 'XXX', 'XYE', 'XYF', 'XYM', 'XYO', 'XYR', 'XYZ', 'YYF', 'YYY', 'ZIH', 'ZIS', 'ZIW', 'ZZF', 'ZZZ'.
The attribute @unit must be equal to one of the following values 'arcmin', 'arcsec', 'deg', 'hr', 'mrad', 'rad'.
The attribute @unit must be equal to one of the following values 'arcmin', 'arcsec', 'deg', 'hr', 'mrad', 'rad'.
The attribute @unit must be equal to one of the following values 'Hz'.
The attribute insight:seis_data_type must be equal to one of the following values 'metadata', 'waveform'.
insight:error:sclk_rule_0: If insight:spacecraft_clock_start_count and
insight:spacecraft_clock_stop_count are present, they must begin with a partition number followed by a
forward slash, OR the partition number must be given by insight:spacecraft_clock_count_partition.
insight:error:ltst_rule_0: If insight:start_local_true_solar_time and
insight:stop_local_true_solar_time are present, they must include a sol number as in 'Sol-nnnn
hh:mm:ss[.fffff]', OR the sol number must be given by insight:local_true_solar_time_sol.
insight:error:sol_number_0: The insight:Observation_Information class must include either
the attribute insight:sol_number or the pair of attributes insight:start_sol_number and
insight:stop_sol_number.
insight:error:sol_number_1: If either of the pair insight:start_sol_number and
insight:stop_sol_number is present, then both must be present.
insight:error:sclk_rule_0: If insight:spacecraft_clock_start_count and
insight:spacecraft_clock_stop_count are present, they must begin with a partition number followed by a
forward slash, OR the partition number must be given by insight:spacecraft_clock_count_partition.
insight:error:ltst_rule_0: If insight:start_local_true_solar_time and
insight:stop_local_true_solar_time are present, they must include a sol number as in 'Sol-nnnn
hh:mm:ss[.fffff]', OR the sol number must be given by insight:local_true_solar_time_sol.
insight:error:sol_number_0: The insight:Observation_Information class must include either
the attribute insight:sol_number or the pair of attributes insight:start_sol_number and
insight:stop_sol_number.
insight:error:sol_number_1: If either of the pair insight:start_sol_number and
insight:stop_sol_number is present, then both must be present.
insight:error:sclk_rule_0: If insight:spacecraft_clock_start_count and
insight:spacecraft_clock_stop_count are present, they must begin with a partition number followed by a
forward slash, OR the partition number must be given by insight:spacecraft_clock_count_partition.
insight:error:ltst_rule_0: If insight:start_local_true_solar_time and
insight:stop_local_true_solar_time are present, they must include a sol number as in 'Sol-nnnn
hh:mm:ss[.fffff]', OR the sol number must be given by insight:local_true_solar_time_sol.
insight:error:sol_number_0: The insight:Observation_Information class must include either
the attribute insight:sol_number or the pair of attributes insight:start_sol_number and
insight:stop_sol_number.
insight:error:sol_number_1: If either of the pair insight:start_sol_number and
insight:stop_sol_number is present, then both must be present.
If the product_type is 'GeoCSV', then seis_data_type must be 'waveform'.
If the product_type is 'GeoCSV', then the class Metadata_Location must be present, and
the value for metadata_file_name must end in '.sxml'.
If the product_type is 'GeoCSV', then the class SEED_Equivalent must be present, and the
value for seed_file_name must end in '.mseed'.
If the product type is 'StationXML', then seis_data_type must be 'metadata'.
If the product type is 'StationXML', then the class Metadata_Location must not be
present.
If the product type is 'StationXML', then the class SEED_Equivalent must be present, and
the value for seed_file_name must end in '.seed'.
If the product_type is 'Mini-SEED', then seis_data_type must be 'waveform'.
If the product_type is 'Mini-SEED', then the class Metadata_Location must be present, and
the value for metadata_file_name must end in '.seed'.
If the product_type is 'Mini-SEED', then the class ASCII_Equivalent must be present, and
the value for ascii_equivalent_file_name must end in 'A.csv'.
If the product_type is 'Dataless-SEED', then seis_data_type must be 'metadata'.
If the product_type is 'Dataless-SEED', then the class Metadata_Location must not be
present.
If the product_type is 'Dataless-SEED', then the class ASCII_Equivalent must be present,
and the value for ascii_equivalent_file_name must end in '.sxml'.
For a SEIS GeoCSV Product_Observational product, the Metadata_Location class must be
present, and the reference_type must be 'data_to_metadata'.
For a SEIS GeoCSV Product_Observational product, the SEED_Equivalent class must be
present, and the reference_type must be 'ascii_to_seed'.
For a SEIS Mini-SEED Product_Native product, the class Metadata_Location must be present,
and the value for reference_type must be 'data_to_metadata'.
For a SEIS Mini-SEED Product_Native product, the class ASCII_Equivalent must be present,
and the value for reference_type must be 'seed_to_ascii'.
For a SEIS Dataless-SEED Product_Native product, the class ASCII_Equivalent must be
present, and the value for reference_type must be 'seed_to_ascii'.
For a SEIS StationXML Product_Ancillary product, the SEED_Equivalent class must be
present, and the reference_type must be 'ascii_to_seed'.