diff --git a/src/main/java/dk/jyskebank/tools/enunciate/modules/openapi/ObjectTypeRenderer.java b/src/main/java/dk/jyskebank/tools/enunciate/modules/openapi/ObjectTypeRenderer.java
index 7830bad..d3f8361 100644
--- a/src/main/java/dk/jyskebank/tools/enunciate/modules/openapi/ObjectTypeRenderer.java
+++ b/src/main/java/dk/jyskebank/tools/enunciate/modules/openapi/ObjectTypeRenderer.java
@@ -323,6 +323,11 @@ private void addNamespaceXml(IndentationPrinter ip, Property p) {
boolean renderAttribute = AccessorProperty.isAttribute(p);
boolean renderNamespace = namespace != null && !namespace.isEmpty();
+ String namespacePrefix = null;
+ if (renderNamespace && this.namespacePrefixMap != null && !this.namespacePrefixMap.isEmpty()) {
+ namespacePrefix = getNonNullAndNonEmpty(this.namespacePrefixMap.get(namespace));
+ }
+
if (!wrappedName.isPresent() && !renderAttribute && !renderNamespace) {
return;
}
@@ -339,6 +344,10 @@ private void addNamespaceXml(IndentationPrinter ip, Property p) {
if (renderNamespace) {
ip.add("namespace: ", namespace);
}
+ if (namespacePrefix != null && !namespacePrefix.isEmpty()) {
+ ip.add("prefix: ", namespacePrefix);
+ }
+
ip.prevLevel();
}
diff --git a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTO.java b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTO.java
index 9197ecb..8f21102 100644
--- a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTO.java
+++ b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTO.java
@@ -3,12 +3,15 @@
import javax.xml.bind.annotation.*;
@XmlType(name = "dataXmlDTO", namespace = "http://www.jyskebank.dk/enunciate/openapi/version/1")
-@XmlRootElement(name="dataXmlDTO", namespace = "http://www.jyskebank.dk/enunciate/openapi/version/1")
+@XmlRootElement(name = "dataXmlDTO", namespace = "http://www.jyskebank.dk/enunciate/openapi/version/1")
@XmlAccessorType(XmlAccessType.FIELD)
public class DataXmlDTO {
- @XmlElement(name="aString")
- private String aString;
-
- @XmlElement
- private DataXmlEnum anEnum;
+ @XmlElement(name = "aString")
+ private String aString;
+
+ @XmlElement
+ private DataXmlEnum anEnum;
+
+ @XmlElement(name = "dataValue", namespace = "http://www.jyskebank.dk/enunciate/openapi/version/2")
+ private DataXmlDTODataValue dataValue;
}
diff --git a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTODataValue.java b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTODataValue.java
new file mode 100644
index 0000000..557cffa
--- /dev/null
+++ b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/DataXmlDTODataValue.java
@@ -0,0 +1,12 @@
+package dk.jyskebank.tools.enunciate.modules.openapi.confignamespacewithprefix;
+
+import javax.xml.bind.annotation.*;
+
+@XmlType(name = "dataXmlDTODataValue", namespace = "http://www.jyskebank.dk/enunciate/openapi/version/2")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class DataXmlDTODataValue {
+
+ @XmlElement(name = "customString")
+ private String customString;
+
+}
diff --git a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/enunciate.xml b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/enunciate.xml
index b363657..8c8ca17 100644
--- a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/enunciate.xml
+++ b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/enunciate.xml
@@ -3,6 +3,7 @@
+
diff --git a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/openapi.yml b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/openapi.yml
index d83ae82..0f21df7 100644
--- a/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/openapi.yml
+++ b/src/test/java/dk/jyskebank/tools/enunciate/modules/openapi/confignamespacewithprefix/openapi.yml
@@ -40,7 +40,24 @@ components:
type: string
"anEnum":
$ref: "#/components/schemas/xml_ns0_dataXmlEnum"
+ "dataValue":
+ xml:
+ namespace: http://www.jyskebank.dk/enunciate/openapi/version/2
+ prefix: prefix-b
+ $ref: "#/components/schemas/xml_prefix-b_dataXmlDTODataValue"
xml:
name: dataXmlDTO
namespace: http://www.jyskebank.dk/enunciate/openapi/version/1
prefix: prefix-a
+ "xml_prefix-b_dataXmlDTODataValue":
+ title: "dataXmlDTODataValue"
+ allOf:
+ - type: string
+ format: binary
+ - type: object
+ properties:
+ "customString":
+ type: string
+ xml:
+ namespace: http://www.jyskebank.dk/enunciate/openapi/version/2
+ prefix: prefix-b