diff --git a/fim-adapter/pom.xml b/fim-adapter/pom.xml index 3f238ee3b4d1a481ba465908a15a815f62374aa5..a04f4869362e8212dc9b0efdb4762fe07cf545c3 100644 --- a/fim-adapter/pom.xml +++ b/fim-adapter/pom.xml @@ -4,7 +4,7 @@ <parent> <groupId>de.ozgcloud.eingang</groupId> <artifactId>eingang-manager</artifactId> - <version>2.5.0-SNAPSHOT</version> + <version>2.8.0-SNAPSHOT</version> </parent> <artifactId>fim-adapter</artifactId> <name>Eingangs Adapter - FIM</name> @@ -16,11 +16,6 @@ <artifactId>common</artifactId> </dependency> - <dependency> - <groupId>de.ozgcloud.eingang</groupId> - <artifactId>semantik-adapter</artifactId> - </dependency> - <!--spring--> <dependency> <groupId>org.springframework.boot</groupId> @@ -39,10 +34,6 @@ <type>test-jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>de.ozgcloud.eingang</groupId> - <artifactId>semantik-adapter</artifactId> - </dependency> </dependencies> <build> diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java index 095c2026ca5f9d516870e67a35a5667fbd3dc800..5a2751ccaff2370f6d465471acba2d70f6a65d4c 100644 --- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java +++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/FimBasedMapper.java @@ -3,9 +3,9 @@ package de.ozgcloud.eingang.fim; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.common.formdata.IncomingFile; import de.ozgcloud.eingang.common.formdata.IncomingFileGroup; -import de.ozgcloud.eingang.semantik.enginebased.EngineBasedMapper; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; import org.w3c.dom.Document; import org.xml.sax.SAXException; @@ -18,7 +18,8 @@ import java.util.List; import java.util.Optional; @Log4j2 -public class FimBasedMapper implements EngineBasedMapper { +@Service +public class FimBasedMapper { @Autowired private FimService fimService = null; @@ -26,7 +27,7 @@ public class FimBasedMapper implements EngineBasedMapper { public boolean isResponsible(final FormData formData) { return true; } - @Override + public FormData parseFormData(final FormData initialFormData) { final List<IncomingFileGroup> attachments = initialFormData.getAttachments(); final Optional<IncomingFile> metadataFileOpt = findFile(attachments, "fim_xtaMetadata.xml"); @@ -56,7 +57,7 @@ public class FimBasedMapper implements EngineBasedMapper { private Optional<IncomingFile> findFile(final Collection<IncomingFileGroup> attachments, final String name) { for (IncomingFileGroup group : attachments) { for (IncomingFile file : group.getFiles()) { - if (name.equals(file.getName())) { + if (file.getName().endsWith(name)) { return Optional.of(file); } } @@ -66,7 +67,7 @@ public class FimBasedMapper implements EngineBasedMapper { private Optional<String> getEntryPoint(final IncomingFile incomingFile) { // TODO sollte über formdata metadaten kommen statt aus dem meta file geparsed zu werden - return Optional.of("antrag.xml"); + return Optional.of("Antrag.xml"); } private Document loadDocument(final IncomingFile incomingFile) throws ParserConfigurationException, IOException, SAXException { 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 d8d51a1a4f7de1e192ab5fae801f554c42e56c38..40415f23e106adb3323b3725ac26383ff7770857 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 @@ -3,6 +3,7 @@ package de.ozgcloud.eingang.fim; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.fim.adapter.FimSchemeAdapter; import io.micrometer.common.util.StringUtils; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -15,12 +16,13 @@ import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import java.io.File; import java.io.IOException; -import java.net.URISyntaxException; import java.util.ArrayList; import java.util.List; @Service +@Log4j2 public class FimService implements InitializingBean { + public static final String UNKNOWN_SCHEME_NAME = "unknown"; @Autowired private final FimDataMapper fimDataMapper = null; @@ -44,6 +46,8 @@ public class FimService implements InitializingBean { final FimScheme fimScheme = loadFimScheme(fimSchemaLocation.trim()); fimSchemeCatalogue.put(fimScheme.getIdentifier(), fimScheme); } + final FimScheme unknownScheme = buildUnknownScheme(); + fimSchemeCatalogue.put(unknownScheme.getIdentifier(), unknownScheme); } private FimScheme loadFimScheme(final String path) throws ParserConfigurationException, IOException, SAXException { @@ -55,6 +59,13 @@ public class FimService implements InitializingBean { return new FimScheme(doc, fimSchemeIdentifier, fimSchemeAdapter); } + private FimScheme buildUnknownScheme() throws ParserConfigurationException { + final Document doc = DocumentBuilderFactory.newInstance().newDocumentBuilder().newDocument(); + final FimSchemeIdentifier unknownFimSchemeIdentifier = FimSchemeIdentifier.fromString(UNKNOWN_SCHEME_NAME); + final FimSchemeAdapter fimSchemeAdapter = fimSchemeAdapterCatalogue.get(unknownFimSchemeIdentifier); + return new FimScheme(doc, unknownFimSchemeIdentifier, fimSchemeAdapter); + } + public FormData transformDocument(final Document document, final FormData initialFormData) { final String schemeName = document.getDocumentElement().getAttribute("xmlns:xfd"); if (StringUtils.isEmpty(schemeName)) { @@ -67,9 +78,9 @@ public class FimService implements InitializingBean { builder.header(initialFormData.getHeader()); - adapter.extractAntragsteller(builder); + adapter.extractAntragsteller(builder, initialFormData); - adapter.extractZustaendigeStelle(builder); + adapter.extractZustaendigeStelle(builder, initialFormData); return builder.build(); } @@ -78,7 +89,8 @@ public class FimService implements InitializingBean { final FimSchemeIdentifier fimSchemeIdentifier = FimSchemeIdentifier.fromString(fimSchemaName); final FimScheme fimScheme = fimSchemeCatalogue.get(fimSchemeIdentifier); if (fimScheme == null) { - throw new FimException("Cannot find schema for: " + fimSchemaName); + LOG.error("Cannot find schema for: " + fimSchemaName); + return fimSchemeCatalogue.get(FimSchemeIdentifier.fromString(UNKNOWN_SCHEME_NAME)); } return fimScheme; } diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/FimSchemeAdapter.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/FimSchemeAdapter.java index 1895fe595a8803de3d8a62930066f51df7f88993..c114bf02410369f20ffe74be302b87b73f31ce35 100644 --- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/FimSchemeAdapter.java +++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/FimSchemeAdapter.java @@ -38,9 +38,9 @@ public class FimSchemeAdapter { return Optional.ofNullable(nameTags.item(0).getTextContent()); } - public void extractAntragsteller(final FormData.FormDataBuilder builder) { + public void extractAntragsteller(final FormData.FormDataBuilder builder, final FormData initialFormData) { } - public void extractZustaendigeStelle (final FormData.FormDataBuilder builder) { + public void extractZustaendigeStelle (final FormData.FormDataBuilder builder, final FormData initialFormData) { } } diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/UnknownSchemeAdapter.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/UnknownSchemeAdapter.java new file mode 100644 index 0000000000000000000000000000000000000000..a4539ef08bc399e044453a00ff14f025bda45cdd --- /dev/null +++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/UnknownSchemeAdapter.java @@ -0,0 +1,22 @@ +package de.ozgcloud.eingang.fim.adapter; + +import de.ozgcloud.eingang.fim.FimSchemeIdentifier; +import de.ozgcloud.eingang.fim.FimService; +import org.springframework.stereotype.Service; +import org.w3c.dom.Element; + +import java.util.Map; +import java.util.Optional; + +@Service +public class UnknownSchemeAdapter extends FimSchemeAdapter { + + public FimSchemeIdentifier forIdentifier() { + return FimSchemeIdentifier.fromString(FimService.UNKNOWN_SCHEME_NAME); + } + + @Override + public Optional<String> getFieldName(Map<String, Element> fieldIndex, String fieldName) { + return Optional.of(fieldName); + } +} diff --git a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/VersammlungsAnzeigeAdapter.java b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/VersammlungsAnzeigeAdapter.java index e2cf728c09cedfdf053359822c732bba2c3b6e42..9d849c4c77e3290f81c0d11d51cf45ec2b69a0bb 100644 --- a/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/VersammlungsAnzeigeAdapter.java +++ b/fim-adapter/src/main/java/de/ozgcloud/eingang/fim/adapter/VersammlungsAnzeigeAdapter.java @@ -3,6 +3,10 @@ package de.ozgcloud.eingang.fim.adapter; import de.ozgcloud.eingang.common.formdata.FormData; import de.ozgcloud.eingang.fim.FimSchemeIdentifier; import org.springframework.stereotype.Service; +import org.w3c.dom.Element; + +import java.util.Map; +import java.util.Optional; @Service public class VersammlungsAnzeigeAdapter extends FimSchemeAdapter { @@ -11,9 +15,18 @@ public class VersammlungsAnzeigeAdapter extends FimSchemeAdapter { return FimSchemeIdentifier.fromString("urn:xoev-de:xfall:standard:fim-s17000652_1.4"); } - public void extractAntragsteller(final FormData.FormDataBuilder builder) { + @Override + public Optional<String> getFieldName(Map<String, Element> fieldIndex, String fieldName) { + return super.getFieldName(fieldIndex, fieldName); } - public void extractZustaendigeStelle (final FormData.FormDataBuilder builder) { + @Override + + public void extractAntragsteller(final FormData.FormDataBuilder builder, final FormData initialFormData) { + } + + @Override + + public void extractZustaendigeStelle (final FormData.FormDataBuilder builder, final FormData initialFormData) { } } diff --git a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceTest.java b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceTest.java index 30d5112f626a5175b90f5af92e16547ecb0b2522..106837b8addda026e676cb4b1874a628623345e2 100644 --- a/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceTest.java +++ b/fim-adapter/src/test/java/de/ozgcloud/eingang/fim/FimServiceTest.java @@ -1,7 +1,10 @@ package de.ozgcloud.eingang.fim; import de.ozgcloud.eingang.common.formdata.FormData; +import de.ozgcloud.eingang.common.formdata.IncomingFile; +import de.ozgcloud.eingang.common.formdata.IncomingFileGroup; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.ConfigurationProperties; @@ -27,20 +30,24 @@ public class FimServiceTest { @Autowired private FimService fimService = null; + @Autowired + private FimBasedMapper fimBasedMapper = null; + @Test void shouldFailOnEmptyScheme() { Exception exception = assertThrows(FimException.class, () -> { - final Document document = loadDocument("src/test/resources/test.xml"); + final Document document = loadDocument("src/test/resources/test1.xml"); fimService.transformDocument(document, FormData.builder().build()); }); String expectedMessage = "XML Document does not provide a scheme"; String actualMessage = exception.getMessage(); - assertTrue(actualMessage.equals(expectedMessage)); + assertEquals(expectedMessage, actualMessage); } @Test + @Disabled void shouldNoFindInvalidScheme() { Exception exception = assertThrows(FimException.class, () -> { fimService.getSchemeForIdentifier("test"); @@ -49,7 +56,7 @@ public class FimServiceTest { String expectedMessage = "Cannot find schema for: test"; String actualMessage = exception.getMessage(); - assertTrue(actualMessage.equals(expectedMessage)); + assertEquals(expectedMessage, actualMessage); } @Test @@ -68,7 +75,7 @@ public class FimServiceTest { void shouldTransformSimpleDocument() throws ParserConfigurationException, IOException, SAXException { final Document document = loadDocument("src/test/resources/test2.xml"); FormData formData = fimService.transformDocument(document, FormData.builder().build()); - Assertions.assertEquals("Testvalue", formData.getFormData().get("Testkey")); + Assertions.assertEquals("Testvalue", mapValue(formData.getFormData().get("xs:fim.S1235"))); } @Test @@ -77,40 +84,119 @@ public class FimServiceTest { FormData formData = fimService.transformDocument(document, FormData.builder().build()); assertNotNull(formData); - Assertions.assertEquals(true, formData.getFormData().containsKey("EfA|SH Standard")); - Map<String, Object> efaSH = (Map<String, Object>) formData.getFormData().get("EfA|SH Standard"); - Assertions.assertTrue(efaSH.containsKey("nachrichtenkopf")); - Map<String, Object> kopf = (Map<String, Object>) efaSH.get("nachrichtenkopf"); - Assertions.assertTrue(kopf.containsKey("identifikation.nachricht")); - Map<String, Object> nachricht = (Map<String, Object>) kopf.get("identifikation.nachricht"); - Assertions.assertEquals("d447e43a-5723-4821-a170-cb44d2dbf143", nachricht.get("nachrichtenUUID")); - Assertions.assertEquals("2022-08-15T09:30:47", nachricht.get("erstellungszeitpunkt")); - Assertions.assertEquals("fim.S17000652.17000652001004", nachricht.get("nachrichtentyp")); - Assertions.assertEquals("urn:fim:Versammlungsanzeige:1.4", nachricht.get("dienstname")); - Assertions.assertTrue(kopf.containsKey("Leser")); - Map<String, Object> leser = (Map<String, Object>) kopf.get("Leser"); - Assertions.assertEquals("Celle", leser.get("Organisationsname")); - Assertions.assertEquals("vbe:010550120100", leser.get("Organisationsschlüssel")); - Assertions.assertEquals("Versammlungsbehörde", leser.get("Kategorie")); - Assertions.assertTrue(kopf.containsKey("Autor")); - Map<String, Object> autor = (Map<String, Object>) kopf.get("Autor"); - Assertions.assertEquals("OSI-Onlinedienst Niedersachsen Versammlungsanzeige", autor.get("Organisationsname")); - Assertions.assertEquals("vbe:010550120100", autor.get("Organisationsschlüssel")); - Assertions.assertEquals("Engagement- und Hobbyportal", autor.get("Kategorie")); - Assertions.assertTrue(efaSH.containsKey("Datenschutzhinweis DSGVO")); - Assertions.assertEquals("true", efaSH.get("Datenschutzhinweis DSGVO")); - Assertions.assertTrue(efaSH.containsKey("Zustimmung zu einem digitalen Bescheid")); - Assertions.assertEquals("true", efaSH.get("Zustimmung zu einem digitalen Bescheid")); - Assertions.assertTrue(efaSH.containsKey("UUID")); - Assertions.assertEquals("String", efaSH.get("UUID")); - Assertions.assertTrue(formData.getFormData().containsKey("Anzeige durch Person")); - Assertions.assertEquals("true", formData.getFormData().get("Anzeige durch Person")); - Assertions.assertTrue(formData.getFormData().containsKey("Anzeigenart")); - Assertions.assertEquals("String", formData.getFormData().get("Anzeigenart")); + + final Map<String, Object> expected = Map.of( + "xfd:G17003529", Map.of( + "label","EfA|SH Standard", + "value", Map.of( + "xfd:G05001479", Map.of( + "label","nachrichtenkopf", + "value", Map.of( + "xfd:G05001480", Map.of( + "label","identifikation.nachricht", + "value", Map.of( + "xfd:F05002750", Map.of("label", "nachrichtenUUID", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"), + "xfd:F05002751", Map.of("label", "erstellungszeitpunkt", "value", "2022-08-15T09:30:47"), + "xfd:F05002752", Map.of("label", "nachrichtentyp", "value", "fim.S17000652.17000652001004"), + "xfd:F05002753", Map.of("label", "dienstname", "value", "urn:fim:Versammlungsanzeige:1.4") + ) + ), + "xfd:G05001481", Map.of( + "label","Leser", + "value", Map.of( + "xfd:F05002754", Map.of("label", "Organisationsname", "value", "Celle"), + "xfd:F05002755", Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"), + "xfd:F05002756", Map.of("label", "Kategorie", "value", "Versammlungsbehörde") + ) + ), + "xfd:G05001482", Map.of( + "label","Autor", + "value", Map.of( + "xfd:F05002754", Map.of("label", "Organisationsname", "value", "OSI-Onlinedienst Niedersachsen Versammlungsanzeige"), + "xfd:F05002755", Map.of("label", "Organisationsschlüssel", "value", "vbe:010550120100"), + "xfd:F05002756", Map.of("label", "Kategorie", "value", "Engagement- und Hobbyportal") + ) + ) + ) + ), + "xfd:F17005454", Map.of("label", "Datenschutzhinweis DSGVO", "value", "true"), + "xfd:F17005455", Map.of("label", "Zustimmung zu einem digitalen Bescheid", "value", "true"), + "xfd:F17005533", Map.of("label", "UUID", "value", "String") + ) + ), + "xfd:F17009191", Map.of("label", "Anzeige durch Person", "value", "true"), + "xfd:F17003371", Map.of("label", "Anzeigenart", "value", "String") + ); + + assertEquals(expected, formData.getFormData()); + } + + @Test + void shouldFallbackUnknownScheme() throws ParserConfigurationException, IOException, SAXException { + final FormData initialFormData = FormData.builder().attachment( + IncomingFileGroup.builder() + .file(IncomingFile.builder().name("src/test/resources/test3/Antrag.xml").file(new File("src/test/resources/test3/Antrag.xml")).build()) + .file(IncomingFile.builder().name("src/test/resources/test3/fim_xtaMetadata.xml").build()).build()).build(); + + FormData formData = fimBasedMapper.parseFormData(initialFormData); + + assertNotNull(formData); + + final Map<String, Object> expected = Map.of( + "xfd:G17003529", Map.of( + "label","xfd:G17003529", + "value", Map.of( + "xfd:G05001479", Map.of( + "label","xfd:G05001479", + "value", Map.of( + "xfd:G05001480", Map.of( + "label","xfd:G05001480", + "value", Map.of( + "xfd:F05002750", Map.of("label", "xfd:F05002750", "value", "d447e43a-5723-4821-a170-cb44d2dbf143"), + "xfd:F05002751", Map.of("label", "xfd:F05002751", "value", "2022-08-15T09:30:47"), + "xfd:F05002752", Map.of("label", "xfd:F05002752", "value", "fim.S17000652.17000652001004"), + "xfd:F05002753", Map.of("label", "xfd:F05002753", "value", "urn:fim:Versammlungsanzeige:1.4") + ) + ), + "xfd:G05001481", Map.of( + "label","xfd:G05001481", + "value", Map.of( + "xfd:F05002754", Map.of("label", "xfd:F05002754", "value", "Celle"), + "xfd:F05002755", Map.of("label", "xfd:F05002755", "value", "vbe:010550120100"), + "xfd:F05002756", Map.of("label", "xfd:F05002756", "value", "Versammlungsbehörde") + ) + ), + "xfd:G05001482", Map.of( + "label","xfd:G05001482", + "value", Map.of( + "xfd:F05002754", Map.of("label", "xfd:F05002754", "value", "OSI-Onlinedienst Niedersachsen Versammlungsanzeige"), + "xfd:F05002755", Map.of("label", "xfd:F05002755", "value", "vbe:010550120100"), + "xfd:F05002756", Map.of("label", "xfd:F05002756", "value", "Engagement- und Hobbyportal") + ) + ) + ) + ), + "xfd:F17005454", Map.of("label", "xfd:F17005454", "value", "true"), + "xfd:F17005455", Map.of("label", "xfd:F17005455", "value", "true"), + "xfd:F17005533", Map.of("label", "xfd:F17005533", "value", "String") + ) + ), + "xfd:F17009191", Map.of("label", "xfd:F17009191", "value", "true"), + "xfd:F17003371", Map.of("label", "xfd:F17003371", "value", "String") + ); + + assertEquals(expected, formData.getFormData()); } private Document loadDocument(final String path) throws ParserConfigurationException, IOException, SAXException { final DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); return builder.parse(new File(path)); } + + private Map<String, Object> map(final Object o) { + return (Map<String, Object>) o; + } + private String mapValue(final Object o) { + return (String) map(o).get("value"); + } } diff --git a/fim-adapter/src/test/resources/test.xml b/fim-adapter/src/test/resources/test1.xml similarity index 100% rename from fim-adapter/src/test/resources/test.xml rename to fim-adapter/src/test/resources/test1.xml diff --git a/fim-adapter/src/test/resources/test3/Antrag.xml b/fim-adapter/src/test/resources/test3/Antrag.xml new file mode 100644 index 0000000000000000000000000000000000000000..461b8089fd72a1ed3087b78143020c3336ec5947 --- /dev/null +++ b/fim-adapter/src/test/resources/test3/Antrag.xml @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!--XML-Beispieldatei von XMLSpy generiert v2024 (x64) (http://www.altova.com)--> +<xfd:fim.S17000652.17000652001004 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xfd="empty" xsi:schemaLocation="empty"> + <xfd:G17003529> + <xfd:G05001479> + <xfd:G05001480> + <xfd:F05002750>d447e43a-5723-4821-a170-cb44d2dbf143</xfd:F05002750> + <xfd:F05002751>2022-08-15T09:30:47</xfd:F05002751> + <xfd:F05002752>fim.S17000652.17000652001004</xfd:F05002752> + <xfd:F05002753>urn:fim:Versammlungsanzeige:1.4</xfd:F05002753> + </xfd:G05001480> + <xfd:G05001481> + <xfd:F05002754>Celle</xfd:F05002754> + <xfd:F05002755>vbe:010550120100</xfd:F05002755> + <xfd:F05002756>Versammlungsbehörde</xfd:F05002756> + </xfd:G05001481> + <xfd:G05001482> + <xfd:F05002754>OSI-Onlinedienst Niedersachsen Versammlungsanzeige</xfd:F05002754> + <xfd:F05002755>vbe:010550120100</xfd:F05002755> + <xfd:F05002756>Engagement- und Hobbyportal</xfd:F05002756> + </xfd:G05001482> + </xfd:G05001479> + <xfd:F17005454>true</xfd:F17005454> + <xfd:F17005455>true</xfd:F17005455> + <xfd:F17005533>String</xfd:F17005533> + </xfd:G17003529> + <xfd:F17009191>true</xfd:F17009191> + <xfd:F17003371>String</xfd:F17003371> +</xfd:fim.S17000652.17000652001004> diff --git a/fim-adapter/src/test/resources/test3/fim_xtaMetadata.xml b/fim-adapter/src/test/resources/test3/fim_xtaMetadata.xml new file mode 100644 index 0000000000000000000000000000000000000000..645ff9797ce644d64e873d3afae523e60297fd1b --- /dev/null +++ b/fim-adapter/src/test/resources/test3/fim_xtaMetadata.xml @@ -0,0 +1,49 @@ +a<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing"> + <s:Header> + <a:Action s:mustUnderstand="1">http://www.osci.eu/ws/2008/05/transport/urn/messageTypes/MsgBoxFetchRequest</a:Action> + <h:MsgBoxResponse MsgBoxRequestID="urn:de:xta:messageid:dataport_xta_210:3d280bfa-d790-4865-a6cf-f6656d7be13f" xmlns:h="http://www.osci.eu/ws/2008/05/transport" xmlns="http://www.osci.eu/ws/2008/05/transport" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <ItemsPending>0</ItemsPending> + </h:MsgBoxResponse> + <h:MessageMetaData xmlns:h="http://www.osci.eu/ws/2014/10/transport" xmlns="http://www.osci.eu/ws/2014/10/transport"> + <DeliveryAttributes> + <InitialSend>2024-03-21T08:56:35.214+01:00</InitialSend> + <Delivery>2024-03-21T08:56:38.417</Delivery> + </DeliveryAttributes> + <Originators> + <Author> + <Identifier type="xoev" name="Dataport" category="Engagement- und Hobbyportal">ehp:010100100000</Identifier> + </Author> + </Originators> + <Destinations> + <Reader> + <Identifier type="xoev" name="L100012.OE.279550874" category="Versammlungsbehörde">vbe:010550120100</Identifier> + </Reader> + </Destinations> + <MsgIdentification> + <MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:de:xta:messageid:dataport_xta_210:3d280bfa-d790-4865-a6cf-f6656d7be13f</MessageID> + </MsgIdentification> + <Qualifier> + <Service>urn:fim:Versammlungsanzeige:1.4</Service> + <BusinessScenario> + <Defined listURI="urn:de:dataport:codeliste:business.scenario" listVersionID="1"> + <code xmlns="">FIM_DATA</code> + </Defined> + </BusinessScenario> + <MessageType listURI="urn:de:payloadSchema:elementName" listVersionID="1.0" payloadSchema="urn:xoev-de:xfall:standard:fim-s17000652_1.4"> + <code xmlns="">fim.S17000652.17000652001004</code> + <name xmlns="">fim.S17000652.17000652001004</name> + </MessageType> + </Qualifier> + <MsgSize>1738</MsgSize> + </h:MessageMetaData> + </s:Header> + <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> + <GenericContentContainer xmlns="http://xoev.de/transport/xta/211"> + <ContentContainer> + <Message contentType="application/xml" filename="Antrag.xml" size="1738"> + <xop:Include href="cid:http://tempuri.org/1/638485107771249372" xmlns:xop="http://www.w3.org/2004/08/xop/include"/> + </Message> + </ContentContainer> + </GenericContentContainer> + </s:Body> +</s:Envelope> \ No newline at end of file