Closes #45
This commit is contained in:
@@ -9,6 +9,7 @@ import javax.xml.bind.JAXBException;
|
|||||||
import javax.xml.bind.Marshaller;
|
import javax.xml.bind.Marshaller;
|
||||||
|
|
||||||
import org.mustangproject.ZUGFeRD.model.CrossIndustryDocumentType;
|
import org.mustangproject.ZUGFeRD.model.CrossIndustryDocumentType;
|
||||||
|
import org.mustangproject.ZUGFeRD.model.ZFNamespacePrefixMapper;
|
||||||
|
|
||||||
public class ZUGFeRD1PullProvider implements IXMLProvider {
|
public class ZUGFeRD1PullProvider implements IXMLProvider {
|
||||||
|
|
||||||
@@ -33,6 +34,7 @@ public class ZUGFeRD1PullProvider implements IXMLProvider {
|
|||||||
marshaller = JAXBContext.newInstance("org.mustangproject.ZUGFeRD.model").createMarshaller();
|
marshaller = JAXBContext.newInstance("org.mustangproject.ZUGFeRD.model").createMarshaller();
|
||||||
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
|
||||||
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
|
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
|
||||||
|
marshaller.setProperty("com.sun.xml.bind.namespacePrefixMapper", new ZFNamespacePrefixMapper());
|
||||||
} catch (JAXBException e) {
|
} catch (JAXBException e) {
|
||||||
throw new ZUGFeRDExportException("Could not initialize JAXB", e);
|
throw new ZUGFeRDExportException("Could not initialize JAXB", e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,31 @@
|
|||||||
|
package org.mustangproject.ZUGFeRD.model;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.sun.xml.bind.marshaller.NamespacePrefixMapper;
|
||||||
|
|
||||||
|
public class ZFNamespacePrefixMapper extends NamespacePrefixMapper {
|
||||||
|
|
||||||
|
private Map<String, String> namespaceMap = new HashMap<>();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create mappings.
|
||||||
|
*/
|
||||||
|
public ZFNamespacePrefixMapper() {
|
||||||
|
|
||||||
|
namespaceMap.put("urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:12", "ram");
|
||||||
|
namespaceMap.put("urn:un:unece:uncefact:data:standard:UnqualifiedDataType:15", "udt");
|
||||||
|
namespaceMap.put("urn:ferd:CrossIndustryDocument:invoice:1p0", "rsm");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* Returning null when not found based on spec.
|
||||||
|
* @see com.sun.xml.bind.marshaller.NamespacePrefixMapper#getPreferredPrefix(java.lang.String, java.lang.String, boolean)
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String getPreferredPrefix(String namespaceUri, String suggestion, boolean requirePrefix) {
|
||||||
|
return namespaceMap.getOrDefault(namespaceUri, suggestion);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user