I have this long XML string with multiples XML namespaces (this is generated from other sources) and the namespaces are randomly created by the authors.
I use this Maven dependency: <dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.8.7</version> </dependency> The task is: to **read this XML to a POJO object** and **add some other XML elements** and **serialize the POJO object to new XML string**. The original XML is as below: <lcrmd:LandCoverGridCoverageMD xmlns:ad= "http://inspire.ec.europa.eu/schemas/ad/4.0" xmlns:base= "http://inspire.ec.europa.eu/schemas/base/3.3" xmlns:base2= "http://inspire.ec.europa.eu/schemas/base2/2.0" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gn= "http://inspire.ec.europa.eu/schemas/gn/4.0" xmlns:lcn= "http://inspire.ec.europa.eu/schemas/lcn/4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xmlns:lcrmd= "http://inspire.ec.europa.eu/schemas/lcrmd/4.0" xsi:schemaLocation="http://inspire.ec.europa.eu/schemas/lcrmd/4.0 http://test.datacove.eu/LandCoverRasterMDExt.xsd"> <lcrmd:inspireId> <base:Identifier> <base:localId>CLC Test</base:localId> <base:namespace>Datacove.eu </base:namespace> </base:Identifier> </lcrmd:inspireId> <lcrmd:beginLifespanVersion>2018-07-18T00:00:00 </lcrmd:beginLifespanVersion> <lcrmd:extent> <gmd:EX_Extent> <gmd:geographicElement> <gmd:EX_GeographicBoundingBox> <gmd:westBoundLongitude> <gco:Decimal>1.0</gco:Decimal> </gmd:westBoundLongitude> <gmd:eastBoundLongitude> <gco:Decimal>10.0</gco:Decimal> </gmd:eastBoundLongitude> <gmd:southBoundLatitude> <gco:Decimal>1.0</gco:Decimal> </gmd:southBoundLatitude> <gmd:northBoundLatitude> <gco:Decimal>3.0</gco:Decimal> </gmd:northBoundLatitude> </gmd:EX_GeographicBoundingBox> </gmd:geographicElement> </gmd:EX_Extent> </lcrmd:extent> <lcrmd:name>Corine Land Cover Coverage Test </lcrmd:name> <lcrmd:nomenclatureDocumentation> <lcn:LandCoverNomenclature> <lcn:inspireId> <base:Identifier> <base:localId>CLC Nom Test </base:localId> <base:namespace>Datacove.eu </base:namespace> </base:Identifier> </lcn:inspireId> <lcn:nomenclatureCodeList/> <lcn:responsibleParty> <base2:RelatedParty> <!-- individual responsible for the vessel --> <base2:individualName> <gmd:LocalisedCharacterString>Jane Doe </gmd:LocalisedCharacterString> </base2:individualName> <!-- organization responsible for the nomenclature --> <base2:organisationName> <gmd:LocalisedCharacterString>Corine Unlimited</gmd:LocalisedCharacterString> </base2:organisationName> <base2:contact> <base2:Contact> <base2:address> <ad:AddressRepresentation> <ad:adminUnit> <gn:GeographicalName> <gn:language>eng</gn:language> <!-- language of municipality name--> <gn:nativeness nilReason="missing" xsi:nil="true"/> <gn:nameStatus nilReason="missing" xsi:nil="true"/> <gn:sourceOfName nilReason="missing" xsi:nil="true"/> <gn:pronunciation nilReason="missing" xsi:nil="true"/> <gn:spelling> <gn:SpellingOfName> <!-- municipality name --> <gn:text>Corine</gn:text> <gn:script>Latn</gn:script> </gn:SpellingOfName> </gn:spelling> </gn:GeographicalName> </ad:adminUnit> <!-- Street address --> <ad:locatorDesignator>Seaside Lane 1 </ad:locatorDesignator> <!-- Postal Code--> <ad:postCode>OC-1234</ad:postCode> </ad:AddressRepresentation> </base2:address> <!-- e-mail of responsible person --> <base2:electronicMailAddress> jane....@corine.eu</base2:electronicMailAddress> <!-- phonel of responsible person --> <base2:telephoneVoice>+12 3 456 789 </base2:telephoneVoice> <!-- web URI of responsible organization--> <base2:website>http://www.Corine.eu </base2:website> </base2:Contact> </base2:contact> </base2:RelatedParty> </lcn:responsibleParty> </lcn:LandCoverNomenclature> </lcrmd:nomenclatureDocumentation> <lcrmd:validFrom>2018-07-18</lcrmd:validFrom> <lcrmd:validTo>2020-07-18</lcrmd:validTo> </lcrmd:LandCoverGridCoverageMD> What I've done so far is, to map this nested XML string with **random child XML elements** to a POJO object with: public class CoverageMetadata { @JsonAnyGetter public Map<String, Object> getGlobalAttributesMap() { return this.additionalProperties; } @JsonAnySetter public void setAdditionalProperty(String name, Object value) { this.additionalProperties.put(name, value); } } and the code to deserialize the XML string to this object: XmlMapper xmlMapper = new XmlMapper(); xmlMapper.readValue(xmlString, CoverageMetadata.class); When I try to serialize the xmlMapper to XML, **I got the result without namespaces for XML elements** <LandCoverGridCoverageMD> <schemaLocation> http://inspire.ec.europa.eu/schemas/lcrmd/4.0 http://test.datacove.eu/LandCoverRasterMDExt.xsd </schemaLocation> <inspireId> <Identifier> <localId>CLC Test</localId> <namespace>Datacove.eu</namespace> </Identifier> </inspireId> <beginLifespanVersion>2018-07-18T00:00:00</beginLifespanVersion> <extent> <EX_Extent> <geographicElement> <EX_GeographicBoundingBox> <westBoundLongitude> <Decimal>1.0</Decimal> </westBoundLongitude> <eastBoundLongitude> <Decimal>10.0</Decimal> </eastBoundLongitude> <southBoundLatitude> <Decimal>1.0</Decimal> </southBoundLatitude> <northBoundLatitude> <Decimal>3.0</Decimal> </northBoundLatitude> </EX_GeographicBoundingBox> </geographicElement> </EX_Extent> </extent> <name>Corine Land Cover Coverage Test</name> <nomenclatureDocumentation> <LandCoverNomenclature> <inspireId> <Identifier> <localId>CLC Nom Test</localId> <namespace>Datacove.eu</namespace> </Identifier> </inspireId> <nomenclatureCodeList /> <responsibleParty> <RelatedParty> <individualName> <LocalisedCharacterString>Jane Doe </LocalisedCharacterString> </individualName> <organisationName> <LocalisedCharacterString>Corine Unlimited </LocalisedCharacterString> </organisationName> <contact> <Contact> <address> <AddressRepresentation> <adminUnit> <GeographicalName> <language>eng</language> <nativeness> <nilReason>missing </nilReason> <nil>true</nil> </nativeness> <nameStatus> <nilReason>missing </nilReason> <nil>true</nil> </nameStatus> <sourceOfName> <nilReason>missing </nilReason> <nil>true</nil> </sourceOfName> <pronunciation> <nilReason>missing </nilReason> <nil>true</nil> </pronunciation> <spelling> <SpellingOfName> <text>Corine</text> <script>Latn </script> </SpellingOfName> </spelling> </GeographicalName> </adminUnit> <locatorDesignator>Seaside Lane 1 </locatorDesignator> <postCode>OC-1234</postCode> </AddressRepresentation> </address> <electronicMailAddress>jane....@corine.eu </electronicMailAddress> <telephoneVoice>+12 3 456 789 </telephoneVoice> <website>http://www.Corine.eu</website> </Contact> </contact> </RelatedParty> </responsibleParty> </LandCoverNomenclature> </nomenclatureDocumentation> <validFrom>2018-07-18</validFrom> <validTo>2020-07-18</validTo> </LandCoverGridCoverageMD> -- You received this message because you are subscribed to the Google Groups "jackson-user" group. To unsubscribe from this group and stop receiving emails from it, send an email to jackson-user+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jackson-user/d4caa1a5-bf78-4439-adf1-0e8d336f1d74%40googlegroups.com.