use of com.helger.schematron.pure.exchange.PSWriterSettings in project ph-schematron by phax.
the class Issue48Test method validateAndProduceSVRL.
public static void validateAndProduceSVRL(@Nonnull final File aSchematron, final File aXML) throws Exception {
final PSSchema aSchema = new PSReader(new FileSystemResource(aSchematron)).readSchema();
final PSPreprocessor aPreprocessor = new PSPreprocessor(PSXPathQueryBinding.getInstance());
final PSSchema aPreprocessedSchema = aPreprocessor.getAsPreprocessedSchema(aSchema);
final String sSCH = new PSWriter(new PSWriterSettings().setXMLWriterSettings(new XMLWriterSettings())).getXMLString(aPreprocessedSchema);
if (false)
System.out.println(sSCH);
final SchematronResourceSCH aSCH = new SchematronResourceSCH(new ReadableResourceString(sSCH, StandardCharsets.UTF_8));
// Perform validation
final SchematronOutputType aSVRL = aSCH.applySchematronValidationToSVRL(new FileSystemResource(aXML));
assertNotNull(aSVRL);
if (false)
System.out.println(new SVRLMarshaller().getAsString(aSVRL));
}
use of com.helger.schematron.pure.exchange.PSWriterSettings in project ph-schematron by phax.
the class SchematronPreprocess method execute.
@Override
public void execute() throws BuildException {
boolean bCanRun = false;
if (m_aSrcFile == null)
_error("No source Schematron file specified!");
else if (m_aSrcFile.exists() && !m_aSrcFile.isFile())
_error("The specified source Schematron file " + m_aSrcFile + " is not a file!");
else if (m_aDstFile == null)
_error("No destination Schematron file specified!");
else if (m_aDstFile.exists() && !m_aDstFile.isFile())
_error("The specified destination Schematron file " + m_aDstFile + " is not a file!");
else
bCanRun = true;
if (bCanRun)
try {
// Read source
final PSSchema aSchema = new PSReader(new FileSystemResource(m_aSrcFile)).readSchema();
// Setup preprocessor
final PSPreprocessor aPreprocessor = new PSPreprocessor(PSXPathQueryBinding.getInstance());
aPreprocessor.setKeepTitles(m_bKeepTitles);
aPreprocessor.setKeepDiagnostics(m_bKeepDiagnostics);
aPreprocessor.setKeepReports(m_bKeepReports);
aPreprocessor.setKeepEmptyPatterns(m_bKeepEmptyPatterns);
aPreprocessor.setKeepEmptySchema(true);
// Main pre-processing
final PSSchema aPreprocessedSchema = aPreprocessor.getAsPreprocessedSchema(aSchema);
// Write the result file
new PSWriter(new PSWriterSettings().setXMLWriterSettings(new XMLWriterSettings())).writeToFile(aPreprocessedSchema, m_aDstFile);
log("Successfully pre-processed Schematron " + m_aSrcFile + " to " + m_aDstFile);
} catch (final SchematronReadException | SchematronPreprocessException ex) {
_error("Error processing Schemtron " + m_aSrcFile.getAbsolutePath(), ex);
}
}
Aggregations