From 65f4dfad68fb4c07518b0d90eb00f8f1e49bc7c4 Mon Sep 17 00:00:00 2001 From: "Andreas Penski (init)" Date: Fri, 17 May 2019 14:25:45 +0200 Subject: [PATCH] #21 HTML Extraktion mit in der API angebunden --- .../de/kosit/validationtool/api/Result.java | 24 +++++++++++++++++++ .../impl/model/BaseXMLSyntaxError.java | 5 ++++ .../validationtool/impl/DefaultCheckTest.java | 11 +++++++++ 3 files changed, 40 insertions(+) diff --git a/src/main/java/de/kosit/validationtool/api/Result.java b/src/main/java/de/kosit/validationtool/api/Result.java index 5eca1f2..34c6b1e 100644 --- a/src/main/java/de/kosit/validationtool/api/Result.java +++ b/src/main/java/de/kosit/validationtool/api/Result.java @@ -3,6 +3,7 @@ package de.kosit.validationtool.api; import java.util.List; import org.w3c.dom.Document; +import org.w3c.dom.Element; import net.sf.saxon.s9api.XdmNode; @@ -40,4 +41,27 @@ public interface Result { */ List getSchemaViolations(); + // TODO scheitert momentan daran, das intern kein svlr o.ä. zur Verfügung steht + // List getSchematronResult(); + /** + * Extrahiert evtl. vorhandenes HTML aus dem Report und stellt diese als {@link XdmNode}-Objekt zur Verfügung. + * + * @return HTML-Nodes + */ + List extractHtml(); + + /** + * Extrahiert evtl. vorhandenes HTML aus dem Report und stellt diese als {@link String} zur Verfügung. + * + * @return HTML-Nodes + */ + List extractHtmlAsString(); + + /** + * Extrahiert evtl. vorhandenes HTML aus dem Report und stellt diese im als {@link Element}-Objekt zur Verfügung. + * + * @return HTML-Nodes + */ + List extractHtmlAsElement(); + } diff --git a/src/main/java/de/kosit/validationtool/impl/model/BaseXMLSyntaxError.java b/src/main/java/de/kosit/validationtool/impl/model/BaseXMLSyntaxError.java index fd83d67..ed4e188 100644 --- a/src/main/java/de/kosit/validationtool/impl/model/BaseXMLSyntaxError.java +++ b/src/main/java/de/kosit/validationtool/impl/model/BaseXMLSyntaxError.java @@ -84,6 +84,11 @@ public abstract class BaseXMLSyntaxError implements XmlError { */ public abstract XMLSyntaxErrorSeverity getSeverityCode(); + /** + * Dies ist der API-Zugriff. Es gibt zwei Methoden, weil es für die API einen abweichenden Typ gibt. + * + * @return der Schweregrad + */ @Override public Severity getSeverity() { final XMLSyntaxErrorSeverity code = getSeverityCode(); diff --git a/src/test/java/de/kosit/validationtool/impl/DefaultCheckTest.java b/src/test/java/de/kosit/validationtool/impl/DefaultCheckTest.java index 25b17c3..ae69497 100644 --- a/src/test/java/de/kosit/validationtool/impl/DefaultCheckTest.java +++ b/src/test/java/de/kosit/validationtool/impl/DefaultCheckTest.java @@ -92,4 +92,15 @@ public class DefaultCheckTest { assertThat(docs).hasSize(MULTI_COUNT); } + @Test + public void testExtractHtml() { + final DefaultResult doc = (DefaultResult) this.implementation.checkInput(read(VALID_EXAMPLE)); + assertThat(doc).isNotNull(); + assertThat(doc.getReport()).isNotNull(); + assertThat(doc.isAcceptable()).isFalse(); + assertThat(doc.extractHtmlAsString()).isNotEmpty(); + assertThat(doc.extractHtmlAsElement()).isNotEmpty(); + assertThat(doc.extractHtml()).isNotEmpty(); + } + }