mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-25 16:55:39 +00:00
Merge remote-tracking branch 'origin/branch-1.1.x'
This commit is contained in:
commit
5f18236b68
5 changed files with 59 additions and 15 deletions
|
|
@ -55,4 +55,22 @@ public class EngineInformation {
|
||||||
public static String getFrameworkVersion() {
|
public static String getFrameworkVersion() {
|
||||||
return PROPERTIES.getProperty("framework_version");
|
return PROPERTIES.getProperty("framework_version");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt die Major-Versions-Nummer des eingesetzten Frameworks zurück.
|
||||||
|
*
|
||||||
|
* @return die Major-Versions-Nummer
|
||||||
|
*/
|
||||||
|
public static String getFrameworkMajorVersion() {
|
||||||
|
return getFrameworkVersion().substring(0, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gibt den Namespace des eingesetzten Frameworks zurück.
|
||||||
|
*
|
||||||
|
* @return die Major-Versions-Nummer
|
||||||
|
*/
|
||||||
|
public static String getFrameworkNamespace() {
|
||||||
|
return "http://www.xoev.de/de/validator/framework/" + getFrameworkMajorVersion() + "/createreportinput";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,19 +19,25 @@
|
||||||
|
|
||||||
package de.kosit.validationtool.impl.tasks;
|
package de.kosit.validationtool.impl.tasks;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.xml.transform.dom.DOMSource;
|
import javax.xml.transform.dom.DOMSource;
|
||||||
|
|
||||||
import org.w3c.dom.Document;
|
import org.w3c.dom.Document;
|
||||||
import org.xml.sax.SAXException;
|
import org.xml.sax.SAXException;
|
||||||
|
import org.xml.sax.helpers.AttributesImpl;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
import de.kosit.validationtool.impl.CollectingErrorEventHandler;
|
import de.kosit.validationtool.impl.CollectingErrorEventHandler;
|
||||||
import de.kosit.validationtool.impl.ContentRepository;
|
import de.kosit.validationtool.impl.ContentRepository;
|
||||||
import de.kosit.validationtool.impl.ConversionService;
|
import de.kosit.validationtool.impl.ConversionService;
|
||||||
|
import de.kosit.validationtool.impl.EngineInformation;
|
||||||
import de.kosit.validationtool.impl.ObjectFactory;
|
import de.kosit.validationtool.impl.ObjectFactory;
|
||||||
import de.kosit.validationtool.impl.RelativeUriResolver;
|
import de.kosit.validationtool.impl.RelativeUriResolver;
|
||||||
import de.kosit.validationtool.impl.ScenarioRepository;
|
import de.kosit.validationtool.impl.ScenarioRepository;
|
||||||
|
import de.kosit.validationtool.model.reportInput.XMLSyntaxError;
|
||||||
import de.kosit.validationtool.model.scenarios.ScenarioType;
|
import de.kosit.validationtool.model.scenarios.ScenarioType;
|
||||||
|
|
||||||
import net.sf.saxon.s9api.BuildingContentHandler;
|
import net.sf.saxon.s9api.BuildingContentHandler;
|
||||||
|
|
@ -53,6 +59,7 @@ import net.sf.saxon.s9api.XsltTransformer;
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class CreateReportAction implements CheckAction {
|
public class CreateReportAction implements CheckAction {
|
||||||
|
|
||||||
|
private static final String ERROR_MESSAGE_ELEMENT = "error-message";
|
||||||
private final Processor processor;
|
private final Processor processor;
|
||||||
|
|
||||||
private final ConversionService conversionService;
|
private final ConversionService conversionService;
|
||||||
|
|
@ -71,7 +78,7 @@ public class CreateReportAction implements CheckAction {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
final XdmNode parsedDocument = results.getParserResult().isValid() ? results.getParserResult().getObject()
|
final XdmNode parsedDocument = results.getParserResult().isValid() ? results.getParserResult().getObject()
|
||||||
: createEmpty();
|
: createErrorInformation(results.getParserResult().getErrors());
|
||||||
|
|
||||||
final Document reportInput = this.conversionService.writeDocument(results.getReportInput());
|
final Document reportInput = this.conversionService.writeDocument(results.getReportInput());
|
||||||
final XdmNode root = documentBuilder.build(new DOMSource(reportInput));
|
final XdmNode root = documentBuilder.build(new DOMSource(reportInput));
|
||||||
|
|
@ -95,9 +102,14 @@ public class CreateReportAction implements CheckAction {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static XdmNode createEmpty() throws SaxonApiException, SAXException {
|
private static XdmNode createErrorInformation(final Collection<XMLSyntaxError> errors) throws SaxonApiException, SAXException {
|
||||||
final BuildingContentHandler contentHandler = ObjectFactory.createProcessor().newDocumentBuilder().newBuildingContentHandler();
|
final BuildingContentHandler contentHandler = ObjectFactory.createProcessor().newDocumentBuilder().newBuildingContentHandler();
|
||||||
contentHandler.startDocument();
|
contentHandler.startDocument();
|
||||||
|
contentHandler.startElement(EngineInformation.getFrameworkNamespace(), ERROR_MESSAGE_ELEMENT, ERROR_MESSAGE_ELEMENT,
|
||||||
|
new AttributesImpl());
|
||||||
|
final String message = errors.stream().map(XMLSyntaxError::getMessage).collect(Collectors.joining());
|
||||||
|
contentHandler.characters(message.toCharArray(), 0, message.length());
|
||||||
|
contentHandler.endElement(EngineInformation.getFrameworkNamespace(), ERROR_MESSAGE_ELEMENT, ERROR_MESSAGE_ELEMENT);
|
||||||
return contentHandler.getDocumentNode();
|
return contentHandler.getDocumentNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -21,23 +21,23 @@
|
||||||
<!-- $Id$ -->
|
<!-- $Id$ -->
|
||||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:in="http://www.xoev.de/de/validator/framework/1/createreportinput"
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:in="http://www.xoev.de/de/validator/framework/1/createreportinput"
|
||||||
xmlns:s="http://www.xoev.de/de/validator/framework/1/scenarios" xmlns:svrl="http://purl.oclc.org/dsdl/svrl"
|
xmlns:s="http://www.xoev.de/de/validator/framework/1/scenarios" xmlns:svrl="http://purl.oclc.org/dsdl/svrl"
|
||||||
targetNamespace="http://www.xoev.de/de/validator/framework/1/createreportinput" version="1.0.0"
|
targetNamespace="http://www.xoev.de/de/validator/framework/1/createreportinput" version="1.0.2"
|
||||||
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||||
|
|
||||||
<xs:import namespace="http://www.xoev.de/de/validator/framework/1/scenarios" schemaLocation="scenarios.xsd"/>
|
<xs:import namespace="http://www.xoev.de/de/validator/framework/1/scenarios" schemaLocation="scenarios.xsd" />
|
||||||
<xs:import namespace="http://purl.oclc.org/dsdl/svrl" schemaLocation="svrl-kosit.xsd" />
|
<xs:import namespace="http://purl.oclc.org/dsdl/svrl" schemaLocation="svrl-kosit.xsd" />
|
||||||
|
|
||||||
<xs:element name="createReportInput">
|
<xs:element name="createReportInput">
|
||||||
<xs:complexType>
|
<xs:complexType>
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element name="engine" type="in:EngineType"/>
|
<xs:element name="engine" type="in:EngineType" />
|
||||||
<xs:element name="timestamp" type="xs:dateTime"/>
|
<xs:element name="timestamp" type="xs:dateTime" />
|
||||||
<xs:element name="documentIdentification" type="in:DocumentIdentificationType"/>
|
<xs:element name="documentIdentification" type="in:DocumentIdentificationType" />
|
||||||
<xs:element ref="s:scenario" minOccurs="0"/>
|
<xs:element ref="s:scenario" minOccurs="0" />
|
||||||
<xs:element name="validationResultsWellformedness" type="in:ValidationResultsWellformedness" minOccurs="0"/>
|
<xs:element name="validationResultsWellformedness" type="in:ValidationResultsWellformedness" minOccurs="0" />
|
||||||
<xs:element name="validationResultsXmlSchema" type="in:ValidationResultsXmlSchema" minOccurs="0"/>
|
<xs:element name="validationResultsXmlSchema" type="in:ValidationResultsXmlSchema" minOccurs="0" />
|
||||||
<xs:element name="validationResultsSchematron" type="in:ValidationResultsSchematron" minOccurs="0" maxOccurs="unbounded"/>
|
<xs:element name="validationResultsSchematron" type="in:ValidationResultsSchematron" minOccurs="0" maxOccurs="unbounded" />
|
||||||
<xs:element name="processingError" type="in:ProcessingError" minOccurs="0"/>
|
<xs:element name="processingError" type="in:ProcessingError" minOccurs="0" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
<xs:attribute name="frameworkVersion" type="xs:string" use="required"/>
|
<xs:attribute name="frameworkVersion" type="xs:string" use="required"/>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
@ -145,11 +145,24 @@
|
||||||
</xs:element>
|
</xs:element>
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
<xs:complexType name="ProcessingError">
|
<xs:complexType name="ProcessingError">
|
||||||
<xs:sequence>
|
<xs:sequence>
|
||||||
<xs:element name="error" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
|
<xs:element name="error" type="xs:string" minOccurs="1" maxOccurs="unbounded" />
|
||||||
</xs:sequence>
|
</xs:sequence>
|
||||||
</xs:complexType>
|
</xs:complexType>
|
||||||
|
|
||||||
|
<xs:element name="error-message">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
Dieses Element wird als "Input"-Document im Falle von Parsing-Fehlern an den Report-Generator übergeben.
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:simpleContent>
|
||||||
|
<xs:extension base="xs:string" />
|
||||||
|
</xs:simpleContent>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
|
||||||
</xs:schema>
|
</xs:schema>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# do not edit this file
|
# do not edit this file
|
||||||
# this properties are overriden by build process
|
# this properties are overriden by build process
|
||||||
project_version=${project.version}
|
project_version=${project.version}
|
||||||
framework_version=1.0.0
|
framework_version=1.0.2
|
||||||
engine_name=KoSIT Validator
|
engine_name=KoSIT Validator
|
||||||
build_timestamp=${build.timestamp}
|
build_timestamp=${build.timestamp}
|
||||||
build_number=${build.number}
|
build_number=${build.number}
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,7 @@ public class DefaultCheckTest {
|
||||||
assertThat(result.getAcceptRecommendation()).isEqualTo(AcceptRecommendation.REJECT);
|
assertThat(result.getAcceptRecommendation()).isEqualTo(AcceptRecommendation.REJECT);
|
||||||
assertThat(result.getReport()).isNotNull();
|
assertThat(result.getReport()).isNotNull();
|
||||||
assertThat(result.getReportDocument()).isNotNull();
|
assertThat(result.getReportDocument()).isNotNull();
|
||||||
|
System.out.println(Helper.serialize(result.getReportDocument()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue