diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java index b451d9521385ee1b133d5fe098be89e29e6c8333..d1bad439b0002ef1e3b2845234dcecdf363b983e 100644 --- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java +++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimService.java @@ -1,6 +1,7 @@ package de.ozgcloud.eingang.fim; import de.ozgcloud.eingang.common.formdata.FormData; +import de.ozgcloud.eingang.common.formdata.ZustaendigeStelle; import io.micrometer.common.util.StringUtils; import jakarta.annotation.PostConstruct; import lombok.extern.log4j.Log4j2; @@ -69,7 +70,9 @@ public class FimService { } public FormData transformDocument(final Document document, final FormData initialFormData) { - final String schemeName = document.getDocumentElement().getAttribute("xmlns:xfd"); + final String[] tagParts = document.getDocumentElement().getTagName().split(":"); + final String namespacePrefix = tagParts.length < 2 ? "" : (":" + tagParts[0]); + final String schemeName = document.getDocumentElement().getAttribute("xmlns" + namespacePrefix); if (StringUtils.isEmpty(schemeName)) { throw new FimException("XML Document does not provide a scheme"); } @@ -84,6 +87,9 @@ public class FimService { adapter.extractZustaendigeStelle(builder, initialFormData); + // FIXME remove me please + builder.zustaendigeStelle(ZustaendigeStelle.builder().organisationseinheitenId("vbe:010550120100").build()); + return builder.build(); } diff --git a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java index d639d58fc6a46b3de4df102ea216cdd8f9c99629..886bfbefdf7a56498e408582fb8139cf6d08eb17 100644 --- a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java +++ b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceITCase.java @@ -76,6 +76,18 @@ public class FimServiceITCase { assertThat(expected).isEqualTo(formData.getFormData()); } + @Test + void shouldTransformSimpleDocumentWithoutNamespace() throws ParserConfigurationException, IOException, SAXException { + final Document document = loadDocument("src/test/resources/test3.xml"); + final FormData formData = fimService.transformDocument(document, FormData.builder().build()); + + final Map<String, Object> expected = Map.of( + "fim.S1235", Map.of("label", "Testkey", "value", "Testvalue"), + "fim.S1236", Map.of("label", "fim.S1236", "value", "Testvalue 2") + ); + assertThat(expected).isEqualTo(formData.getFormData()); + } + @Test void shouldTransformDocument() throws ParserConfigurationException, IOException, SAXException { final Document document = loadDocument("src/test/resources/S17000652V1.4_test01.xml"); diff --git a/fim-adapter/src/test/resources/test2.xml b/fim-adapter/src/test/resources/test2.xml index 6d219fb5cbb394f5d73e8a427f4b525f226c7168..2f0cc4f8bea8e30285f6169ce07494e6beac535d 100644 --- a/fim-adapter/src/test/resources/test2.xml +++ b/fim-adapter/src/test/resources/test2.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<xs:fim.S1234 xmlns:xfd="test2" xsi:schemaLocation="test2"> +<xs:fim.S1234 xmlns:xs="test2" xsi:schemaLocation="test2"> <xs:fim.S1235>Testvalue</xs:fim.S1235> <xs:fim.S1236>Testvalue 2</xs:fim.S1236> </xs:fim.S1234> diff --git a/fim-adapter/src/test/resources/test3.xml b/fim-adapter/src/test/resources/test3.xml new file mode 100644 index 0000000000000000000000000000000000000000..c00618791b8e8cf12a435c98733ced256bc61eab --- /dev/null +++ b/fim-adapter/src/test/resources/test3.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<fim.S1234 xmlns="test2" xsi:schemaLocation="test2"> + <fim.S1235>Testvalue</fim.S1235> + <fim.S1236>Testvalue 2</fim.S1236> +</fim.S1234> diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java index 1bdf7660b10866eae96f39854a1cbd9057d9cff9..9168807d8b4e2a6c52ae95c8bb509ffd04ecd1d8 100644 --- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java +++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/SemantikAdapter.java @@ -24,7 +24,6 @@ package de.ozgcloud.eingang.semantik; import java.util.List; -import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -55,8 +54,6 @@ public class SemantikAdapter { } private FormData parseByEngineAdapter(FormData formData) { - // FIXME remove - LOG.debug("Parse bei responsible adapters " + engineBasedAdapters.stream().map(x -> x.getClass().getName()).collect(Collectors.joining(","))); List<EngineBasedSemantikAdapter> responsibleEngineAdapters = getResponsibleEngineAdapters(formData); for (var adapter : responsibleEngineAdapters) { try {