INSERT INTO cap_type(name, description, documentURL) VALUES('cs:ConeSearch', 'Simple Cone Search', 'http://www.ivoa.net/documents/latest/ConeSearch.html');
INSERT INTO cap_type(name, description, documentURL) VALUES('sia:SimpleImageAccess', 'Simple Image Access Specification', 'http://www.ivoa.net/documents/latest/SIA.html');
INSERT INTO cap_type(name, description, documentURL) VALUES('ssa:SimpleSpectralAccess', 'Simple Spectral Access Protocol', 'http://www.ivoa.net/documents/SSA/');
INSERT INTO cap_type(name, description, documentURL) VALUES('slap:SimpleLineAccess', 'Simple Line Access Protocol', 'http://www.ivoa.net/documents/SLAP/');
INSERT INTO cap_type(name, description, documentURL) VALUES('tr:TableAccess', 'Table Access Protocol', 'http://www.ivoa.net/documents/TAP/');


INSERT INTO criterion_type(name, description) VALUES('REQUIREMENT', 'Tests drawn from ''MUST'' statements in the respective standard');
INSERT INTO criterion_type(name, description) VALUES('WARNING', 'Tests drawn from strongly encouraged ''SHOULD'' statements in the respective standard');
INSERT INTO criterion_type(name, description) VALUES('RECOMMENDATION', 'Tests drawn from ''SHOULD'' statements in the respective standard');
INSERT INTO criterion_type(name, description) VALUES('EXTRA', 'Criteria not defined in the IVOA ''Service Validation'' wiki');




-- INTERNALLY IMPLEMENTED CRITERIA (SCS, SIA, SSA)
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.on', 'REQUIREMENT', 1000, 'The service is ON');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.xml', 'REQUIREMENT', 100, 'The zero response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.xsd', 'EXTRA', 100, 'The zero response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the zero response has a legal value (''text/xml'', ''text/xml;content=x-votable'' or ''text/xml;votable''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.mime-should', 'RECOMMENDATION', 100, 'The MIME type of the zero response has the recommended value (''text/xml'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.mime-not-as-may', 'WARNING', 100, 'The MIME type of the zero response is not the optional value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.zero.mime-not-as-borderline-may', 'RECOMMENDATION', 100, 'The MIME type of the zero response is not the strongly discouraged value (''text/xml;votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.xml', 'REQUIREMENT', 100, 'The effective response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.xsd', 'EXTRA', 100, 'The effective response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the effectie response has a legal value (''text/xml'', ''text/xml;content=x-votable'' or ''text/xml;votable''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.mime-should', 'RECOMMENDATION', 100, 'The MIME type of the effective response has the recommended value (''text/xml'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.mime-not-as-may', 'WARNING', 100, 'The MIME type of the effective response is not the optional value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '.effc.mime-not-as-borderline-may', 'RECOMMENDATION', 100, 'The MIME type of the effective response is not the strongly discouraged value (''text/xml;votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2a-i', 'REQUIREMENT', 100, 'The service must respond with an XML document in the VOTable format [for the zero URL]');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2a-ii', 'REQUIREMENT', 100, 'The service must respond with an XML document in the VOTable format [for the effective URL]');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2b-i', 'REQUIREMENT', 100, 'The zero response contains no data');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2b-ii', 'REQUIREMENT', 100, 'The effective response has to contain some data');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2c-i', 'REQUIREMENT', 100, 'The VOTable MUST comply with these conditions: [...] Exactly one FIELD must have ucd=''ID_MAIN'', with an array character type (fixed or variable length)');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2c-ii', 'REQUIREMENT', 100, 'The VOTable MUST comply with these conditions: [...] Exactly one FIELD must have ucd=''POS_EQ_RA_MAIN'', with type double');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.2c-iii', 'REQUIREMENT', 100, 'The VOTable MUST comply with these conditions: [...] Exactly one FIELD must have ucd=''POS_EQ_DEC_MAIN'', with type double');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.3b-i', 'REQUIREMENT', 100, 'no INFO elements with @name=''Error'' should appear in the zero response');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.3b-ii', 'REQUIREMENT', 100, 'no INFO elements with @name=''Error'' should appear in the effective response');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('cs:ConeSearch', '2.3b', 'REQUIREMENT', 100, 'In the case of error, the service MUST respond with a VOTable that contains a single PARAM element or a single INFO element with name=''Error'', where [a] corresponding value attribute [should be present]');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.on', 'REQUIREMENT', 1000, 'The service is ON');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.zero.xml', 'REQUIREMENT', 100, 'The zero response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.zero.xsd', 'EXTRA', 100, 'The zero response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.zero.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the zero response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.metd.xml', 'REQUIREMENT', 100, 'The metadata response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.metd.xsd', 'EXTRA', 100, 'The metadata response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.metd.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the metadata response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.effc.xml', 'REQUIREMENT', 100, 'The effective response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.effc.xsd', 'EXTRA', 100, 'The effective response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '.effc.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the effective response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.1a', 'REQUIREMENT', 100, 'The VOTable must contain a RESOURCE element, identified with the tag type=''results'', containing a single TABLE element which contains the results of the query');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.1b', 'RECOMMENDATION', 100, 'If multiple resources are present it is recommended that the query results be returned in the first resource element');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.2a', 'WARNING', 100, 'The RESOURCE element should contain an INFO with name=''QUERY_STATUS''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.2a-gl', 'RECOMMENDATION', 100, 'The RESOURCE element should contain [gloss: ''an''->''one''] INFO with name=''QUERY_STATUS''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.2b', 'RECOMMENDATION', 100, 'Its value attribute should set to ''OK''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.i', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_Title'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.ii', 'WARNING', 100, 'Exactly one field should have ucd=''INST_ID'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.iii', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:Image_MJDateObs'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.iv', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''POS_EQ_RA_MAIN'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.v', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''POS_EQ_DEC_MAIN'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.vi', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_Naxes'', with datatype=''int''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.vii', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_Naxis'', with datatype=''int'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.viii', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_Scale'', with datatype=''double'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.a.ix', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_Format'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.b.i', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:STC_CoordRefFrame'', withdatatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.b.iii', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:WCS_CoordProjection'', with datatype=''char'', and arraysize=''3''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.b.iv', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:WCS_CoordRefPixel'', with datatype=''double'', andarraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.b.v', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:WCS_CoordRefValue'', with datatype=''double'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.b.vi', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:WCS_CDMatrix'', with datatype=''double'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.c.i', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:BandPass_ID'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.c.ii', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:BandPass_Unit'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.c.iii', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:BandPass_RefValue'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.c.iv', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:BandPass_HiLimit'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.c.v', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:BandPass_LoLimit'', with datatype=''double''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.d.i', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:Image_PixFlags'', with datatype=''char'', and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.e.i', 'REQUIREMENT', 100, 'Exactly one field must have ucd=''VOX:Image_AccessReference'', with datatype=''char'' and arraysize=''*''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('sia:SimpleImageAccess', '4.2.4.e.iii', 'WARNING', 100, 'Exactly one field should have ucd=''VOX:Image_FileSize'', with datatype=''int''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.on', 'REQUIREMENT', 1000, 'The service is ON');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.zero.xml', 'REQUIREMENT', 100, 'The zero response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.zero.xsd', 'EXTRA', 100, 'The zero response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.zero.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the zero response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.metd.xml', 'REQUIREMENT', 100, 'The metadata response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.metd.xsd', 'EXTRA', 100, 'The metadata response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.metd.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the metadata response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.effc.xml', 'REQUIREMENT', 100, 'The effective response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.effc.xsd', 'EXTRA', 100, 'The effective response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '.effc.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the effective response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2a', 'REQUIREMENT', 100, 'The VOTable must contain a RESOURCE element, identified with the tag type=''results'', containing a single TABLE element which contains the results of the query');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2b', 'REQUIREMENT', 100, 'The RESOURCE element must contain an INFO with name=''QUERY_STATUS''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2b-gl', 'RECOMMENDATION', 100, 'The RESOURCE element should contain [gloss: ''an''->''one''] INFO with name=''QUERY_STATUS''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2c', 'RECOMMENDATION', 100, 'Its value attribute should set to ''OK''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2d', 'RECOMMENDATION', 100, 'Another INFO with name=''SERVICE_PROTOCOL'' should contain the protocol version number in its value attribute');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2e', 'RECOMMENDATION', 100, 'Another INFO with name=''SERVICE_PROTOCOL'' should contain [...] the name of the service protocol as the fixed string ''SSAP''');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.1', 'RECOMMENDATION', 100, 'UTYPEs of standard fields are required for identification of interface elements and must be given');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.3.1', 'RECOMMENDATION', 100, 'Query.Score | Degree of match to query params | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.1', 'REQUIREMENT', 100, 'Access.Reference | URI (URL) used to access the dataset | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.2', 'REQUIREMENT', 100, 'Access.Format | MIME type of dataset | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.3', 'RECOMMENDATION', 100, 'Access.Size | Estimated (not actual) dataset size | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.4a', 'REQUIREMENT', 100, 'Dataset.DataModel | Datamodel name and version | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.4c', 'REQUIREMENT', 100, 'Dataset.Length | Number of points in spectrum | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5a', 'REQUIREMENT', 100, 'DataID.Title | Dataset title | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5b', 'RECOMMENDATION', 100, 'DataID.Creator | Creator name (string) | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5c', 'RECOMMENDATION', 100, 'DataID.Collection | IVOA Identifier of collection (string) | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5e', 'RECOMMENDATION', 100, 'DataID.CreatorDID | Creator assigned dataset identifier | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5j', 'RECOMMENDATION', 100, 'DataID.DataSource | Original source of data | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.5k', 'RECOMMENDATION', 100, 'DataID.CreationType | Dataset creation type | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.6a', 'REQUIREMENT', 100, 'Curation.Publisher | Publisher | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.6b', 'RECOMMENDATION', 100, 'Curation.Reference | URL or Bibcode for documentation | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.6c', 'RECOMMENDATION', 100, 'Curation.PublisherDID | Publisher''s ID for the dataset | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.8a', 'RECOMMENDATION', 100, 'CoordSys.SpaceFrame.Name | Spatial coordinate frame | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.9a', 'RECOMMENDATION', 100, 'Char.FluxAxis.Ucd | ucd for flux | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.9b', 'RECOMMENDATION', 100, 'Char.SpectralAxis.Ucd | ucd for spectral coord | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10a', 'REQUIREMENT', 100, 'Char.SpatialAxis.Coverage.Location.Value | Observed position, e.g., RA DEC | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10b', 'REQUIREMENT', 100, 'Char.SpatialAxis.Coverage.Bounds.Extent | Aperture angular diameter, deg | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10e', 'REQUIREMENT', 100, 'Char.TimeAxis.Coverage.Location.Value | Midpoint of exposure (MJD) | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10f', 'RECOMMENDATION', 100, 'Char.TimeAxis.Coverage.Bounds.Extent | Total elapsed exposure time | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10k', 'REQUIREMENT', 100, 'Char.SpectralAxis.Coverage.Location.Value | Midpoint of Spectral coord range | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10l', 'REQUIREMENT', 100, 'Char.SpectralAxis.Coverage.Bounds.Extent | Width of spectrum in meters | MAN');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10m', 'RECOMMENDATION', 100, 'Char.SpectralAxis.Coverage.Bounds.Start | Start in spectral coordinate | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.10n', 'RECOMMENDATION', 100, 'Char.SpectralAxis.Coverage.Bounds.Stop | Stop in spectral coordinate | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11c', 'RECOMMENDATION', 100, 'Char.FluxAxis.Calibration | Type of flux calibration | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11g', 'RECOMMENDATION', 100, 'Char.SpectralAxis.Calibration | Type of coord calibration | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11h', 'RECOMMENDATION', 100, 'Char.SpectralAxis.Resolution | Spectral resolution FWHM | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11n', 'RECOMMENDATION', 100, 'Char.SpatialAxis.Accuracy.StatError | Astrometric statistical error | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11p', 'RECOMMENDATION', 100, 'Char.SpatialAxis.Calibration | Type of coord calibration | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('ssa:SimpleSpectralAccess', '4.2.5.11q', 'RECOMMENDATION', 100, 'Char.SpatialAxis.Resolution | Spatial resolution of data | REC');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.on', 'REQUIREMENT', 1000, 'The service is ON');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.zero.xml', 'REQUIREMENT', 100, 'The zero response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.zero.xsd', 'EXTRA', 100, 'The zero response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.zero.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the zero response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.metd.xml', 'REQUIREMENT', 100, 'The metadata response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.metd.xsd', 'EXTRA', 100, 'The metadata response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.metd.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the metadata response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.effc.xml', 'REQUIREMENT', 100, 'The effective response is well-formed XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.effc.xsd', 'EXTRA', 100, 'The effective response is XSD-valid XML');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '.effc.mime-legal', 'REQUIREMENT', 100, 'The MIME type of the effective response has a legal value (''text/xml;content=x-votable'')');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '6.0.1', 'REQUIREMENT', 100, 'The VOTable must contain a RESOURCE element, identified with the tag type=''results'', containing a single TABLE element which contains the results of the query');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '6.0.1b', 'RECOMMENDATION', 100, 'If multiple resources are present it is recommended that the query results be returned in the first resource element');
INSERT INTO validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('slap:SimpleLineAccess', '6.0.2', 'WARNING', 100, 'The RESOURCE element should contain an INFO with name=''QUERY_STATUS''');

-- EXTERNALLY-IMPLEMENTED CRITERIA (taplint)
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_A2XI', 'REQUIREMENT',  20, 'Non-ADQL2 declared as ADQL2');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_ADQX', 'REQUIREMENT',  20, 'ADQL not declared');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_BAPH', 'REQUIREMENT',  20, 'Incorrect starting phase');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_BMIM', 'REQUIREMENT',  20, 'Illegal MIME type');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CAIO', 'REQUIREMENT',  20, 'Error reading capabilities metadata');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CAXM', 'REQUIREMENT',  20, 'SAX error parsing capabilities metadata');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CERR', 'REQUIREMENT',  20, 'Error reading TAP_SCHEMA.columns data');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CINT', 'REQUIREMENT',  20, 'Wrong type for TAP_SCHEMA.columns column');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CLDR', 'REQUIREMENT',  20, 'Declared columns absent in result');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CLIO', 'REQUIREMENT',  20, 'Error reading TAP_SCHEMA.columns table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CLOG', 'REQUIREMENT',  20, 'Non-boolean value');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CLRD', 'REQUIREMENT',  20, 'Unexpected columns in result');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CNAM', 'REQUIREMENT',  20, 'Query/result column name mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CPIO', 'REQUIREMENT',  20, 'Capabilities metadata read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CPSX', 'REQUIREMENT',  20, 'Capabilities metadata parse failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CTYP', 'REQUIREMENT',  20, 'Declared/resut type mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CUCD', 'REQUIREMENT',  20, 'UCD mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CUNI', 'REQUIREMENT',  20, 'Unit mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_CUTP', 'REQUIREMENT',  20, 'Utype mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DCER', 'REQUIREMENT',  20, 'Document read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DEHT', 'REQUIREMENT',  20, 'Bad HTTP job connection');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DEMO', 'REQUIREMENT',  20, 'Job deletion failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DENO', 'REQUIREMENT',  20, 'Non-404 response for deleted job');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DEOP', 'REQUIREMENT',  20, 'Unavailable job URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DFIO', 'REQUIREMENT',  20, 'Duff query failed');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DFSF', 'REQUIREMENT',  20, 'Duff query result parse failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DNST', 'REQUIREMENT',  20, 'Missing QUERY_STATUS from duff query');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DQU2', 'REQUIREMENT',  20, 'Unknown value for post-table QUERY_STATUS');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_DQUS', 'REQUIREMENT',  20, 'Unknown value for QUERY_STATUS');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_ELDF', 'REQUIREMENT',  20, 'Wrong top-level element');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_EST1', 'REQUIREMENT',  20, 'Multiple QUERY_STATUS INFOs');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_EURL', 'REQUIREMENT',  20, 'HTTP error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_FLIO', 'REQUIREMENT',  20, 'Table metadata read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_FLSX', 'REQUIREMENT',  20, 'Table metadata parse failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_FKIO', 'REQUIREMENT',  20, 'Error reading TAP_SCHEMA.keys table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_FKLK', 'REQUIREMENT',  20, 'Foreign key link broken');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_FKNT', 'REQUIREMENT',  20, 'Foreign key target table absent');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_GEOX', 'REQUIREMENT',  20, 'Unknown geometry function');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_GMIM', 'REQUIREMENT',  20, 'Content-Type mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_GONM', 'REQUIREMENT',  20, 'Missing mandatory resource');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_HNUL', 'REQUIREMENT',  20, 'Illegal NULLs in ObsCore column');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_HTDE', 'REQUIREMENT',  20, 'HTTP DELETE failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_HTOF', 'REQUIREMENT',  20, 'Unavailable job URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_IFMT', 'REQUIREMENT',  20, 'Non-integer result');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_ILOP', 'REQUIREMENT',  20, 'ObsCore value not in required set');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_ILPH', 'REQUIREMENT',  20, 'Illegal job phase');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_IOER', 'REQUIREMENT',  20, 'Error reading document');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JBIO', 'REQUIREMENT',  20, 'Job read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JBSP', 'REQUIREMENT',  20, 'Job parse error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDDE', 'REQUIREMENT',  20, 'Destruction time mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDED', 'REQUIREMENT',  20, 'Execution duration mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDID', 'REQUIREMENT',  20, 'Job ID mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDIO', 'REQUIREMENT',  20, 'Error reading job document');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDNO', 'REQUIREMENT',  20, 'Missing job document');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDPH', 'REQUIREMENT',  20, 'Info/phase phase mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_JDSX', 'REQUIREMENT',  20, 'Error parsing job document');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_KCIO', 'REQUIREMENT',  20, 'Error reading TAP_SCHEMA.key_columns table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_KEYX', 'REQUIREMENT',  20, 'Unknown standard language feature key');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_LVER', 'REQUIREMENT',  20, 'Some ADQL variants fail');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_MCOL', 'REQUIREMENT',  20, 'Query/result column count mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_MUPM', 'REQUIREMENT',  20, 'Missing mandatory upload declaration');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NFND', 'REQUIREMENT',  20, 'Non-OK HTTP response');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NO11', 'REQUIREMENT',  20, 'Multi-cell result for COUNT');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NOHT', 'REQUIREMENT',  20, 'Non-HTTP job URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NONM', 'REQUIREMENT',  20, 'Non-numeric value for COUNT');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NOOF', 'REQUIREMENT',  20, 'No output formats defined');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NOQL', 'REQUIREMENT',  20, 'No query languages declared');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NOST', 'REQUIREMENT',  20, 'Missing QUERY_STATUS');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NREC', 'REQUIREMENT',  20, 'Maxrec limit exceeded');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NRER', 'REQUIREMENT',  20, 'COUNT error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_NROW', 'REQUIREMENT',  20, 'Row limit exceeded');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_OCOL', 'REQUIREMENT',  20, 'Missing required ObsCore column');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_OVNO', 'REQUIREMENT',  20, 'Overflow not signalled');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PADU', 'REQUIREMENT',  20, 'Duplicate parameter');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PAMM', 'REQUIREMENT',  20, 'Bad job parameter value');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PANO', 'REQUIREMENT',  20, 'Nameless parameter');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PANZ', 'REQUIREMENT',  20, 'Non-blank job parameter');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PHUR', 'REQUIREMENT',  20, 'Incorrect phase');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_POER', 'REQUIREMENT',  20, 'POST failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_PORE', 'REQUIREMENT',  20, 'POST error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QERR', 'REQUIREMENT',  20, 'Query failed');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QERX', 'REQUIREMENT',  20, 'Query result parse error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QFAA', 'REQUIREMENT',  20, 'Query failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QST1', 'REQUIREMENT',  20, 'Multiple pre-table QUERY_STATUS INFOs');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QST2', 'REQUIREMENT',  20, 'Multiple post-table QUERY_STATUS INFOs');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_QTYP', 'REQUIREMENT',  20, 'Query/result column type mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_RANG', 'REQUIREMENT',  20, 'ObsCore values out of range');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_RDPH', 'REQUIREMENT',  20, 'Job phase read failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_RRES', 'REQUIREMENT',  20, 'RESOURCE not marked ''results''');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_RRTO', 'REQUIREMENT',  20, 'Row limit exceeded');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_RUPH', 'REQUIREMENT',  20, 'Bad phase for started job');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TBIO', 'REQUIREMENT',  20, 'Error reading TAP_SCHEMA.tables table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TCAP', 'REQUIREMENT',  20, 'Missing TAPRegExt capability element');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TMCD', 'REQUIREMENT',  20, 'Upload result column value mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TMCN', 'REQUIREMENT',  20, 'Upload result column name mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TMNC', 'REQUIREMENT',  20, 'Upload result column count mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TMNR', 'REQUIREMENT',  20, 'Upload result row count mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TTOO', 'REQUIREMENT',  20, 'Multiple result TABLEs');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_TYPX', 'REQUIREMENT',  20, 'ObsCore datatype incompatibilty');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_UDFE', 'REQUIREMENT',  20, 'Bad UDF declaration');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_UPBD', 'REQUIREMENT',  20, 'Unknown upload suffix');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_UPER', 'REQUIREMENT',  20, 'Upload error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_VOCT', 'REQUIREMENT',  20, 'Bad Content-Type for VOTable');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_VTIO', 'REQUIREMENT',  20, 'Query result read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_VVLO', 'REQUIREMENT',  20, 'VOTable version unsupported by TAP');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'E_XOFK', 'REQUIREMENT',  20, 'Unknown standard output format');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_A2MN', 'WARNING',  20, 'No ADQL2 declaration');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_A2MX', 'WARNING',  20, 'Non-standard ADQL2 declaration');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_AD2X', 'WARNING',  20, 'ADQL2 not declared');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CCAS', 'WARNING',  20, 'Capitalisation mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CEUK', 'WARNING',  20, 'Unknown Content-Encoding');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CEZZ', 'WARNING',  20, 'Compression');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CIDX', 'WARNING',  20, 'Index flag mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CLUN', 'WARNING',  20, 'Columns content');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CTYP', 'WARNING',  20, 'Datatype mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CUCD', 'WARNING',  20, 'UCD mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CULF', 'WARNING',  20, 'Custom language feature type');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CUNI', 'WARNING',  20, 'Unit mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_CUTP', 'WARNING',  20, 'UType mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_DSUC', 'WARNING',  20, 'Non-error return from duff query');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_FKUN', 'WARNING',  20, 'Keys content');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_FLUN', 'WARNING',  20, 'Key columns content');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_FTYP', 'WARNING',  20, 'Foreign key type mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_GONO', 'WARNING',  20, 'Missing optional resource');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_HSTB', 'WARNING',  20, 'Non-duff return from duff query');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_HURL', 'WARNING',  20, 'Redirect to non-HTTP URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_IODM', 'WARNING',  20, 'Incorrect ObsCore ID');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_LVAN', 'WARNING',  20, 'Language has empty version string');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_NOCT', 'WARNING',  20, 'Missing Content-Type header');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_NOMS', 'WARNING',  20, 'No error message text');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_NSOP', 'WARNING',  20, 'ObsCore value not in suggested set');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_RDIO', 'WARNING',  20, 'Resource read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_TFMT', 'WARNING',  20, 'Non-ISO-8601 result');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_TYPI', 'WARNING',  20, 'ObsCore datatype mismatch');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_UNSC', 'WARNING',  20, 'Foreign schema used in validation');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_UNPH', 'WARNING',  20, 'UNKNOWN phase');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_UPCS', 'WARNING',  20, 'Custom upload method');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_WODM', 'WARNING',  20, 'Incorrect ObsCore ID');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'W_ZRES', 'WARNING',  20, 'Resolver not used?');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_CAIO', 'EXTRA',  20, 'Bad capabilities service URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_CAPC', 'EXTRA',  20, 'XML parser error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_DTIO', 'EXTRA',  20, 'Unexpected table read error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_GONE', 'EXTRA',  20, 'Table metadata absent');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_INTR', 'EXTRA',  20, 'Interrupted');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_MURL', 'EXTRA',  20, 'Bad URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_NOTB', 'EXTRA',  20, 'No obscore table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_NOTM', 'EXTRA',  20, 'Earlier metadata stages not completed');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_NOUP', 'EXTRA',  20, 'No upload methods listed');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_SXER', 'EXTRA',  20, 'Unexpected SAX parse error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_TIOF', 'EXTRA',  20, 'Error reading result table');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_TRND', 'EXTRA',  20, 'Table randomisation failure');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_UTF8', 'EXTRA',  20, 'Unknown UTF8 encoding');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_XENT', 'EXTRA',  20, 'DTD entity trouble');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_XURL', 'EXTRA',  20, 'Bad document URL');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_XVAL', 'EXTRA',  20, 'Validator preparation error');
INSERT INTO vo_curation.validation_criterion(cap_type, code, criterion_type, weight, description) VALUES('tr:TableAccess', 'F_ZCOL', 'EXTRA',  20, 'No columns known for tests');



