Package gov.nasa.pds.tools.label
Class LabelValidator
java.lang.Object
gov.nasa.pds.tools.label.LabelValidator
public class LabelValidator extends Object
This class is responsible for providing utility functions for validating PDS
XML Labels.
- Author:
- pramirez
-
Field Summary
Fields Modifier and Type Field Description static StringSCHEMA_CHECKstatic StringSCHEMATRON_CHECK -
Constructor Summary
Constructors Constructor Description LabelValidator()Default constructor. -
Method Summary
Modifier and Type Method Description voidaddValidator(DocumentValidator validator)voidaddValidator(ExternalValidator validator)XMLCatalogResolvergetCatalogResolver()BooleangetConfiguration(String key)longgetFilesProcessed()Returns the number of files processed by the validation function.List<String>getSchematrons(NodeList nodeList, URL url, ProblemHandler handler)doublegetTotalTimeElapsed()Returns the duration it took to run the validation function.static voidmain(String[] args)DocumentparseAndValidate(ProblemHandler handler, URL url)Parses and validates a label against the schema and Schematron files, and returns the parsed XML.BooleanperformsSchematronValidation()BooleanperformsSchemaValidation()voidsetCachedEntityResolver(CachedEntityResolver resolver)voidsetCachedLSResourceResolver(CachedLSResourceResolver resolver)voidsetCatalogs(String[] catalogFiles)Pass in a list of Catalog files to use during the validation step.voidsetConfiguration(String key, Boolean value)voidsetLabelSchematrons(Map<String,Transformer> schematronMap)Pass in a hash map of schematron URLs to its transformed schematron object.voidsetSchema(List<URL> schemaFiles)Pass in a list of schemas to validate against.voidsetSchemaCheck(Boolean value)voidsetSchemaCheck(Boolean value, Boolean useLabelSchema)voidsetSchematronCheck(Boolean value)voidsetSchematronCheck(Boolean value, Boolean useLabelSchematron)voidsetSchematronFiles(List<URL> schematronFiles)Pass in a list of schematron files to validate against.voidsetSchematrons(List<Transformer> schematrons)Pass in a list of transformed schematrons to validate against.voidsetSkipProductValidation(Boolean flag)voidvalidate(ProblemHandler handler, File labelFile)voidvalidate(ProblemHandler handler, URL url)Validates the label against schema and schematron constraints.voidvalidate(File labelFile)
-
Field Details
-
SCHEMA_CHECK
- See Also:
- Constant Field Values
-
SCHEMATRON_CHECK
- See Also:
- Constant Field Values
-
-
Constructor Details
-
LabelValidator
Default constructor.- Throws:
ParserConfigurationException- If there was an error setting up the configuration of the parser that is reposnible for doing the label validation.TransformerConfigurationException- If there was an error setting up the Transformer responsible for doing the transformations of the schematrons.
-
-
Method Details
-
getFilesProcessed
public long getFilesProcessed()Returns the number of files processed by the validation function. -
getTotalTimeElapsed
public double getTotalTimeElapsed()Returns the duration it took to run the validation function. -
setSchema
Pass in a list of schemas to validate against.- Parameters:
schemaFiles- A list of schema URLs.
-
setSchematrons
Pass in a list of transformed schematrons to validate against.- Parameters:
schematrons- A list of transformed schematrons.
-
setLabelSchematrons
Pass in a hash map of schematron URLs to its transformed schematron object. This is used when validating a label against it's referenced schematron.- Parameters:
schematronMap-
-
setSchematronFiles
Pass in a list of schematron files to validate against.- Parameters:
schematronFiles- A list of schematron URLs.
-
setCatalogs
Pass in a list of Catalog files to use during the validation step.- Parameters:
catalogFiles-
-
getCatalogResolver
-
validate
public void validate(ProblemHandler handler, File labelFile) throws SAXException, IOException, ParserConfigurationException, TransformerException, MissingLabelSchemaException -
validate
public void validate(ProblemHandler handler, URL url) throws SAXException, IOException, ParserConfigurationException, TransformerException, MissingLabelSchemaExceptionValidates the label against schema and schematron constraints.- Parameters:
handler- a handler to receive errors during the validationurl- label to validate- Throws:
SAXException- if there are parsing exceptionsIOException- if there are I/O errors during the parseParserConfigurationException- if the parser configuration is invalidTransformerException- if there is an error during Schematron transformationMissingLabelSchemaException- if the label schema cannot be found
-
parseAndValidate
public Document parseAndValidate(ProblemHandler handler, URL url) throws SAXException, IOException, ParserConfigurationException, TransformerException, MissingLabelSchemaExceptionParses and validates a label against the schema and Schematron files, and returns the parsed XML.- Parameters:
handler- an problem handler to receive errors during the validationurl- the URL of the label to validate- Returns:
- the XML document represented by the label
- Throws:
SAXException- if there are parsing exceptionsIOException- if there are I/O errors during the parseParserConfigurationException- if the parser configuration is invalidTransformerException- if there is an error during Schematron transformationMissingLabelSchemaException- if the label schema cannot be found
-
validate
public void validate(File labelFile) throws SAXException, IOException, ParserConfigurationException, TransformerException, MissingLabelSchemaException -
getSchematrons
-
performsSchemaValidation
-
setSchemaCheck
-
setSchemaCheck
-
performsSchematronValidation
-
setSchematronCheck
-
setSchematronCheck
-
setSkipProductValidation
-
getConfiguration
-
setConfiguration
-
addValidator
-
addValidator
-
setCachedEntityResolver
-
setCachedLSResourceResolver
-
main
- Throws:
Exception
-